@font-face{font-family:UAESymbol;src:url(/fonts/uae-dirham.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}.dirham-symbol{font-family:UAESymbol,sans-serif;font-weight:700}body,html{padding:0;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji;color:var(--text);background:var(--bg)}:root{--primary:#7c6fcd;--primary-hover:#6b5fff;--secondary:#0ea5a4;--bg:#f7f6fb;--surface:#fff;--text:#1a1a2e;--muted:#9b94d1;--border:#eeecf8;--border-strong:#ddd9f5;--shadow-sm:0 1px 2px rgba(15,23,42,.06);--shadow-md:0 10px 25px rgba(15,23,42,.08);--radius:8px;--radius-sm:6px;--bg-primary:var(--surface);--bg-secondary:#f9fafb;--bg-hover:#f3f4f6;--bg-selected:#eff6ff;--text-primary:var(--text);--text-secondary:#4b5563;--text-muted:var(--muted);--border-color:var(--border);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-xs:11px;--font-sm:12px;--font-base:14px;--font-md:16px;--font-lg:18px;--font-xl:20px;--font-2xl:24px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--danger:#dc2626;--danger-bg:rgba(220,38,38,.08);--danger-border:rgba(220,38,38,.3);--success:#16a34a;--success-bg:rgba(22,163,74,.08);--success-border:rgba(22,163,74,.3);--warning:#f59e0b;--warning-bg:rgba(245,158,11,.08);--warning-border:rgba(245,158,11,.3);--radius-xs:4px}*{box-sizing:border-box}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[data-hint]{position:relative}[data-hint]:focus-visible:after,[data-hint]:hover:after{content:attr(data-hint);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);background:rgba(15,23,42,.92);color:#fff;padding:6px 8px;border-radius:10px;font-size:12px;line-height:1.2;white-space:nowrap;box-shadow:var(--shadow-md);z-index:50}[data-hint]:focus-visible:before,[data-hint]:hover:before{content:"";position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(15,23,42,.92);z-index:50}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;-webkit-text-decoration-color:rgba(124,111,205,.35);text-decoration-color:rgba(124,111,205,.35)}button,input,select{font:inherit}.container{width:100%;padding:20px 24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease}a.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);text-decoration:none}.row{display:flex;gap:12px;flex-wrap:wrap}.col{flex:1 1;min-width:240px}.label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.input{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}.input:focus{outline:2px solid rgba(124,111,205,.2);border-color:rgba(124,111,205,.5)}.btn{border:1px solid var(--border-strong);background:var(--surface);padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 0 rgba(15,23,42,.03);transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.btn:hover{background:rgba(248,250,252,.9)}.btnPrimary{border-color:var(--primary);background:var(--primary);color:#fff}.btnPrimary:hover{background:var(--primary-hover)}.btnSecondary{border-color:var(--secondary);background:var(--secondary);color:#fff}.btnSecondary:hover{background:rgba(14,165,164,.92)}.btnDanger{border-color:#dc2626;background:#dc2626;color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.iconBtn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:hsla(0,0%,100%,.9);cursor:pointer;transition:background .12s ease,border-color .12s ease}.iconBtn:hover{background:rgba(241,245,249,.95)}.iconBtn:focus{outline:2px solid rgba(124,111,205,.2);border-color:rgba(124,111,205,.35)}.iconBtnDanger:hover{border-color:rgba(220,38,38,.35);background:hsla(0,86%,97%,.9)}.actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.modalOverlay{position:fixed;inset:0;background:rgba(10,18,28,.55);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:72px 16px 24px}.modalCard{width:min(720px,100%);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.35);overflow:visible;max-height:calc(100vh - 96px);display:flex;flex-direction:column}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-bottom:1px solid var(--border)}.modalBody{padding:14px;overflow-y:auto;overflow-x:visible;flex:1 1 auto;border-radius:0 0 16px 16px}.modalFooter{padding:14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:8px}.muted{color:var(--muted)}.error{color:#b91c1c}.inputError,.inputError:focus{border-color:#dc2626}.inputError:focus{outline:2px solid rgba(220,38,38,.2)}.fieldError{color:#dc2626;font-size:12px;margin-top:4px;line-height:1.3}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(247,246,251,.95);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border)}.appShell{display:flex;min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;flex-shrink:0;width:240px;padding:0;border-right:1px solid var(--border);background:var(--bg);display:flex;flex-direction:column;z-index:100;overflow:hidden}.navLinkActive{background:rgba(124,111,205,.09);border:none;border-left:3px solid #7c6fcd;color:#7c6fcd;border-radius:0 8px 8px 0}.navLink{display:flex;align-items:center;gap:10px}.mobileOnly,.sidebarOverlay{display:none}.main{flex:1 1;padding:0;min-width:0;overflow-y:auto;height:100vh}.navTitle{font-weight:700;margin-bottom:12px}.table{width:100%;border-collapse:collapse}.table td,.table th{text-align:left;padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap}.pageTitle{font-size:var(--font-xl);font-weight:var(--font-bold);color:var(--text);margin:0}.badge{display:inline-block;padding:3px 8px;border-radius:999px;background:rgba(226,232,240,.75);font-size:12px}.aiDock{position:fixed;right:16px;bottom:16px;z-index:60}.aiDockFab{width:46px;height:46px;border-radius:999px;border:1px solid rgba(124,111,205,.35);background:var(--primary);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;transition:background .15s}.aiDockFab:hover{background:var(--primary-hover)}.newAppointmentFab{position:fixed;right:16px;bottom:196px;z-index:60;width:46px;height:46px;border-radius:999px;border:1px solid rgba(124,111,205,.35);background:var(--primary);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;transition:background .15s}.newAppointmentFab:hover{background:var(--primary-hover)}.addPatientFab{position:fixed;right:16px;bottom:136px;z-index:60;width:46px;height:46px;border-radius:999px;border:1px solid rgba(99,102,241,.35);background:rgba(99,102,241,.95);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;transition:background .15s}.addPatientFab:hover{background:rgba(99,102,241,.82)}.paymentFab{position:fixed;right:16px;bottom:76px;z-index:60;width:46px;height:46px;border-radius:999px;border:1px solid rgba(22,163,74,.35);background:rgba(22,163,74,.95);color:#fff;cursor:pointer;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;justify-content:center;transition:background .15s}.paymentFab:hover{background:rgba(22,163,74,.82)}.aiDockPanel{width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 32px));background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column}.aiDockHeader{padding:12px;border-bottom:1px solid var(--border);background:var(--bg);display:flex;align-items:center;justify-content:space-between;gap:10px}.aiDockTitle{font-weight:800}.aiDockSubtitle{color:var(--muted);font-size:12px;margin-top:2px}.aiDockMessages{flex:1 1;padding:12px;overflow:auto;background:var(--bg)}.aiDockMsg{padding:10px 12px;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-sm);margin-bottom:10px;white-space:pre-wrap}.aiDockMsgAgent{background:var(--surface)}.aiDockMsgUser{background:rgba(124,111,205,.08);border-color:rgba(124,111,205,.18)}.aiDockComposer{padding:12px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:center;background:var(--surface)}.aiDockComposer .input{flex:1 1}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:860px){.sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;transform:translateX(-110%);transition:transform .18s ease;z-index:200;box-shadow:var(--shadow-md)}.sidebarOpen{transform:translateX(0)}.sidebarOverlay{display:block;position:fixed;inset:0;background:rgba(15,23,42,.28);z-index:100}.main{padding:12px}.mobileOnly{display:inline-flex}}@media (max-width:640px){.row{flex-direction:column}.col{min-width:100%}.btn{width:100%;justify-content:center}.main{padding:var(--space-2)}.card{padding:var(--space-3)}}