*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html{font-size:16px}@media(max-width:1024px){html{font-size:15px}}@media(max-width:768px){html{font-size:14px}}@media(max-width:480px){html{font-size:13px}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;max-width:420px;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:12px;box-shadow:0 8px 24px #0000001f,0 4px 8px #00000014;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:320px;max-width:420px;pointer-events:all;animation:slideIn .4s cubic-bezier(.68,-.55,.265,1.55) forwards;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;border-left:5px solid;position:relative;overflow:hidden}.toast.toast-removing{animation:slideOut .3s ease-in forwards}.toast:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}.toast:hover{transform:translate(-8px) scale(1.02);box-shadow:0 12px 32px #0000002e,0 6px 12px #0000001f}.toast-content{display:flex;align-items:center;gap:12px;flex:1}.toast-icon{font-size:20px;flex-shrink:0}.toast-message{font-size:14px;line-height:1.6;font-weight:500;word-break:break-word;letter-spacing:.2px}.toast-close{background:#0000001a;border:none;font-size:22px;cursor:pointer;padding:0;margin-left:12px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s cubic-bezier(.4,0,.2,1);flex-shrink:0;opacity:.8;font-weight:300;line-height:1}.toast-close:hover{opacity:1;background:#0003;transform:rotate(90deg) scale(1.1)}.toast-close:active{transform:rotate(90deg) scale(.95)}.toast-success{background:linear-gradient(135deg,#10b981,#059669);border-left-color:#047857;color:#fff}.toast-success .toast-icon{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:successPulse .6s ease-out}.toast-success .toast-close{color:#fff}.toast-error{background:linear-gradient(135deg,#ef4444,#dc2626);border-left-color:#b91c1c;color:#fff}.toast-error .toast-icon{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:errorShake .5s ease-out}.toast-error .toast-close{color:#fff}.toast-warning{background:linear-gradient(135deg,#f59e0b,#d97706);border-left-color:#b45309;color:#fff}.toast-warning .toast-icon{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:warningBounce .6s ease-out}.toast-warning .toast-close{color:#fff}.toast-info{background:linear-gradient(135deg,#3b82f6,#2563eb);border-left-color:#1d4ed8;color:#fff}.toast-info .toast-icon{color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:infoPulse .6s ease-out}.toast-info .toast-close{color:#fff}@keyframes slideIn{0%{opacity:0;transform:translate(100%) translateY(-20px)}to{opacity:1;transform:translate(0) translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0) translateY(0)}to{opacity:0;transform:translate(100%) translateY(-20px)}}@keyframes shimmer{0%,to{opacity:0}50%{opacity:1}}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes errorShake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes warningBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes infoPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@media(max-width:768px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto;max-width:none;width:100%}.toast-message{font-size:13px}.toast-icon{font-size:18px}}@media(max-width:480px){.toast{padding:12px 16px}.toast-content{gap:10px}.toast-message{font-size:12px}.toast-icon{font-size:16px}.toast-close{font-size:20px;width:20px;height:20px}}.toast:focus-within{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}@media(prefers-color-scheme:dark){.toast{box-shadow:0 4px 12px #0006,0 2px 4px #0000004d}}.doctor-layout{display:flex;min-height:100vh;background:#f8fafc}.doctor-sidebar{width:240px;background:#fff;color:#1e293b;display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto;border-right:1px solid #e2e8f0;box-shadow:2px 0 8px #00000005}.sidebar-header{padding:32px 20px 24px;text-align:center;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.logo-icon{font-size:2.5rem;margin-bottom:12px;color:#3b82f6;filter:drop-shadow(0 2px 4px rgba(59,130,246,.3));width:84px;height:84px;object-fit:contain;display:block;margin-left:auto;margin-right:auto}.sidebar-header h2{font-size:1.125rem;margin-bottom:4px;color:#1e40af;font-weight:700;letter-spacing:-.02em}.nav-link:hover{background:#f1f5f9;color:#3b82f6;transform:translate(2px)}.nav-link.active{background:linear-gradient(135deg,#dbeafe,#eff6ff);color:#1e40af;font-weight:600;box-shadow:0 1px 3px #3b82f61f}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:24px;background:#3b82f6;border-radius:0 4px 4px 0}.user-info svg{font-size:2rem;color:#3b82f6}@media(max-width:1024px){.doctor-sidebar{width:220px}.main-content{margin-left:220px;padding:20px}}@media(max-width:768px){.doctor-sidebar{width:200px}.main-content{margin-left:200px;padding:16px}}@media(max-width:600px){.doctor-sidebar{position:fixed;left:-240px;width:240px;z-index:1000;transition:left .3s}.doctor-sidebar.mobile-open{left:0}.main-content{margin-left:0;padding:10px}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}.sidebar-overlay{display:block;position:fixed;inset:0;background:#0f172a59;border:none;z-index:900}}@media(max-width:480px){.main-content{padding:8px}.doctor-sidebar{width:220px;left:-220px}}@media(max-width:400px){.doctor-sidebar{width:200px;left:-200px}}.staff-layout{display:flex;min-height:100vh;background:#f8fafc}.staff-sidebar{width:240px;background:#fff;color:#1e293b;display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto;border-right:1px solid #e2e8f0;box-shadow:2px 0 8px #00000005}.sidebar-header{padding:32px 20px 24px;text-align:center;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f0fdfa,#ccfbf1)}.logo-icon{font-size:2.5rem;margin-bottom:12px;color:#14b8a6;filter:drop-shadow(0 2px 4px rgba(20,184,166,.3));width:84px;height:84px;object-fit:contain;display:block;margin-left:auto;margin-right:auto}.sidebar-header h2{font-size:1.125rem;margin-bottom:4px;color:#0f766e;font-weight:700;letter-spacing:-.02em}.sidebar-nav{flex:1;padding:16px 12px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:4px;color:#64748b;text-decoration:none;transition:all .2s ease;border-radius:10px;font-weight:500;font-size:.9375rem;position:relative}.nav-link:hover{background:#f1f5f9;color:#14b8a6;transform:translate(2px)}.nav-link.active{background:linear-gradient(135deg,#ccfbf1,#f0fdfa);color:#0f766e;font-weight:600;box-shadow:0 1px 3px #14b8a61f}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:24px;background:#14b8a6;border-radius:0 4px 4px 0}.nav-icon{font-size:1.25rem}.sidebar-footer{margin-top:auto;padding:16px 12px;border-top:1px solid #e2e8f0;background:#f8fafc}.user-info{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:12px;background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.user-info svg{font-size:2rem;color:#14b8a6}.user-name{font-weight:600;font-size:.875rem;color:#0f172a}.user-role{font-size:.75rem;color:#64748b;text-transform:capitalize}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:10px;cursor:pointer;font-weight:600;font-size:.875rem;transition:all .2s ease;box-shadow:0 6px 14px #dc262633}.logout-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 8px 16px #dc262640}.main-content{margin-left:240px;flex:1;padding:32px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);min-height:100vh}.mobile-menu-btn{display:none;position:sticky;top:12px;left:12px;z-index:900;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;font-size:1.1rem;cursor:pointer;box-shadow:0 2px 8px #00000014}.sidebar-overlay{display:none}@media(max-width:1024px){.staff-sidebar{width:220px}.main-content{margin-left:220px;padding:20px}}@media(max-width:768px){.staff-sidebar{width:200px}.main-content{margin-left:200px;padding:16px}}@media(max-width:600px){.staff-sidebar{position:fixed;left:-240px;width:240px;z-index:1000;transition:left .3s}.staff-sidebar.mobile-open{left:0}.main-content{margin-left:0;padding:10px}.mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center}.sidebar-overlay{display:block;position:fixed;inset:0;background:#0f172a59;border:none;z-index:900}}@media(max-width:400px){.staff-sidebar{width:200px;left:-200px}.logout-btn{padding:10px;justify-content:center}}@media(max-width:600px){.staff-sidebar{position:fixed;left:0;width:72px;z-index:1000;transition:left .3s}.main-content{margin-left:72px;padding:10px}.sidebar-header h2,.nav-link span,.user-name,.user-role,.logout-btn span{display:none}.sidebar-header{padding:16px 8px}.logo-icon{font-size:2rem;margin-bottom:0}.nav-link{justify-content:center;padding:12px}.sidebar-footer{padding:10px}.logout-btn{padding:10px;justify-content:center}.sidebar-header h2,.nav-link span,.user-name,.user-role,.logout-btn span{display:block}.nav-link{justify-content:flex-start;padding:12px 20px}}@media(max-width:480px){.main-content{padding:8px}.staff-sidebar{width:220px;left:-220px}}@media(max-width:400px){.staff-sidebar{width:200px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e0f2fe,#f0fdfa);padding:20px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(59,130,246,.03) 1px,transparent 1px);background-size:50px 50px;animation:drift 60s linear infinite}@keyframes drift{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.login-card{background:#fff;border-radius:24px;padding:48px 40px;width:100%;max-width:440px;box-shadow:0 20px 60px #00000014,0 0 0 1px #00000008;position:relative;z-index:1;border:1px solid rgba(226,232,240,.8);animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px;position:relative}.hospital-icon{font-size:3.5rem;background:linear-gradient(135deg,#14b8a6,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:20px;filter:drop-shadow(0 4px 8px rgba(20,184,166,.2));animation:float 3s ease-in-out infinite}.hospital-logo{width:140px;height:140px;object-fit:contain;margin:0 auto 20px;display:block;filter:drop-shadow(0 4px 8px rgba(20,184,166,.2));animation:none}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-header h1{font-size:1.875rem;background:linear-gradient(135deg,#0f172a,#334155);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;font-weight:800;letter-spacing:-.02em}.login-header p{color:#64748b;font-size:1rem;font-weight:500}.login-form{display:flex;flex-direction:column;gap:24px}.error-message{background:linear-gradient(135deg,#fef2f2,#fee2e2);color:#991b1b;padding:14px 16px;border-radius:12px;font-size:.9rem;text-align:center;border:1px solid #fecaca;animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.success-message{background:linear-gradient(135deg,#f0fdf4,#d1fae5);color:#065f46;padding:14px 16px;border-radius:12px;font-size:.9rem;text-align:center;border:1px solid #a7f3d0;animation:slideDown .5s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.input-group{position:relative;animation:fadeIn .5s ease}.input-icon{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:1.125rem;transition:all .3s ease;pointer-events:none}.input-group:focus-within .input-icon{color:#14b8a6;transform:translateY(-50%) scale(1.1)}.input-group input{width:100%;padding:16px 18px 16px 52px;border:2px solid #e2e8f0;border-radius:12px;font-size:1rem;transition:all .3s ease;background:#f8fafc;font-weight:500}.input-group input:hover{border-color:#cbd5e1;background:#fff}.input-group input:focus{outline:none;border-color:#14b8a6;background:#fff;box-shadow:0 0 0 4px #14b8a614;transform:translateY(-1px)}.toggle-password{position:absolute;right:18px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#94a3b8;font-size:1.125rem;transition:all .2s ease;padding:8px;border-radius:8px}.toggle-password:hover{color:#14b8a6;background:#f0fdfa;transform:translateY(-50%) scale(1.1)}.role-selection{margin:10px 0}.role-selection>label{display:block;font-weight:600;color:#1e293b;margin-bottom:10px;font-size:.95rem}.role-options{display:flex;gap:12px}.role-option{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s;background:#fff}.role-option input[type=radio]{cursor:pointer;width:18px;height:18px}.role-option span{font-weight:600;color:#64748b;font-size:.95rem}.role-option:hover,.role-option.selected{border-color:#14b8a6;background-color:#f0fdfa}.role-option.selected span{color:#14b8a6}.login-options{display:flex;justify-content:space-between;align-items:center;margin-top:4px}.remember-me{display:flex;align-items:center;gap:10px;font-size:.9rem;color:#64748b;cursor:pointer;transition:all .2s ease;font-weight:500}.remember-me:hover{color:#0f172a}.remember-me input{cursor:pointer;width:18px;height:18px;accent-color:#14b8a6}.forgot-password{background:none;border:none;color:#14b8a6;font-size:.9rem;cursor:pointer;font-weight:600;transition:all .2s ease;padding:4px 8px;border-radius:6px}.forgot-password:hover{color:#0f766e;background:#f0fdfa}.login-button{background:linear-gradient(135deg,#14b8a6,#0f9c8e);color:#fff;border:none;padding:16px;border-radius:12px;font-size:1.0625rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 16px #14b8a640;position:relative;overflow:hidden;margin-top:8px}.login-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.login-button:hover:before{left:100%}.login-button:hover{transform:translateY(-2px);box-shadow:0 8px 24px #14b8a659}.login-button:active{transform:translateY(0)}.login-button:disabled{background:linear-gradient(135deg,#cbd5e1,#94a3b8);cursor:not-allowed;transform:none;box-shadow:none}.login-button:disabled:before{display:none}.login-footer{margin-top:32px;text-align:center;padding-top:24px;border-top:1px solid #e2e8f0}.login-footer p{color:#94a3b8;font-size:.875rem;font-weight:500}@media(min-width:1920px){.login-card{max-width:500px;padding:50px}.hospital-icon,.hospital-logo{font-size:5rem;width:160px;height:160px}}@media(min-width:1200px)and (max-width:1919px){.login-card{max-width:450px}}@media(max-width:1199px){.login-card{max-width:420px;padding:35px}}@media(max-width:1023px){.login-container{padding:15px}.login-card{max-width:400px;padding:30px}.hospital-icon,.hospital-logo{font-size:3.5rem;width:140px;height:140px}.login-header h1{font-size:1.5rem}}@media(max-width:767px){.login-container{padding:10px}.login-card{max-width:100%;padding:25px 20px;border-radius:15px}.hospital-icon,.hospital-logo{font-size:3rem;width:120px;height:120px}.login-header h1{font-size:1.4rem}.login-header p{font-size:.9rem}.input-group input{padding:12px 14px 12px 45px;font-size:.95rem}.input-icon{left:14px;font-size:1.1rem}.toggle-password{right:14px;font-size:1.1rem}.role-options{gap:10px}.role-option{padding:10px 8px}.role-option span{font-size:.9rem}.login-button{padding:12px;font-size:1rem}.login-options{flex-direction:column;gap:10px;align-items:flex-start}}@media(max-width:599px){.login-card{padding:20px 15px}.hospital-icon,.hospital-logo{font-size:2.5rem;width:110px;height:110px}.login-header{margin-bottom:30px}.login-header h1{font-size:1.3rem}.login-form{gap:15px}}@media(max-width:479px){.login-container{padding:5px}.login-card{padding:20px 12px;border-radius:12px}.hospital-icon,.hospital-logo{font-size:2.2rem;width:100px;height:100px;margin-bottom:12px}.login-header h1{font-size:1.2rem}.login-header p{font-size:.85rem}.input-group input{padding:10px 12px 10px 40px;font-size:.9rem}.input-icon{left:12px;font-size:1rem}.toggle-password{right:12px;font-size:1rem}.role-options{flex-direction:column;gap:8px}.role-option{padding:10px}.role-option input[type=radio]{width:16px;height:16px}.role-option span{font-size:.85rem}.login-button{padding:11px;font-size:.95rem}.remember-me,.forgot-password{font-size:.85rem}.login-footer p{font-size:.8rem}}@media(max-width:319px){.login-card{padding:15px 10px}.hospital-icon,.hospital-logo{font-size:2rem;width:90px;height:90px}.login-header h1{font-size:1.1rem}}.doctor-dashboard h1{font-size:2rem;margin-bottom:30px;color:var(--text-dark);margin-top:-25px}.card-icon{font-size:1.8rem;color:var(--doctor-accent)}.card-count{font-size:3rem;font-weight:700;color:var(--text-dark)}.content-section{display:grid;grid-template-columns:2fr 1fr;gap:24px}.appointments-section,.queue-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014}.appointments-section h2,.queue-section h2{display:flex;align-items:center;gap:10px;margin-bottom:20px;color:var(--text-dark);font-size:1.3rem}.appointments-list,.queue-list{display:flex;flex-direction:column;gap:12px}.appointment-item,.queue-item{display:flex;align-items:center;gap:16px;padding:16px;background-color:var(--light-bg);border-radius:12px;border-left:4px solid var(--doctor-accent)}.appointment-time{font-size:1.2rem;font-weight:700;color:var(--doctor-accent);min-width:70px}.grouped-times{display:flex;flex-direction:column;gap:4px}.time-separator{color:var(--doctor-accent);opacity:.5}.appointment-details{flex:1}.appointment-details h3{font-size:1.1rem;margin-bottom:4px}.appointment-details p{color:var(--text-light);font-size:.9rem}.appointment-duration{font-size:.9rem;color:var(--text-light);background-color:#fff;padding:6px 12px;border-radius:8px}.queue-number{background-color:var(--doctor-accent);color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.queue-details{flex:1}.queue-details h3{font-size:1rem;margin-bottom:4px}.queue-details p{color:var(--text-light);font-size:.9rem;margin-bottom:4px}.queue-details small{color:var(--text-light);font-size:.8rem}.new-patient-indicator{display:inline-block;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:2px 8px;border-radius:12px;font-size:.7rem;font-weight:700;margin:4px 0}.complete-btn{background-color:var(--success);color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:600;transition:all .2s}@media(max-width:1024px){.content-section{grid-template-columns:1fr}}.doctor-appointments h1{font-size:2rem;margin-top:-30px;margin-bottom:30px;color:var(--text-dark)}.appointments-container{display:grid;grid-template-columns:1fr;gap:24px;margin-bottom:40px}.appointments-list-section h2,.appointment-details-section h2{font-size:1.4rem;margin-bottom:20px;color:var(--text-dark)}.appointments-grid{display:flex;flex-direction:column;gap:16px}.appointment-card{background:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 1px 3px #0000001a;transition:all .2s;border-left:4px solid #3b82f6;width:100%;display:flex;align-items:center;gap:16px;min-height:auto}.appointment-card:hover{box-shadow:0 4px 12px #00000026}.apt-time-section{display:flex;flex-direction:column;gap:2px;min-width:90px}.time-slot{color:#3b82f6;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:4px}.time-dot{color:#3b82f6;font-size:.75rem;opacity:.6}.apt-patient-section{flex:1;display:flex;flex-direction:row;align-items:center;gap:16px;flex-wrap:nowrap;min-width:0}.patient-name-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}.patient-name-row h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.new-patient-badge-doctor{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:3px 8px;border-radius:12px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #fbbf244d;white-space:nowrap}.patient-details{display:flex;align-items:center;gap:10px;white-space:nowrap}.detail-item{display:flex;align-items:center;gap:6px;color:#6b7280;font-size:.85rem}.detail-icon{font-size:1rem}.apt-status-badge{margin-top:0}.status-pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:capitalize}.status-pill.scheduled{background:#dbeafe;color:#1e40af}.status-pill.rescheduled{background:#fef3c7;color:#92400e}.status-pill.completed{background:#d1fae5;color:#065f46}.apt-duration-section{color:#6b7280;font-size:.85rem;font-weight:500;min-width:60px;text-align:right}.apt-info .apt-datetime{min-width:180px;color:var(--text-dark);font-weight:500}.appointment-details-section{flex:0 0 500px;background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;width:500px;height:500px;display:flex;flex-direction:column;overflow-y:auto}.details-info{display:flex;flex-direction:column;gap:16px;flex:1}.info-item{display:flex;flex-direction:column;gap:6px;padding:12px;background:#f9fafb;border-radius:8px;border-left:3px solid var(--doctor-accent)}.info-item.full-width{grid-column:1 / -1}.info-item label{font-weight:600;color:#6b7280;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.info-item span{color:#1f2937;font-size:1rem;font-weight:500}.notes-text{color:#374151;font-size:.95rem;line-height:1.6;margin:0;padding:8px;background:#fff;border-radius:6px}.completion-note{background:#dbeafe;border:1px solid #93c5fd;border-radius:8px;padding:12px;color:#1e40af;font-size:.9rem;text-align:center;margin-top:8px}.completed-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.completed-section h2{font-size:1.4rem;margin-bottom:20px;color:var(--text-dark)}.completed-list{display:flex;flex-direction:column;gap:12px}.completed-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background-color:var(--light-bg);border-radius:10px}.completed-item h4{font-size:.9rem;margin-bottom:4px}.completed-item p{color:var(--text-light);font-size:.8rem}.completed-badge{display:flex;align-items:center;gap:5px;color:var(--success);font-weight:600;font-size:.85rem}@media(max-width:1024px){.appointments-container{grid-template-columns:1fr}.appointment-details-section{position:relative;max-height:none}}.appointments-calendar-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;grid-column:1 / -1}.calendar-widget-large{background:#fff;border-radius:10px;padding:.6rem;border:1px solid #e5e7eb;max-width:950px;max-height:150px;margin:0 auto}.calendar-widget-large .calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.calendar-widget-large .calendar-header h3{color:#1f2937;font-size:.938rem;margin:0;font-weight:600;display:flex;align-items:center;gap:.375rem}.calendar-widget-large .calendar-header h3 svg{color:#1e40af;font-size:.875rem}.month-nav-btn{background:transparent;border:1px solid #d1d5db;border-radius:5px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#6b7280;font-size:.875rem}.calendar-grid{background:#fff;border-radius:0;padding:0;display:flex;flex-direction:column}.calendar-day-names{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:.5rem;padding-bottom:.625rem;border-bottom:1px solid #f3f4f6}.calendar-day-names>div{text-align:center;font-weight:500;color:#9ca3af;font-size:.7rem;padding:.3rem;text-transform:uppercase;letter-spacing:.4px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.week-day{border:1px solid #e5e7eb;border-radius:10px;padding:.45rem .25rem;text-align:center;cursor:pointer;transition:all .15s;background:#fff;min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:5px;cursor:pointer;transition:all .15s;position:relative;background:#fff;border:1.5px solid transparent;padding:.2rem;min-height:36px}.day-number{font-size:.8rem;font-weight:500;color:#1f2937}.dots-indicator .dot{width:3px;height:3px;border-radius:50%;background:#10b981}.calendar-day.selected .dots-indicator .dot{background:#fff}.appointment-count-text{font-size:.625rem;color:#10b981;font-weight:600;margin-top:1px}.appointments-and-details-wrapper{display:flex;gap:2rem;margin-top:-1rem;align-items:start}.selected-date-appointments-below{flex:1;max-width:100%}.appointment-details-section{flex:1;background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;max-height:fit-content}.selected-date-appointments-below h2{font-size:2rem;color:#1f2937;margin-bottom:1rem;font-weight:700}.appointments-cards-horizontal{display:flex;flex-direction:column;gap:1rem}.appointments-table-wrapper{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.appointments-table{width:100%;border-collapse:collapse;font-size:.9rem}.appointments-table thead th{text-align:left;background:#f9fafb;color:#374151;font-weight:600;padding:10px 12px;border-bottom:1px solid #e5e7eb;white-space:nowrap}.appointments-table tbody td{padding:10px 12px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.appointments-table tbody tr:last-child td{border-bottom:none}.time-cell .time-slot{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.patient-cell .patient-name-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.patient-cell .patient-name{font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px;display:inline-block}.empty-state{text-align:center;padding:3rem 1rem;color:#9ca3af}.empty-state .empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.empty-state p{font-size:1rem;margin:0}.all-appointments-section{margin-top:2rem;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;grid-column:1 / -1}.appointments-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.appointment-list-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:1.25rem;cursor:pointer;transition:all .2s}.appointment-list-card:hover{border-color:var(--doctor-accent);box-shadow:0 4px 12px #3b82f61a;transform:translateY(-2px)}.appointment-list-card.selected{border-color:var(--doctor-accent);background-color:#eff6ff}@media(max-width:1200px){.appointments-calendar-view{padding:1.5rem}.appointments-and-details-wrapper{gap:1.5rem}.selected-date-appointments-below{flex:0 0 500px}}@media(max-width:768px){.appointments-calendar-view,.calendar-widget-large{padding:1rem}.calendar-day-names>div{font-size:.75rem;padding:.25rem}.calendar-day{min-height:40px;padding:.15rem}.day-number{font-size:.75rem}.dots-indicator .dot{width:2px;height:2px}.appointment-count-text{font-size:.5rem}.appointments-and-details-wrapper{flex-direction:column;gap:1.5rem}.selected-date-appointments-below{flex:1}.appointment-details-section{max-height:none}}.time-slot{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.sub-slot-badge{display:inline-block;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a}.sub-slot-badge-doctor{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:800;margin-left:.5rem;text-transform:uppercase}.sub-slot-badge-doctor.slot-a{background:#3b82f6;color:#fff}.sub-slot-badge-doctor.slot-b{background:#f59e0b;color:#fff}.type-badge-doctor{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;margin-left:.5rem;text-transform:uppercase}.type-badge-doctor.walkin{background:#dbeafe;color:#1e40af}.type-badge-doctor.call{background:#fce7f3;color:#be185d}.type-badge-doctor.booking{background:#d1fae5;color:#047857}.grouped-slots{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}.slot-time-group{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--text-dark);font-size:.95rem}.sub-slot-badge-inline{display:inline-block;padding:2px 6px;border-radius:4px;font-size:.65rem;font-weight:700;text-transform:uppercase}.sub-slot-badge-inline.slot-a{background:#3b82f6;color:#fff}.sub-slot-badge-inline.slot-b{background:#f59e0b;color:#fff}.type-badge-inline{display:inline-block;padding:2px 6px;border-radius:4px;font-size:.65rem;font-weight:700;text-transform:uppercase}.type-badge-inline.walkin{background:#dbeafe;color:#1e40af}.type-badge-inline.call{background:#fce7f3;color:#be185d}.type-badge-inline.booking{background:#d1fae5;color:#047857}.slot-separator{color:var(--doctor-accent);font-weight:700;font-size:1.2rem;margin:0 4px}.confirm-dialog-backdrop{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10001;animation:fadeIn .2s ease-out}.confirm-dialog{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d,0 8px 24px #0003;max-width:480px;width:90%;padding:32px;position:relative;animation:slideDown .3s cubic-bezier(.68,-.55,.265,1.55);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.confirm-dialog-close{position:absolute;top:16px;right:16px;background:#0000000d;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:#666;font-size:16px}.confirm-dialog-close:hover{background:#0000001a;transform:rotate(90deg);color:#333}.confirm-dialog-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-size:32px}.confirm-dialog-warning .confirm-dialog-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706;box-shadow:0 4px 12px #d9770633}.confirm-dialog-danger .confirm-dialog-icon{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626;box-shadow:0 4px 12px #dc262633}.confirm-dialog-success .confirm-dialog-icon{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669;box-shadow:0 4px 12px #05966933}.confirm-dialog-content{text-align:center;margin-bottom:32px}.confirm-dialog-title{font-size:24px;font-weight:600;color:#1f2937;margin:0 0 12px;line-height:1.3}.confirm-dialog-message{font-size:16px;color:#6b7280;line-height:1.6;margin:0}.confirm-dialog-actions{display:flex;gap:12px;justify-content:center}.confirm-dialog-btn{padding:12px 32px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:120px;font-family:inherit}.confirm-dialog-btn-cancel{background:#f3f4f6;color:#4b5563}.confirm-dialog-btn-cancel:hover{background:#e5e7eb;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.confirm-dialog-btn-confirm{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 4px 12px #3b82f64d}.confirm-dialog-btn-confirm:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-2px);box-shadow:0 6px 16px #3b82f666}.confirm-dialog-btn-confirm:active,.confirm-dialog-btn-cancel:active{transform:translateY(0)}.confirm-dialog-danger .confirm-dialog-btn-confirm{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #ef44444d}.confirm-dialog-danger .confirm-dialog-btn-confirm:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 6px 16px #ef444466}.confirm-dialog-success .confirm-dialog-btn-confirm{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 12px #10b9814d}.confirm-dialog-success .confirm-dialog-btn-confirm:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 16px #10b98166}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.confirm-dialog{padding:24px;max-width:90%}.confirm-dialog-title{font-size:20px}.confirm-dialog-message{font-size:14px}.confirm-dialog-actions{flex-direction:column-reverse}.confirm-dialog-btn{width:100%;min-width:auto}.confirm-dialog-icon{width:56px;height:56px;font-size:28px;margin-bottom:20px}}.confirm-dialog-btn:focus{outline:2px solid #3b82f6;outline-offset:2px}.confirm-dialog-close:focus{outline:2px solid #3b82f6;outline-offset:2px}.typeahead-container{position:relative;width:100%}.typeahead-input{width:100%;padding:.625rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:border-color .2s,box-shadow .2s;outline:none}.typeahead-input:focus{border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.typeahead-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.typeahead-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:320px;overflow-y:auto;z-index:1000;animation:slideDown .15s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.typeahead-dropdown::-webkit-scrollbar{width:6px}.typeahead-dropdown::-webkit-scrollbar-track{background:#f9fafb;border-radius:4px}.typeahead-dropdown::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:4px}.typeahead-dropdown::-webkit-scrollbar-thumb:hover{background:#9ca3af}.typeahead-option{padding:10px 14px;cursor:pointer;transition:background-color .15s;border-bottom:1px solid #f3f4f6}.typeahead-option:last-child{border-bottom:none}.typeahead-option:hover,.typeahead-option.active{background-color:#f0fdfa}.typeahead-option.active{border-left:3px solid #14b8a6}.option-name{font-size:.95rem;font-weight:600;color:#1f2937;margin-bottom:4px}.option-name .highlight{color:#14b8a6;background-color:#ccfbf1;padding:1px 2px;border-radius:2px;font-weight:700}.option-details{display:flex;gap:12px;font-size:.8rem;color:#6b7280}.option-phone{display:flex;align-items:center}.option-phone:before{content:"📞";margin-right:4px;font-size:.75rem}.option-last-visit{color:#9ca3af;font-style:italic}.typeahead-loading,.typeahead-no-results{padding:12px 14px;text-align:center;color:#6b7280;font-size:.875rem}.typeahead-loading{display:flex;align-items:center;justify-content:center;gap:8px}.typeahead-loading:before{content:"";width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#14b8a6;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.typeahead-no-results{color:#9ca3af;font-style:italic}.new-patient-option{background-color:#f0fdf4;border-top:2px solid #d1fae5}.new-patient-option:hover,.new-patient-option.active{background-color:#dcfce7}.new-patient-option.active{border-left:3px solid #22c55e}.new-patient-option .option-name{color:#16a34a;font-weight:600;display:flex;align-items:center;gap:6px}@media(max-width:768px){.typeahead-dropdown{max-height:240px}.option-name{font-size:.9rem}.option-details{font-size:.75rem}}.appointment-booking{padding:2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.page-header h1{color:#14b8a6;font-size:2rem;margin:0}.book-appointment-btn{background:#14b8a6!important;color:#fff!important;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex!important;align-items:center;gap:.5rem;transition:background .3s;white-space:nowrap}.book-appointment-btn:hover{background:#0f9e87!important}.cancel-booking-btn{background:#ef4444!important;color:#fff!important;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex!important;align-items:center;gap:.5rem;transition:background .3s;white-space:nowrap}.cancel-booking-btn:hover{background:#dc2626!important}.booking-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.section-header{padding:1.5rem;border-bottom:1px solid #e5e7eb}.section-header h2{margin:0;color:#1f2937;font-size:1.5rem}.booking-container{display:grid;grid-template-columns:2fr 1fr;gap:2rem;padding:1.5rem}.booking-steps{display:flex;justify-content:space-between;margin-bottom:2rem;gap:1rem}.step{display:flex;align-items:center;gap:1rem;flex:1}.step-number{width:40px;height:40px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;flex-shrink:0}.step-info h4{margin:0;color:#1f2937;font-size:1rem}.step-info p{margin:.25rem 0 0;color:#6b7280;font-size:.875rem}.calendar-section{flex:1}.calendar-widget{background:#fff;border-radius:10px;padding:.875rem;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;max-width:500px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.calendar-header h3{margin:0;color:#1f2937;font-size:.938rem}.calendar-header button{background:none;border:none;color:#3b82f6;font-size:1rem;cursor:pointer;padding:.375rem;border-radius:4px;transition:background .2s}.calendar-header button:hover{background:#f3f4f6}.calendar-header button:disabled{color:#d1d5db;cursor:not-allowed;opacity:.5}.calendar-header button:disabled:hover{background:none}.calendar-widget .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem;grid-auto-flow:row}.calendar-widget .calendar-day-header{text-align:center;font-weight:600;color:#6b7280;padding:.375rem;font-size:.75rem}.calendar-widget .calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;font-size:.813rem;color:#1f2937;transition:all .2s}.calendar-widget .calendar-day:hover:not(.empty):not(.past){color:#000;font-weight:400}.calendar-widget .calendar-day.selected{background:#3b82f6;color:#fff;font-weight:700}.calendar-widget .calendar-day.past{color:#d1d5db;cursor:not-allowed}.calendar-widget .calendar-day.disabled{color:#d1d5db;cursor:not-allowed;opacity:.4;pointer-events:none}.calendar-widget .calendar-day.empty{cursor:default}.time-slots-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.time-slots-section h4{margin:0 0 1rem;color:#1f2937;font-size:1.125rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}.slot-legend{display:flex;gap:1rem;font-size:.875rem;font-weight:400;color:#6b7280}.slot-legend span{display:flex;align-items:center;gap:.25rem}.legend-free{width:16px;height:16px;background:#10b981;border-radius:4px;display:inline-block}.legend-booked{width:16px;height:16px;background:#3b82f6;border-radius:4px;display:inline-block}.realtime-indicator{display:flex!important;align-items:center;gap:.35rem;color:#10b981;font-size:.75rem;font-weight:600;padding:.25rem .5rem;background:#f0fdf4;border-radius:4px;margin-left:.5rem}.realtime-dot{width:6px;height:6px;background:#10b981;border-radius:50%;display:inline-block;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.slots-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.75rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.slot-separator{grid-column:1 / -1;text-align:center;padding:1.5rem 0 1rem;margin:.5rem 0;border-top:2px dashed #cbd5e1;position:relative}.slot-separator span{background:#fff;padding:.5rem 1.5rem;color:#64748b;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;position:relative;top:-2rem}.time-slot-btn{padding:.75rem;border:none;border-radius:8px;cursor:pointer;text-align:center;transition:all .2s;font-size:.875rem}.time-slot-btn.free{background:#10b981;color:#fff}.time-slot-btn.free:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 8px #10b9814d}.time-slot-btn.booked{background:#3b82f6;color:#fff;cursor:not-allowed;opacity:.8}.time-slot-btn.selected{background:#f59e0b;color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #f59e0b4d}.slot-time{font-weight:600;margin-bottom:.25rem}.slot-status{font-size:.75rem;opacity:.9}.form-section{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;height:fit-content}.booking-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label{font-weight:600;color:#374151;display:flex;align-items:center;gap:.5rem}.form-group input,.form-group textarea,.form-group select{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#14b8a6}.new-patient-badge{display:inline-block;padding:.5rem 1rem;background:#fef3c7;color:#92400e;border-radius:6px;font-weight:600;font-size:.875rem}.returning-patient-badge{display:inline-block;padding:.5rem 1rem;background:#d1fae5;color:#065f46;border-radius:6px;font-weight:600;font-size:.875rem}.selected-info{background:#f9fafb;padding:1rem;border-radius:8px;border:1px solid #e5e7eb}.selected-info p{margin:.5rem 0;color:#374151;font-size:.875rem}.selected-info p:first-child{margin-top:0}.selected-info p:last-child{margin-bottom:0}.form-actions{display:flex;gap:1rem;margin-top:1rem}.save-btn{flex:1;padding:.875rem;background:#14b8a6;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s}.save-btn:hover:not(:disabled){background:#0f9e87}.save-btn:disabled{background:#d1d5db;cursor:not-allowed}.cancel-btn{padding:.875rem 1.5rem;background:#fff;color:#6b7280;border:1px solid #d1d5db;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:#f9fafb;border-color:#9ca3af}.appointments-list-section{margin-top:2rem;width:100%}.appointments-list-section h2{color:#14b8a6;margin-bottom:1rem}.empty-message{text-align:center;color:#6b7280;padding:3rem;background:#fff;border-radius:12px}.appointments-table-container{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.appointments-table{width:100%;border-collapse:collapse}.appointments-table thead{background:#f9fafb}.appointments-table th{text-align:left;padding:1rem;font-weight:600;color:#374151;border-bottom:1px solid #e5e7eb}.appointments-table td{padding:1rem;color:#6b7280;border-bottom:1px solid #f3f4f6}.appointments-table tbody tr{background:#fff}.appointments-table tbody tr:hover{background:#f9fafb}.action-buttons{display:flex;gap:.5rem;align-items:center}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:10px;font-size:.7rem;font-weight:600}.status-badge.scheduled{background:#dbeafe;color:#1e40af}.status-badge.rescheduled{background:#fef3c7;color:#92400e}.status-badge.missed{background:#fee2e2;color:#991b1b}.reschedule-btn{display:inline-flex!important;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#14b8a6!important;color:#fff!important;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s;opacity:1!important;visibility:visible!important}.reschedule-btn:hover{background:#0f9e87!important}.complete-btn{display:inline-flex!important;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#10b981!important;color:#fff!important;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s;opacity:1!important;visibility:visible!important}.complete-btn:hover{background:#059669!important}.edit-time-btn{display:inline-flex!important;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f59e0b!important;color:#fff!important;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s;opacity:1!important;visibility:visible!important}.edit-time-btn:hover{background:#d97706!important}.delete-btn{display:inline-flex!important;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ef4444!important;color:#fff!important;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s;opacity:1!important;visibility:visible!important}.delete-btn:hover{background:#dc2626!important}.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:12px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;color:#14b8a6;font-size:1.5rem}.close-btn{background:none;border:none;font-size:2rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s}.close-btn:hover{background:#f3f4f6}.modal-body{padding:1.5rem}.patient-summary{background:#f0fdfa;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #14b8a6}.edit-time-modal{background:#fff;border-radius:12px;max-width:900px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.time-slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:1.5rem 0;max-height:400px;overflow-y:auto;padding:16px;background:#f9fafb;border-radius:8px}.edit-time-slot-row{display:flex;flex-direction:column;gap:12px}.slot-time-header{font-size:1rem;font-weight:600;color:#1f2937;text-align:center;padding:8px;background:#fff;border-radius:8px}.slot-cards-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.slot-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border-radius:12px;border:2px solid transparent;cursor:pointer;transition:all .2s;min-height:100px;background:#fff}.slot-card.slot-card-a{border-color:#3b82f6}.slot-card.slot-card-a.free:hover:not(:disabled){background:#eff6ff;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f633}.slot-card.slot-card-a.selected{background:#3b82f6;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #3b82f64d}.slot-card.slot-card-b{border-color:#f59e0b}.slot-card.slot-card-b.free:hover:not(:disabled){background:#fffbeb;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b33}.slot-card.slot-card-b.selected{background:#f59e0b;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #f59e0b4d}.slot-card.booked{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;opacity:.6;border-color:#d1d5db}.slot-card.booked:hover{transform:none;box-shadow:none}.slot-card-badge{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;margin-bottom:8px}.slot-card-a .slot-card-badge{background:#3b82f6;color:#fff}.slot-card-a.selected .slot-card-badge{background:#fff;color:#3b82f6}.slot-card-b .slot-card-badge{background:#f59e0b;color:#fff}.slot-card-b.selected .slot-card-badge{background:#fff;color:#f59e0b}.slot-card.booked .slot-card-badge{background:#d1d5db;color:#fff}.slot-card-label{font-size:.95rem;font-weight:600;margin-bottom:4px;text-align:center}.slot-card-status{font-size:.85rem;opacity:.8;text-align:center}.slot-card.selected .slot-card-status{opacity:1;font-weight:600}.time-slot-btn{padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s;text-align:center}.time-slot-btn:hover:not(.booked):not(:disabled){border-color:#f59e0b;background:#fffbeb}.time-slot-btn.selected{border-color:#f59e0b;background:#fef3c7}.time-slot-btn.booked{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;opacity:.5}.time-slot-btn .slot-time{font-weight:600;font-size:.875rem;color:#1f2937;margin-bottom:.25rem}.time-slot-btn .slot-label{font-size:.75rem;color:#6b7280}.time-slot-btn.booked .slot-time,.time-slot-btn.booked .slot-label{color:#9ca3af}.save-time-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#f59e0b;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.save-time-btn:hover:not(:disabled){background:#d97706}.save-time-btn:disabled{background:#d1d5db;cursor:not-allowed}.patient-summary h3{margin:0 0 .5rem;color:#0f766e;font-size:1.2rem}.patient-summary p{margin:.25rem 0;color:#0f766e;font-size:.9rem}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.cancel-btn{padding:.75rem 1.5rem;background:#f3f4f6;color:#374151;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.cancel-btn:hover{background:#e5e7eb}.complete-appointment-btn{padding:.75rem 1.5rem;background:#10b981;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:background .2s}.complete-appointment-btn:hover{background:#059669}@media(max-width:1200px){.booking-container{grid-template-columns:1fr}.slots-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.booking-steps{flex-direction:column}.slots-grid{grid-template-columns:repeat(3,1fr)}.form-actions{flex-direction:column}.appointments-table-container{overflow-x:auto}}.appointments-calendar-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.calendar-widget-large{background:#fff;border-radius:12px;padding:.75rem;border:1px solid #e5e7eb;max-width:950px;max-height:150px;width:100%;margin:0 auto}.calendar-widget-large .calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calendar-widget-large .calendar-header h3{color:#1f2937;font-size:1rem;margin:0;font-weight:600;display:flex;align-items:center;gap:.5rem}.calendar-widget-large .calendar-header h3 svg{color:#1e40af;font-size:.9rem}.month-nav-btn{background:transparent;border:1px solid #d1d5db;border-radius:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#6b7280}.month-nav-btn:hover{background:#f3f4f6;border-color:#9ca3af;color:#1f2937}.calendar-widget-large .calendar-grid{background:#fff;border-radius:0;padding:0;display:flex;flex-direction:column}.calendar-widget-large .calendar-day-names{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:.5rem;padding-bottom:.75rem;border-bottom:1px solid #f3f4f6}.calendar-widget-large .calendar-day-names>div{text-align:center;font-weight:500;color:#9ca3af;font-size:.75rem;padding:.4rem;text-transform:uppercase;letter-spacing:.5px}.calendar-widget-large .calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2.5px}.week-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.75rem}.week-day{border:1px solid #e5e7eb;border-radius:10px;padding:.5rem .25rem;text-align:center;cursor:pointer;transition:all .15s;background:#fff;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem}.week-day:hover{background:#f9fafb;border-color:#e5e7eb}.week-day-name{font-size:.6875rem;text-transform:uppercase;letter-spacing:.4px;color:#9ca3af;font-weight:600}.week-day-number{font-size:1rem;font-weight:600;color:#1f2937}.week-day.today{border-color:#1e40af;background:#eff6ff}.week-day.selected{background:#1e40af;border-color:#1e40af;color:#fff}.week-day.selected .week-day-name,.week-day.selected .week-day-number,.week-day.selected .appointment-count-text{color:#fff}.calendar-widget-large .calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;transition:all .15s;position:relative;background:#fff;border:2px solid transparent;padding:.15rem;min-height:38px}.calendar-day.empty{cursor:default;background:transparent;pointer-events:none}.calendar-day:hover{background:#f9fafb;border-color:#e5e7eb}.calendar-day.today{border-color:#1e40af;background:#eff6ff}.calendar-day.selected{background:#1e40af;color:#fff;border-color:#1e40af}.calendar-day.has-appointments{background:#fff}.calendar-day.selected.has-appointments{background:#1e40af;color:#fff}.day-number{font-size:.875rem;font-weight:400;margin-bottom:2px}.calendar-day.selected .day-number{font-weight:600}.appointment-badge{position:relative;display:flex;align-items:center;gap:2px;margin-top:2px}.appointment-badge:before,.appointment-badge:after{content:"";width:4px;height:4px;border-radius:50%;background:#10b981}.appointment-badge:before{margin-right:1px}.appointment-badge:after{margin-left:1px}.appointment-badge{color:#6b7280;font-size:.75rem;font-weight:500}.calendar-day.selected .appointment-badge{color:#fff}.calendar-day.selected .appointment-badge:before,.calendar-day.selected .appointment-badge:after{background:#fff}.calendar-day.has-appointments .appointment-badge:before,.calendar-day.has-appointments .appointment-badge:after{background:#10b981}.dots-indicator{display:flex;gap:2px;margin-top:2px}.dot{width:3px;height:3px;border-radius:50%;background:#10b981}.calendar-day.selected .dot{background:#fff}.appointment-count-text{font-size:.625rem;margin-top:1px;font-weight:500;color:#6b7280}.calendar-day.selected .appointment-count-text{color:#fff}.selected-date-appointments-below{margin-top:1.5rem;max-width:100%;width:100%;margin-left:0;margin-right:0}.selected-date-appointments-below>h3{color:#1f2937;font-size:1.125rem;margin:0 0 1rem;font-weight:600}.appointments-cards-horizontal{display:flex;flex-direction:column;gap:1px;background:#e5e7eb;border-radius:8px;overflow:hidden;width:100%}.appointment-card{background:#fff;border-left:3px solid #14b8a6;padding:.75rem 1rem;transition:all .2s;display:flex;align-items:flex-start;gap:1rem;width:100%;box-sizing:border-box}.appointment-card:hover{background-color:#f0fdfa;border-left-width:5px;box-shadow:inset 0 0 0 1px #14b8a6}.appointment-card-header{display:flex;align-items:flex-start;gap:.75rem;flex:0 0 160px;min-width:160px}.patient-info{flex:1}.patient-info h4{color:#1f2937;font-size:.9375rem;margin:0 0 .2rem;font-weight:600;line-height:1.3;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.new-patient-tag{display:inline-flex;align-items:center;padding:.15rem .5rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;font-size:.625rem;font-weight:600;border-radius:12px;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #f59e0b4d}.patient-info .phone{color:#6b7280;font-size:.75rem;margin:0;line-height:1.3}.appointment-card-body{display:flex;flex-direction:row;align-items:center;gap:1rem;flex:1 1 auto;min-width:0;flex-wrap:wrap}.appointment-detail{display:flex;align-items:center;gap:.5rem;color:#1f2937;font-size:.95rem;line-height:1.5;font-weight:600}.time-text{font-weight:700;color:#1f2937}.grouped-slots{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.slot-time-group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.slot-separator{color:#9ca3af;margin:0 .2rem;font-weight:700;font-size:.75rem}.detail-icon{color:#14b8a6;font-size:.8125rem;flex-shrink:0;margin-top:.125rem}.appointment-card-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.appointment-card-actions .reschedule-btn,.appointment-card-actions .delete-btn,.appointment-card-actions .edit-time-btn,.appointment-card-actions .complete-btn{padding:.5rem .75rem;font-size:.8125rem;white-space:nowrap}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;background:#f9fafb;border-radius:12px;border:2px dashed #d1d5db;max-width:500px;margin:0 auto}.empty-icon{font-size:3rem;color:#d1d5db;margin-bottom:.75rem}.empty-state p{color:#6b7280;font-size:.9375rem;margin:0 0 1rem}.quick-book-btn{background:#14b8a6;color:#fff;padding:.625rem 1.25rem;border:none;border-radius:8px;font-size:.9375rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s}.quick-book-btn:hover{background:#0f9e87;transform:translateY(-2px);box-shadow:0 4px 12px #14b8a64d}.all-appointments-section{margin-top:3rem;padding-top:2rem;border-top:2px solid #e5e7eb}.all-appointments-section>h3{color:#1f2937;font-size:1.25rem;margin:0 0 1.5rem;font-weight:600}.appointments-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem}.appointment-list-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:1.25rem;transition:all .2s}.appointment-list-card:hover{border-color:#14b8a6;box-shadow:0 4px 12px #14b8a61a;transform:translateY(-2px)}.appointments-cards{display:flex;flex-direction:column;gap:1rem;max-height:600px;overflow-y:auto;padding-right:.5rem;width:100%}.appointments-cards::-webkit-scrollbar{width:6px}.appointments-cards::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.appointments-cards::-webkit-scrollbar-thumb{background:#14b8a6;border-radius:10px}.appointment-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:1.5rem;transition:all .2s}.appointment-card:hover{border-color:#14b8a6;box-shadow:0 4px 12px #14b8a61a;transform:translateY(-2px)}.appointment-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.patient-info h4{color:#1f2937;font-size:1.125rem;margin:0 0 .25rem;font-weight:600}.patient-info .phone{color:#6b7280;font-size:.875rem;margin:0}.appointment-card-body{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.appointment-detail{display:flex;align-items:center;gap:.75rem;color:#4b5563;font-size:.875rem}.detail-icon{color:#14b8a6;font-size:1rem}.appointment-card-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid #e5e7eb}.appointment-card-actions .reschedule-btn,.appointment-card-actions .delete-btn{flex:1;justify-content:center}@media(max-width:1200px){.appointments-calendar-view{padding:1.5rem}.appointments-cards-horizontal{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media(max-width:768px){.appointments-calendar-view,.calendar-widget-large{padding:1rem}.calendar-day-names>div{font-size:.75rem;padding:.25rem}.calendar-day{padding:.125rem;min-height:40px}.day-number{font-size:.75rem}.dot{width:2px;height:2px}.appointment-count-text{font-size:.5625rem}.appointment-card{flex-direction:column;align-items:flex-start;padding:1rem}.appointment-card-header{width:100%}.patient-info{flex:1}.appointment-card-body{flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.appointment-card-actions{width:100%;padding-top:.75rem;border-top:1px solid #e5e7eb}.appointment-card-actions .reschedule-btn,.appointment-card-actions .delete-btn{flex:1}.appointments-cards-horizontal{gap:1px}.selected-date-appointments-below>h3{font-size:1rem}}@media(max-width:1200px){.calendar-widget-large{max-width:100%}.week-calendar-grid{gap:.6rem}}@media(max-width:1024px){.week-day{min-height:64px}.week-day-number{font-size:.95rem}}@media(max-width:900px){.calendar-widget-large{padding:.6rem}.week-calendar-grid{gap:.5rem}}@media(max-width:768px){.week-day{min-height:58px;padding:.4rem .2rem}.week-day-number{font-size:.9rem}}@media(max-width:600px){.week-calendar-grid{gap:.4rem}.week-day{min-height:52px}.week-day-name{font-size:.62rem}.appointment-count-text{font-size:.55rem}}@media(max-width:480px){.calendar-widget-large{padding:.5rem}.week-calendar-grid{gap:.35rem}.week-day{min-height:48px}.week-day-number{font-size:.85rem}}@media(max-width:400px){.week-calendar-grid{gap:.3rem}.week-day{min-height:44px}.week-day-name{font-size:.6rem}.week-day-number{font-size:.8rem}}.sub-slot-b{border-left:4px solid #f59e0b}.selected-slot-info{background:#d1fae5;padding:1rem;border-radius:8px;border:2px solid #14b8a6}.slot-selection-display{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.selected-time{font-size:1.1rem;font-weight:700;color:#1f2937}.selected-subslot{padding:.35rem .75rem;border-radius:6px;font-weight:700;font-size:.9rem;text-transform:uppercase}.selected-subslot.sub-slot-a{background:#3b82f6;color:#fff}.selected-subslot.sub-slot-b{background:#f59e0b;color:#fff}.type-selector{display:flex;gap:1rem;margin-top:.5rem}.type-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;flex:1;transition:all .2s}.type-option:hover{border-color:#14b8a6;background:#f0fdfa}.type-option input[type=radio]{width:18px;height:18px;accent-color:#14b8a6;cursor:pointer}.type-option input[type=radio]:checked+.type-label{font-weight:700;color:#14b8a6}.type-label{font-size:1rem;color:#374151;cursor:pointer}.sub-slot-badge{display:inline-block;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;font-weight:700;margin-left:.5rem;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a}.sub-slot-badge.slot-a{background:#3b82f6;color:#fff;border:2px solid #2563eb}.sub-slot-badge.slot-b{background:#f59e0b;color:#fff;border:2px solid #d97706}.type-badge{display:inline-block;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;font-weight:700;margin-left:.5rem;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a}.patient-records h1{display:flex;align-items:center;gap:12px;font-size:2rem;margin-bottom:30px;color:var(--text-dark)}.search-section{margin-bottom:30px}.search-box{position:relative;max-width:500px}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-light);font-size:1.2rem}.search-box input{width:100%;padding:14px 16px 14px 50px;border:2px solid var(--border-color);border-radius:10px;font-size:1rem;transition:all .2s}.search-box input:focus{outline:none;border-color:var(--doctor-accent)}.records-container{display:grid;grid-template-columns:1fr 1.5fr;gap:24px}.patients-list{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;max-height:calc(100vh - 250px);overflow-y:auto}.patients-list h2{font-size:1.2rem;margin-bottom:20px;color:var(--text-dark)}.patient-cards{display:flex;flex-direction:column;gap:12px}.patient-card{padding:16px;background-color:var(--light-bg);border-radius:12px;cursor:pointer;transition:all .2s;border:2px solid transparent}.patient-card:hover{border-color:var(--doctor-accent);transform:translate(4px)}.patient-card.selected{border-color:var(--doctor-accent);background-color:#eff6ff}.patient-card h3{font-size:1.1rem;margin-bottom:8px;color:var(--text-dark)}.patient-card p{color:var(--text-light);font-size:.9rem;margin-bottom:4px}.visit-count{display:flex;align-items:center;gap:6px;color:var(--doctor-accent);font-weight:600;font-size:.85rem}.patient-details{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.patient-details h2{font-size:1.5rem;margin-bottom:24px;color:var(--text-dark)}.details-content{display:flex;flex-direction:column;gap:20px}.info-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info-group label{display:block;font-size:.9rem;font-weight:600;color:var(--text-light);margin-bottom:8px}.info-group p{font-size:1.1rem;color:var(--text-dark)}.visit-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.visit-list li{padding:10px 14px;background-color:var(--light-bg);border-radius:8px;color:var(--text-dark)}.no-data{color:var(--text-light);font-style:italic}@media(max-width:1024px){.records-container{grid-template-columns:1fr}}.doctor-call-queue-page{max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}.page-header h1{display:flex;align-items:center;gap:12px;font-size:2rem;color:#3b82f6;margin:0}.add-call-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background-color:#3b82f6;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.add-call-btn:hover{background-color:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:2px solid #e5e7eb}.modal-header h2{margin:0;color:#1f2937;font-size:1.5rem}.close-btn{background:none;border:none;font-size:2rem;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.close-btn:hover{background-color:#f3f4f6;color:#1f2937}.call-form{padding:24px;display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#374151;font-size:.95rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:all .2s;font-family:inherit}.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 textarea{resize:vertical;min-height:80px}.form-actions{display:flex;gap:12px;padding-top:12px}.save-btn{flex:1;padding:14px 24px;background-color:#3b82f6;color:#fff;border:none;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){background-color:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.save-btn:disabled{opacity:.6;cursor:not-allowed}.cancel-btn{flex:1;padding:14px 24px;background-color:#f3f4f6;color:#374151;border:none;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s}.cancel-btn:hover:not(:disabled){background-color:#e5e7eb}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.queue-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;margin-bottom:24px}.queue-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.queue-header h2{font-size:1.5rem;color:#1f2937;margin:0}.realtime-indicator{display:flex;align-items:center;gap:8px;font-size:.9rem;color:#10b981;font-weight:600}.realtime-dot{width:12px;height:12px;background-color:#10b981;border-radius:50%;animation:pulse 2s ease-in-out infinite}.queue-info{display:flex;align-items:center;gap:8px;color:#6b7280;font-size:.9rem;margin-bottom:24px;padding:12px;background-color:#eff6ff;border-radius:8px}.empty-state{text-align:center;padding:3rem 2rem}.empty-message{font-size:1.25rem;color:#6b7280;margin-bottom:.5rem}.empty-state small{color:#9ca3af}.queue-list{display:flex;flex-direction:column;gap:12px}.queue-item{display:flex;align-items:center;gap:16px;padding:20px;background-color:#f9fafb;border-radius:12px;border-left:4px solid #3b82f6;transition:all .2s}.queue-item:hover{transform:translate(4px);box-shadow:0 4px 12px #0000001a}.queue-position{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;min-width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.5rem;box-shadow:0 2px 8px #3b82f64d}.call-details{flex:1}.patient-name-row{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}.call-details h3{font-size:1.25rem;margin:0;color:#1f2937;font-weight:600}.new-patient-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 6px #fbbf244d;animation:shine 2s ease-in-out infinite}@keyframes shine{0%,to{opacity:1}50%{opacity:.85}}.phone-number{color:#6b7280;font-size:1rem;margin-bottom:8px}.patient-demographics{display:flex;align-items:center;gap:16px;margin-bottom:8px;flex-wrap:wrap}.demo-item{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;background-color:#eff6ff;color:#1e40af;border-radius:16px;font-size:.85rem;font-weight:600;border:1px solid #bfdbfe}.call-time{display:flex;align-items:center;gap:6px;color:#9ca3af;font-size:.85rem}.time-icon{font-size:.9rem}.queue-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-end}.status-indicator{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600}.status-indicator.waiting{background-color:#fef3c7;color:#92400e}.status-dot{width:8px;height:8px;border-radius:50%;background-color:currentColor;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.complete-call-btn{display:flex;align-items:center;gap:8px;padding:10px 18px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 6px #10b9814d}.complete-call-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.complete-call-btn:active{transform:translateY(0)}.queue-note{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;border-left:4px solid #3b82f6}.queue-note h3{color:#1f2937;margin-bottom:16px;display:flex;align-items:center;gap:8px;font-size:1.1rem}.queue-note ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.queue-note li{padding-left:1.5rem;position:relative;color:#4b5563;line-height:1.6}.queue-note li:before{content:"•";position:absolute;left:0;color:#3b82f6;font-weight:700;font-size:1.2rem}.queue-note strong{color:#1f2937;font-weight:600}.reason-for-call{margin:.75rem 0;padding:.75rem;background:#eff6ff;border-left:3px solid #3b82f6;border-radius:6px;font-size:.9rem}.reason-for-call strong{color:#1e40af;display:block;margin-bottom:.25rem;font-size:.85rem}.complete-modal{max-width:500px}.complete-modal-body{padding:24px}.call-summary{background:#f9fafb;padding:1rem;border-radius:8px;margin-bottom:1.5rem}.call-summary h3{margin:0 0 .75rem;color:#1f2937;font-size:1.1rem}.summary-item{margin-bottom:.5rem;color:#374151;font-size:.95rem}.summary-item strong{color:#1f2937;display:inline-block;min-width:80px}.reason-display{margin-top:.5rem;padding:.75rem;background:#eff6ff;border-radius:6px;border-left:3px solid #3b82f6;color:#374151}.staff-notes-input{width:100%;min-height:100px;font-family:inherit;resize:vertical}@media(max-width:768px){.queue-item{flex-direction:column;align-items:flex-start;gap:12px}.queue-position{min-width:50px;height:50px;font-size:1.2rem}.queue-actions{width:100%;flex-direction:row;justify-content:space-between;align-items:center}.complete-call-btn{flex:1}.page-header{flex-direction:column;gap:1rem}.queue-header{flex-direction:column;align-items:flex-start;gap:12px}}.call-logs{padding:2rem;max-width:1400px;margin:0 auto}.stat-number.pending{color:#f59e0b}.stat-number.missed{color:#ef4444}.type-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600}.status-badge.status-pending{background:#fef3c7;color:#92400e}.status-badge.status-missed{background:#fee2e2;color:#991b1b}@media(max-width:768px){.call-logs{padding:1rem}.filter-controls{flex-direction:column;align-items:stretch}.date-filter{flex-direction:column}.logs-table-container{overflow-x:auto}.logs-table{min-width:800px}}.appointment-logs{padding:2rem;max-width:1600px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header h1{font-size:2rem;color:#1f2937;display:flex;align-items:center;gap:.75rem}.page-header h1 svg{color:#14b8a6}.filters-section{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.search-box{position:relative;margin-bottom:1rem}.search-box input{width:100%;padding:.75rem .75rem .75rem 2.5rem;border:1px solid #d1d5db;border-radius:8px;font-size:.95rem}.search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:#9ca3af}.filter-controls{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group svg{color:#6b7280}.filter-group select{padding:.625rem 2rem .625rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;cursor:pointer}.date-filter{display:flex;align-items:center;gap:.5rem}.date-filter input[type=date]{padding:.625rem;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem}.date-filter span{color:#6b7280;font-size:.9rem}.logs-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:12px;box-shadow:0 1px 3px #0000001a;text-align:center}.stat-card h3{font-size:.875rem;color:#6b7280;margin-bottom:.5rem;font-weight:500}.stat-number{font-size:2rem;font-weight:700;color:#1f2937;margin:0}.stat-number.completed{color:#10b981}.stat-number.scheduled{color:#3b82f6}.stat-number.cancelled{color:#ef4444}.logs-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.logs-table{width:100%;border-collapse:collapse}.logs-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.logs-table th{padding:1rem;text-align:left;font-size:.875rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.05em}.logs-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.logs-table tbody tr:hover{background-color:#f9fafb}.logs-table td{padding:1rem;font-size:.9rem;color:#4b5563;vertical-align:middle}.datetime-cell{display:flex;flex-direction:column;gap:.25rem}.datetime-cell .cell-icon{color:#14b8a6;margin-right:.5rem;font-size:.875rem}.datetime-cell span{font-weight:600;color:#1f2937}.datetime-cell small{color:#6b7280;font-size:.8rem}.new-patient-tag{display:inline-block;padding:.125rem .5rem;background:#fef3c7;color:#92400e;border-radius:9999px;font-size:.75rem;font-weight:600;margin-left:.5rem}.duration-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;background:#ede9fe;color:#5b21b6;border-radius:9999px;font-size:.8rem;font-weight:600}.type-badge{display:inline-block;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000001a}.type-badge.walkin{background:#3b82f6;color:#fff;border:2px solid #2563eb}.type-badge.call{background:#ec4899;color:#fff;border:2px solid #db2777}.type-badge.booking{background:#10b981;color:#fff;border:2px solid #059669}.type-badge.new{background:#dbeafe;color:#1e40af}.type-badge.existing{background:#e0e7ff;color:#4338ca}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600;text-transform:capitalize}.status-badge.status-completed{background:#d1fae5;color:#065f46}.status-badge.status-scheduled{background:#dbeafe;color:#1e40af}.status-badge.status-cancelled{background:#fee2e2;color:#991b1b}.status-badge.status-rescheduled{background:#fef3c7;color:#92400e}.phone-link{color:#14b8a6;text-decoration:none;font-weight:500}.phone-link:hover{text-decoration:underline}.next-visit{display:inline-block;padding:.25rem .75rem;background:#ccfbf1;color:#0f766e;border-radius:6px;font-size:.85rem;font-weight:600}.notes-text{display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{text-align:center;padding:4rem 2rem;color:#9ca3af}.empty-icon{font-size:4rem;color:#d1d5db;margin-bottom:1rem}.empty-state p{font-size:1.125rem;margin:0}@media(max-width:768px){.appointment-logs{padding:1rem}.filter-controls{flex-direction:column;align-items:stretch}.date-filter{flex-direction:column}.logs-table-container{overflow-x:auto}.logs-table{min-width:1000px}}.staff-dashboard h1{font-size:2rem;margin-bottom:30px;color:var(--text-dark)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:40px}.dashboard-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014;transition:all .3s}.dashboard-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f}.staff-card-1{border-top:4px solid #3b82f6}.staff-card-2{border-top:4px solid #f59e0b}.staff-card-3{border-top:4px solid #14b8a6}.staff-card-4{border-top:4px solid #10b981}.card-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.card-icon{font-size:1.8rem;color:var(--staff-accent)}.card-header h2{font-size:1rem;color:var(--text-light);font-weight:600}.card-count{font-size:3rem;font-weight:700;color:var(--text-dark);margin-bottom:8px}.card-subtitle{color:var(--text-light);font-size:.9rem}.quick-overview{display:grid;grid-template-columns:1fr 1fr;gap:24px}.overview-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014}.overview-section h2{font-size:1.3rem;margin-bottom:20px;color:var(--text-dark)}.schedule-list,.reminders-list{display:flex;flex-direction:column;gap:12px}.schedule-item,.reminder-item{display:flex;align-items:center;gap:16px;padding:14px;background-color:var(--light-bg);border-radius:12px;border-left:4px solid var(--staff-accent)}.schedule-time{font-size:1rem;font-weight:700;color:var(--staff-accent);min-width:60px}.schedule-details{flex:1}.schedule-details h4{font-size:1rem;margin-bottom:4px}.reminder-icon{font-size:1.5rem;color:var(--warning)}.reminder-item h4{font-size:1rem;margin-bottom:4px;color:var(--text-dark)}.reminder-item p{color:var(--text-light);font-size:.9rem}.reminder-item small{color:var(--text-light);font-size:.8rem}.notes-section{display:flex;flex-direction:column;gap:12px}.notes-textarea{width:100%;padding:12px;border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical;min-height:150px;transition:border-color .3s}.notes-textarea:focus{outline:none;border-color:var(--staff-accent)}.notes-textarea::placeholder{color:#9ca3af}.save-notes-btn{align-self:flex-end;background:var(--staff-accent);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .3s}.save-notes-btn:hover:not(:disabled){background:#0f9e87;transform:translateY(-2px);box-shadow:0 4px 12px #14b8a64d}.save-notes-btn:disabled{background:#10b981;cursor:not-allowed}.overview-section h2{font-size:1.3rem;margin-bottom:20px;color:var(--text-dark);display:flex;align-items:center;gap:10px}@media(max-width:1024px){.quick-overview{grid-template-columns:1fr}}.patient-management{max-width:1400px}.page-header h1{font-size:2rem;color:var(--text-dark)}.add-patient-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background-color:var(--staff-accent);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.add-patient-btn:hover{background-color:#0f9c8e;transform:translateY(-2px);box-shadow:0 4px 12px #14b8a64d}.patient-form{display:flex;flex-direction:column;gap:20px}.patient-form .form-group{display:flex;flex-direction:column;gap:.5rem}.patient-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.patient-form label{font-weight:600;color:#374151;font-size:.9rem}.patient-form input,.patient-form textarea,.patient-form select{padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:border-color .2s}.patient-form input:focus,.patient-form textarea:focus,.patient-form select:focus{outline:none;border-color:#14b8a6}.patients-table-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;overflow-x:auto}.patients-table{width:100%;border-collapse:collapse}.patients-table thead{background-color:var(--light-bg)}.patients-table th{padding:14px;text-align:left;font-weight:600;color:var(--text-dark);border-bottom:2px solid var(--border-color)}.patients-table td{padding:14px;border-bottom:1px solid var(--border-color);color:var(--text-dark)}.patients-table tr:hover{background-color:var(--light-bg)}.empty-row{text-align:center;padding:40px!important;color:var(--text-light)}.edit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background-color:var(--primary-blue);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s}.edit-btn:hover{background-color:#2563eb;transform:scale(1.05)}.delete-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background-color:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;margin-left:8px}.delete-btn:hover{background-color:#dc2626;transform:scale(1.05)}.reminders-page{max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.page-header h1{display:flex;align-items:center;gap:12px;font-size:2rem;color:var(--text-dark)}.add-reminder-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background-color:var(--warning);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.add-reminder-btn:hover{background-color:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px #f59e0b4d}.reminder-form{display:flex;flex-direction:column;gap:20px}.reminders-sections{display:grid;grid-template-columns:1fr;gap:24px}.reminder-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.reminder-section h2{font-size:1.3rem;margin-bottom:20px;color:var(--text-dark)}.reminders-list{display:flex;flex-direction:column;gap:16px}.reminder-card{display:flex;align-items:center;gap:16px;padding:16px;border-radius:12px;background-color:var(--light-bg);transition:all .2s}.reminder-card.medicine{border-left:4px solid #f59e0b}.reminder-card.general{border-left:4px solid #14b8a6}.reminder-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.reminder-icon{font-size:2rem;color:var(--warning)}.reminder-info{flex:1}.reminder-info h3{font-size:1.1rem;margin-bottom:4px;color:var(--text-dark)}.reminder-info p{color:var(--text-light);font-size:.9rem;margin-bottom:4px}.reminder-message{font-weight:600;color:var(--text-dark)}.reminder-actions{display:flex;gap:8px;flex-wrap:wrap}.call-btn{padding:8px 14px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:6px;font-size:.9rem}.call-btn:hover{background-color:#2563eb;transform:scale(1.05)}.book-btn{padding:8px 14px;background-color:#14b8a6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:6px;font-size:.9rem}.book-btn:hover{background-color:#0f9e87;transform:scale(1.05)}.complete-btn{padding:8px 14px;background-color:var(--success);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap;font-size:.9rem}.remind-btn{padding:8px 14px;background-color:#f59e0b;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:6px;font-size:.9rem}.remind-btn:hover{background-color:#d97706;transform:scale(1.05)}.complete-btn:hover{background-color:#059669;transform:scale(1.05)}.booking-modal{width:min(92px,980px);max-width:800px;max-height:90vh;overflow-y:auto}.booking-modal-body{padding:1.5rem}.patient-info-box{background:#f0fdf4;border:2px solid #10b981;border-radius:12px;padding:1rem;margin-bottom:1.5rem}.patient-info-box h3{color:#047857;margin-bottom:.75rem;font-size:1.1rem}.patient-info-box p{margin:.5rem 0;color:#065f46}.slots-grid-dual{display:flex;flex-direction:column;gap:16px;max-height:500px;overflow-y:auto;padding-right:8px}.booking-slot-row{display:flex;flex-direction:column;gap:12px}.booking-slot-time-header{font-size:1rem;font-weight:600;color:#1f2937;text-align:center;padding:8px;background:#fff;border-radius:8px;border:2px solid #e5e7eb}.booking-slot-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-slot-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border-radius:12px;border:2px solid transparent;cursor:pointer;transition:all .2s;min-height:100px;background:#fff}.booking-slot-card-a{border-color:#3b82f6}.booking-slot-card-a.free:hover:not(:disabled){background:#eff6ff;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f633}.booking-slot-card-a.selected{background:#3b82f6;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #3b82f64d}.booking-slot-card-b{border-color:#14b8a6}.booking-slot-card-b.free:hover:not(:disabled){background:#f0fdfa;transform:translateY(-2px);box-shadow:0 4px 12px #14b8a633}.booking-slot-card-b.selected{background:#14b8a6;color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #14b8a64d}.booking-slot-card.booked{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;opacity:.6;border-color:#d1d5db}.booking-slot-card.booked:hover{transform:none;box-shadow:none}.booking-slot-card-badge{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;margin-bottom:8px}.booking-slot-card-a .booking-slot-card-badge{background:#3b82f6;color:#fff}.booking-slot-card-a.selected .booking-slot-card-badge{background:#fff;color:#3b82f6}.booking-slot-card-b .booking-slot-card-badge{background:#14b8a6;color:#fff}.booking-slot-card-b.selected .booking-slot-card-badge{background:#fff;color:#14b8a6}.booking-slot-card.booked .booking-slot-card-badge{background:#d1d5db;color:#fff}.booking-slot-card-label{font-size:.95rem;font-weight:600;text-align:center}.booking-slot-card-patient{font-size:.9rem;font-weight:600;text-align:center;margin-bottom:4px}.booking-appointment-type-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;margin-top:4px}.booking-appointment-type-badge.walkin{background:#dbeafe;color:#1e40af}.booking-appointment-type-badge.call{background:#fce7f3;color:#be185d}.booking-appointment-type-badge.booking{background:#d1fae5;color:#065f46}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-height:400px;overflow-y:auto;padding:16px;background:#f9fafb;border-radius:8px}.dual-slot-container{background:#fff;border-radius:10px;padding:12px;border:2px solid #e5e7eb;transition:all .2s}.dual-slot-container:hover{border-color:#14b8a6;box-shadow:0 2px 8px #14b8a61a}.slot-time-label{text-align:center;font-weight:700;font-size:1rem;color:#1f2937;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.sub-slots{display:flex;flex-direction:row;gap:8px}.sub-slot-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 8px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s;font-size:.85rem;min-height:80px}.sub-slot-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.sub-slot-a.free{border-color:#3b82f6;background:#eff6ff}.sub-slot-a.free:hover{background:#dbeafe;border-color:#2563eb}.sub-slot-a.selected{background:#3b82f6!important;border-color:#2563eb!important;color:#fff!important;transform:scale(1.02)}.sub-slot-a .sub-slot-badge{background:#3b82f6;color:#fff}.sub-slot-a.selected .sub-slot-badge{background:#fff;color:#3b82f6}.sub-slot-b.free{border-color:#f97316;background:#fff7ed}.sub-slot-b.free:hover{background:#ffedd5;border-color:#ea580c}.sub-slot-b.selected{background:#f97316!important;border-color:#ea580c!important;color:#fff!important;transform:scale(1.02)}.sub-slot-b .sub-slot-badge{background:#f97316;color:#fff}.sub-slot-b.selected .sub-slot-badge{background:#fff;color:#f97316}.sub-slot-btn.booked{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#d1d5db;opacity:.6}.sub-slot-btn.booked .sub-slot-badge{background:#9ca3af}.sub-slot-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-weight:700;font-size:.75rem}.sub-slot-type{font-weight:600;font-size:.8rem;color:inherit}.sub-slot-status{font-size:.7rem;font-weight:500;opacity:.8}.appointment-type-selector{display:flex;gap:12px;padding:12px;background:#f9fafb;border-radius:8px}.appointment-type-selector .type-btn{flex:1;padding:12px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-weight:600;transition:all .2s;color:#6b7280}.appointment-type-selector .type-btn:hover{border-color:#14b8a6;color:#14b8a6}.appointment-type-selector .type-btn.active{background:#14b8a6;border-color:#14b8a6;color:#fff}.time-slot-btn{padding:12px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;text-align:center;transition:all .2s;font-size:.9rem;font-weight:600}.time-slot-btn.free{border-color:#10b981;color:#047857}.time-slot-btn.free:hover{background:#d1fae5;transform:translateY(-2px)}.time-slot-btn.booked{background:#f3f4f6;color:#9ca3af;cursor:not-allowed;border-color:#d1d5db}.time-slot-btn.selected{background:#14b8a6!important;color:#fff!important;border-color:#14b8a6!important;transform:scale(1.05)}.slot-status{font-size:.75rem;margin-top:4px;font-weight:500}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:1.5rem}.confirm-booking-btn{padding:12px 24px;background-color:#14b8a6;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.confirm-booking-btn:hover:not(:disabled){background-color:#0f9e87;transform:translateY(-2px)}.confirm-booking-btn:disabled{background-color:#9ca3af;cursor:not-allowed}@media(max-width:1024px){.reminders-sections{grid-template-columns:1fr}.reminder-actions{flex-direction:column}.time-slots-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}}.calendar-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;margin-bottom:24px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-header h2{display:flex;align-items:center;gap:10px;font-size:1.5rem;color:var(--text-dark);margin:0}.toggle-calendar-btn{padding:8px 16px;background-color:#0ea5e9;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.toggle-calendar-btn:hover{background-color:#0284c7;transform:translateY(-2px)}.calendar-widget{margin-top:20px}.calendar-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:0 10px}.calendar-nav h3{font-size:1.25rem;color:var(--text-dark);margin:0}.month-nav-btn{background-color:var(--light-bg);border:1px solid #e5e7eb;border-radius:8px;padding:8px 12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--text-dark)}.month-nav-btn:hover{background-color:#e5e7eb;transform:scale(1.05)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day-header{text-align:center;font-weight:600;color:var(--text-dark);padding:12px 8px;font-size:.875rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;border-radius:8px;cursor:pointer;transition:all .2s;background-color:var(--light-bg);border:2px solid transparent;position:relative;min-height:70px}.calendar-day.empty{cursor:default;background-color:transparent}.calendar-day:hover:not(.empty){background-color:#e0f2fe;transform:scale(1.05)}.calendar-day.today{background-color:#dbeafe;border-color:#0ea5e9;font-weight:700}.calendar-day.selected{background-color:#0ea5e9;color:#fff}.calendar-day.selected .day-number{color:#fff}.calendar-day.has-reminders{background-color:#fef3c7}.calendar-day.has-reminders.today{background-color:#fde68a}.calendar-day.has-reminders.selected{background-color:#0ea5e9}.day-number{font-size:1rem;font-weight:600;color:var(--text-dark);margin-bottom:4px}.reminder-badges{display:flex;gap:4px;margin-top:4px}.reminder-badges .badge{font-size:.65rem;padding:2px 6px;border-radius:4px;font-weight:600;color:#fff}.reminder-badges .badge.medicine{background-color:#f59e0b}.reminder-badges .badge.general{background-color:#14b8a6}.selected-date-info{margin-top:20px;padding:16px;background-color:#dbeafe;border-radius:8px;display:flex;align-items:center;justify-content:space-between}.selected-date-info p{margin:0;color:var(--text-dark);font-weight:500}.clear-filter-btn{padding:6px 12px;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;margin-left:12px;transition:all .2s}.clear-filter-btn:hover{background-color:#dc2626;transform:scale(1.05)}@media(max-width:768px){.calendar-grid{gap:4px}.calendar-day{min-height:50px;padding:4px}.day-number{font-size:.875rem}.reminder-badges .badge{font-size:.5rem;padding:1px 4px}}.call-queue-page{max-width:1100px;margin:0 auto;padding:1.5rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;background:linear-gradient(135deg,#fff,#f0fdfa);padding:1.25rem 1.75rem;border-radius:12px;box-shadow:0 4px 20px #00000014,0 0 0 1px #14b8a61a;border-top:3px solid #14b8a6}.page-header h1{display:flex;align-items:center;gap:12px;font-size:1.75rem;background:linear-gradient(135deg,#14b8a6,#0f766e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;font-weight:800}.page-header h1 svg{-webkit-text-fill-color:#14b8a6;color:#14b8a6}.add-call-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#14b8a6,#0f9c8e);color:#fff;border:none;border-radius:10px;font-weight:700;font-size:.875rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 12px #14b8a640;position:relative;overflow:hidden}.add-call-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.add-call-btn:hover:before{left:100%}.add-call-btn:hover{background:linear-gradient(135deg,#0f9c8e,#0d8577);transform:translateY(-3px);box-shadow:0 8px 20px #14b8a659}.call-form{display:flex;flex-direction:column;gap:20px;max-height:70vh;overflow-y:auto;padding-right:10px}.call-form select,.call-form textarea{width:100%;padding:12px;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:all .2s}.call-form select:focus,.call-form textarea:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}.call-form textarea{resize:vertical;min-height:60px;font-family:inherit}.validation-message{display:block;margin-top:.5rem;font-size:.875rem;font-weight:500}.validation-message.checking{color:#3b82f6}.validation-message.success{color:#10b981}.validation-message.error{color:#f59e0b}.readonly-input{background-color:#f3f4f6!important;cursor:not-allowed}.field-note{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.875rem;color:#6b7280}.queue-container{background:linear-gradient(to bottom,#fff,#fafafa);border-radius:20px;padding:32px;box-shadow:0 4px 24px #0000000f,0 0 0 1px #0000000a;margin-bottom:24px;border:1px solid rgba(20,184,166,.1)}.queue-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:16px;border-bottom:2px solid #f0fdfa}.queue-header h2{font-size:1.75rem;color:#0f766e;margin:0;font-weight:700;display:flex;align-items:center;gap:12px}.queue-header h2:before{content:"";width:6px;height:32px;background:linear-gradient(180deg,#14b8a6,#0f9c8e);border-radius:3px}.realtime-indicator{display:flex;align-items:center;gap:.5rem;background:#f0fdf4;padding:.5rem 1rem;border-radius:8px;color:#10b981;font-size:.875rem;font-weight:600}.realtime-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.queue-info{display:flex;align-items:center;gap:8px;color:#0f766e;font-size:.85rem;margin-bottom:20px;padding:12px 16px;background:linear-gradient(135deg,#e0f2fe,#dbeafe);border-radius:10px;font-weight:600;border-left:4px solid #14b8a6;box-shadow:0 2px 8px #3b82f61a}.empty-state{text-align:center;padding:2.5rem 1.5rem;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-radius:12px;border:2px dashed #d1d5db}.empty-icon{font-size:3.5rem;color:#cbd5e1;margin-bottom:1rem;opacity:.6}.empty-message{font-size:1.125rem;color:#475569;margin-bottom:.5rem;font-weight:600}.empty-state small{color:#94a3b8;font-size:.875rem}.queue-list{display:flex;flex-direction:column;gap:16px}.queue-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:linear-gradient(135deg,#fff,#f9fafb);border-left:4px solid #14b8a6;border-radius:10px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 2px 8px #0000000d;border:1px solid rgba(20,184,166,.1)}.queue-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#14b8a6,#0f9c8e);border-radius:16px 0 0 16px;transition:width .3s}.queue-item:hover{background:linear-gradient(135deg,#f0fdfa,#e6f9f7);border-left-width:4px;transform:translate(4px);box-shadow:0 8px 24px #14b8a626}.queue-item:hover:before{width:6px}.queue-position{background:linear-gradient(135deg,#14b8a6,#0f9c8e);color:#fff;min-width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;box-shadow:0 3px 10px #14b8a640;flex-shrink:0;position:relative;overflow:hidden}.queue-position:after{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%)}.call-details{flex:1;display:flex;flex-direction:column;gap:4px}.patient-name-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.call-details h3{font-size:.95rem;margin:0;color:#0f172a;font-weight:700;letter-spacing:-.01em}.new-patient-badge{display:inline-flex;align-items:center;gap:5px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;padding:4px 12px;border-radius:20px;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.6px;box-shadow:0 4px 12px #fbbf2459;animation:shimmer 3s ease-in-out infinite;position:relative;overflow:hidden}.new-patient-badge:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine-badge 3s ease-in-out infinite}@keyframes shimmer{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shine-badge{0%{left:-100%}50%,to{left:100%}}.phone-number{color:#64748b;font-size:.8125rem;margin:0;display:flex;align-items:center;gap:.5rem;font-weight:500}.call-time{display:flex;align-items:center;gap:.5rem;color:#94a3b8;font-size:.8125rem;font-weight:500;margin-top:.2rem}.time-icon{color:#14b8a6;font-size:.8125rem}.queue-actions{display:flex;flex-direction:row;gap:8px;align-items:center;flex-shrink:0}.status-indicator{display:flex;align-items:center;gap:.5rem;padding:6px 12px;border-radius:8px;font-weight:700;font-size:.75rem;box-shadow:0 2px 6px #0000000f}.status-indicator.waiting{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:1px solid #fbbf24}.status-dot{width:8px;height:8px;background-color:#f59e0b;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite;box-shadow:0 0 6px #f59e0b99}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 8px #f59e0b99}50%{opacity:.7;transform:scale(1.2);box-shadow:0 0 16px #f59e0bcc}}.delete-queue-btn{display:flex;align-items:center;gap:.5rem;padding:6px 12px;background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626;border:1px solid #fca5a5;border-radius:8px;font-weight:700;font-size:.75rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 6px #dc26261f}.delete-queue-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #dc262640}.complete-queue-btn{display:flex;align-items:center;gap:.5rem;padding:6px 12px;background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;border:1px solid #6ee7b7;border-radius:8px;font-weight:700;font-size:.75rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap;box-shadow:0 2px 6px #10b9811f}.complete-queue-btn:hover{background:linear-gradient(135deg,#10b981,#059669);color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #10b98140}.queue-note{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-left:4px solid #3b82f6;padding:20px;border-radius:12px;box-shadow:0 2px 4px #0000000d}.queue-note h3{color:#1e40af;margin-bottom:12px;font-size:1.1rem}.queue-note ul{list-style:none;padding:0;margin:0}.queue-note li{color:#1f2937;font-size:.95rem;margin-bottom:8px;padding-left:1.5rem;position:relative}.queue-note li:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700}@media(max-width:768px){.queue-item{flex-direction:column;align-items:flex-start}.queue-position{align-self:flex-start}.queue-actions{width:100%;flex-direction:row;justify-content:space-between}.queue-header{flex-direction:column;align-items:flex-start;gap:1rem}}.queue-note strong{color:#1e40af}.reason-for-call{display:flex;align-items:flex-start;gap:8px;margin:.5rem 0;padding:.5rem .75rem;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);border-left:4px solid #14b8a6;border-radius:10px;font-size:.8125rem;box-shadow:0 2px 6px #14b8a614}.reason-for-call strong{color:#0f766e;display:inline;margin-bottom:0;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.reason-textarea{min-height:80px;font-family:inherit;resize:vertical}.complete-modal{max-width:550px}.call-summary{background:linear-gradient(135deg,#f9fafb,#f3f4f6);padding:1.5rem;border-radius:16px;margin-bottom:1.5rem;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000a}.call-summary h3{margin:0 0 .75rem;color:#0f172a;font-size:1.375rem;font-weight:700}.call-summary p{margin:.375rem 0;color:#64748b;font-size:1rem;font-weight:500}.reason-display{margin-top:1rem;padding-top:1rem;border-top:2px solid #e5e7eb}.reason-display strong{color:#0f766e;display:block;margin-bottom:.75rem;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.reason-display p{color:#374151;background:linear-gradient(135deg,#f0fdfa,#ccfbf1);padding:1rem;border-radius:12px;border-left:4px solid #14b8a6;margin:0;font-size:.9375rem;line-height:1.6;box-shadow:0 2px 8px #14b8a61a}.staff-notes-textarea{width:100%;min-height:120px;font-family:inherit;resize:vertical;border-radius:12px;border:2px solid #e5e7eb;padding:1rem;font-size:1rem;transition:all .2s}.staff-notes-textarea:focus{outline:none;border-color:#14b8a6;box-shadow:0 0 0 3px #14b8a61a}*{margin:0;padding:0;box-sizing:border-box}:root{--primary-teal: #14b8a6;--primary-blue: #3b82f6;--primary-green: #10b981;--dark-bg: #1e293b;--light-bg: #f8fafc;--text-dark: #1e293b;--text-light: #64748b;--border-color: #e2e8f0;--success: #10b981;--warning: #f59e0b;--error: #ef4444;--doctor-accent: #3b82f6;--staff-accent: #14b8a6}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--light-bg);color:var(--text-dark);line-height:1.6}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.empty-message{text-align:center;padding:40px;color:var(--text-light);font-size:1rem}.status-badge{padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge.scheduled{background-color:#dbeafe;color:#1e40af}.status-badge.rescheduled{background-color:#fef3c7;color:#92400e}.status-badge.completed{background-color:#d1fae5;color:#065f46}.status-badge.missed{background-color:#fee2e2;color:#991b1b}.status-badge.cancelled{background-color:#f1f5f9;color:#475569}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:16px;padding:24px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-content.large{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-header h2{color:var(--text-dark);font-size:1.5rem}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-light);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.close-btn:hover{background-color:var(--light-bg);color:var(--text-dark)}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text-dark);font-size:.9rem}.form-group small{display:block;margin-top:4px;color:var(--text-light);font-size:.8rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;transition:all .2s;font-family:inherit}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-teal)}.form-group input:disabled{background-color:var(--light-bg);cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;gap:12px;margin-top:24px}.save-btn,.cancel-btn{padding:12px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:all .2s;display:flex;align-items:center;gap:8px}.save-btn{background-color:var(--primary-teal);color:#fff;flex:1}.save-btn:hover{background-color:#0f9c8e;transform:translateY(-2px);box-shadow:0 4px 12px #14b8a64d}.save-btn:disabled{background-color:#cbd5e1;cursor:not-allowed;transform:none}.cancel-btn{background-color:transparent;color:var(--text-light);border:2px solid var(--border-color)}.cancel-btn:hover{background-color:var(--light-bg)}@media(max-width:1200px){body{font-size:15px}.modal-content.large{max-width:720px}}@media(max-width:992px){.modal-content{max-width:560px}.form-row{grid-template-columns:1fr}}@media(max-width:768px){body{font-size:14px}.modal-overlay{padding:12px}.modal-content{padding:18px}.form-actions{flex-direction:column}.save-btn,.cancel-btn{width:100%;justify-content:center}}@media(max-width:600px){.modal-content{max-width:100%}.form-group input,.form-group textarea,.form-group select{padding:10px}}@media(max-width:480px){.modal-header h2,.close-btn{font-size:1.25rem}.empty-message{padding:24px}}@media(max-width:400px){body{font-size:13.5px}.status-badge{font-size:.7rem;padding:3px 10px}}
