@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;600;700;800;900&family=Poppins:wght@400;600;700;800&display=swap');
:root{--teal:#00B8A9;--teal-dark:#007A70;--teal-light:#E0F7F5;--teal-mid:#4DD0C4;--red:#E63946;--red-light:#FDECEA;--white:#FFFFFF;--bg:#F4FAFA;--bg2:#E8F6F5;--text:#1A2E2C;--text-mid:#4A6A68;--text-muted:#8AADAB;--border:rgba(0,184,169,0.18);--shadow:0 4px 24px rgba(0,184,169,0.10);--shadow-lg:0 8px 40px rgba(0,184,169,0.18);--radius:12px;--radius-lg:20px;}
*{box-sizing:border-box;margin:0;padding:0;}html{scroll-behavior:smooth;}
body{font-family:'Nunito',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;}
::-webkit-scrollbar{width:5px;}::-webkit-scrollbar-thumb{background:var(--teal-mid);border-radius:3px;}
.app-layout{display:flex;min-height:100vh;}
.sidebar{position:fixed;top:0;left:0;width:255px;height:100vh;background:var(--white);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;box-shadow:4px 0 20px rgba(0,184,169,0.06);transition:transform 0.3s;}
.sidebar-logo{padding:22px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px;}
.logo-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--teal),var(--teal-dark));display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 12px rgba(0,184,169,0.35);flex-shrink:0;}
.logo-text .app-name{font-size:19px;font-weight:900;color:var(--teal-dark);}
.logo-text .app-name em{color:var(--red);font-style:normal;}
.logo-text .app-tag{font-size:10px;color:var(--text-muted);letter-spacing:0.3px;display:block;}
nav{flex:1;padding:14px 10px;overflow-y:auto;}
.nav-sec{font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);padding:12px 8px 4px;}
.nav-link{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:600;color:var(--text-mid);text-decoration:none;transition:all 0.2s;margin-bottom:2px;}
.nav-link:hover{background:var(--teal-light);color:var(--teal-dark);}
.nav-link.active{background:linear-gradient(135deg,var(--teal),var(--teal-mid));color:white;box-shadow:0 4px 12px rgba(0,184,169,0.3);}
.nav-link .ni{font-size:17px;width:20px;text-align:center;}
.nav-badge{margin-left:auto;background:var(--red);color:white;font-size:10px;font-weight:800;padding:2px 7px;border-radius:20px;}
.nav-link.active .nav-badge{background:rgba(255,255,255,0.3);}
.sidebar-footer{padding:14px;border-top:1px solid var(--border);}
.user-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--teal-light);border-radius:var(--radius);cursor:pointer;transition:all 0.2s;}
.user-card:hover{background:var(--bg2);}
.uc-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--teal-dark));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:white;flex-shrink:0;}
.uc-name{font-size:12px;font-weight:700;color:var(--text);}
.uc-role{font-size:10px;color:var(--text-muted);}
.uc-logout{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:17px;margin-left:auto;transition:color 0.2s;}
.uc-logout:hover{color:var(--red);}
.main{margin-left:255px;min-height:100vh;display:flex;flex-direction:column;}
.topbar{height:62px;background:var(--white);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 26px;gap:14px;position:sticky;top:0;z-index:50;box-shadow:0 2px 12px rgba(0,184,169,0.05);}
.topbar-title{font-size:17px;font-weight:800;flex:1;}
.topbar-title span{color:var(--teal);}
.search-wrap{position:relative;max-width:340px;width:100%;}
.search-input{width:100%;background:var(--bg);border:1.5px solid var(--border);border-radius:50px;padding:8px 14px 8px 38px;font-family:'Nunito',sans-serif;font-size:13px;color:var(--text);outline:none;transition:all 0.2s;}
.search-input:focus{border-color:var(--teal);background:white;}
.search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:14px;pointer-events:none;}
.notif-btn{position:relative;background:var(--bg);border:1.5px solid var(--border);border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;transition:all 0.2s;flex-shrink:0;}
.notif-btn:hover{background:var(--teal-light);border-color:var(--teal);}
.notif-dot{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid white;}
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:50px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;cursor:pointer;border:none;transition:all 0.25s;text-decoration:none;}
.btn-primary{background:linear-gradient(135deg,var(--teal),var(--teal-mid));color:white;box-shadow:0 4px 14px rgba(0,184,169,0.35);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,184,169,0.45);}
.btn-red{background:linear-gradient(135deg,var(--red),#ff6b6b);color:white;}
.btn-red:hover{transform:translateY(-1px);}
.btn-outline{background:transparent;border:2px solid var(--teal);color:var(--teal);}
.btn-outline:hover{background:var(--teal-light);}
.btn-ghost{background:var(--teal-light);color:var(--teal-dark);}
.btn-ghost:hover{background:var(--bg2);}
.btn-grey{background:#f0f0f0;color:#555;}
.btn-sm{padding:6px 14px;font-size:12px;}
.content{padding:26px;flex:1;}
.page{display:none;}.page.active{display:block;animation:fadeUp 0.3s ease;}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:26px;}
.stat-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;position:relative;overflow:hidden;transition:transform 0.2s,box-shadow 0.2s;}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;}
.stat-card.t::before{background:linear-gradient(90deg,var(--teal),var(--teal-mid));}
.stat-card.r::before{background:linear-gradient(90deg,var(--red),#ff6b6b);}
.stat-card.g::before{background:linear-gradient(90deg,#2ECC71,#27ae60);}
.stat-card.o::before{background:linear-gradient(90deg,#F39C12,#e67e22);}
.stat-icon{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px;}
.stat-card.t .stat-icon{background:var(--teal-light);}
.stat-card.r .stat-icon{background:var(--red-light);}
.stat-card.g .stat-icon{background:#EAFAF1;}
.stat-card.o .stat-icon{background:#FEF9E7;}
.stat-val{font-size:28px;font-weight:900;color:var(--text);font-family:'Poppins',sans-serif;line-height:1;}
.stat-lbl{font-size:11px;color:var(--text-muted);margin-top:4px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;}
.stat-sub{font-size:11px;color:var(--text-muted);margin-top:6px;}
.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:22px;box-shadow:var(--shadow);}
.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;}
.card-title{font-size:14px;font-weight:800;}.card-title span{color:var(--teal);}
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{padding:11px 14px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg);}
td{padding:12px 14px;border-bottom:1px solid rgba(0,184,169,0.07);vertical-align:middle;}
tr:last-child td{border-bottom:none;}tr:hover td{background:var(--teal-light);}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 11px;border-radius:20px;font-size:11px;font-weight:700;}
.badge-teal{background:var(--teal-light);color:var(--teal-dark);}
.badge-red{background:var(--red-light);color:var(--red);}
.badge-green{background:#EAFAF1;color:#1a8a4a;}
.badge-orange{background:#FEF9E7;color:#b7791f;}
.badge-grey{background:#F5F5F5;color:#666;}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--teal-dark));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:white;flex-shrink:0;}
.avatar-lg{width:54px;height:54px;font-size:20px;}
.avatar-xl{width:80px;height:80px;font-size:28px;}
.modal-overlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.45);align-items:center;justify-content:center;backdrop-filter:blur(4px);}
.modal-overlay.open{display:flex;}
.modal{background:var(--white);border-radius:var(--radius-lg);width:90%;max-width:560px;max-height:90vh;overflow-y:auto;animation:slideUp 0.28s ease;box-shadow:0 20px 60px rgba(0,0,0,0.2);}
@keyframes slideUp{from{opacity:0;transform:translateY(22px) scale(0.97);}to{opacity:1;transform:translateY(0) scale(1);}}
.modal-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--teal-light),white);}
.modal-title{font-size:16px;font-weight:800;}
.modal-close{background:none;border:none;color:var(--text-muted);font-size:22px;cursor:pointer;transition:color 0.2s;}
.modal-close:hover{color:var(--red);}
.modal-body{padding:22px;}.modal-footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:10px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}.form-full{grid-column:1/-1;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-label{font-size:11px;font-weight:700;color:var(--text-mid);text-transform:uppercase;letter-spacing:0.5px;}
.form-input,.form-select,.form-textarea{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius);padding:10px 13px;color:var(--text);font-family:'Nunito',sans-serif;font-size:13px;outline:none;transition:all 0.2s;width:100%;}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--teal);background:white;box-shadow:0 0 0 3px rgba(0,184,169,0.1);}
.form-textarea{resize:vertical;min-height:80px;}
.doctor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;}
.doc-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all 0.25s;cursor:pointer;position:relative;overflow:hidden;}
.doc-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--teal),var(--teal-mid));}
.doc-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--teal-mid);}
.doc-card-hd{display:flex;align-items:center;gap:13px;margin-bottom:14px;}
.doc-name{font-size:14px;font-weight:800;color:var(--text);margin-bottom:2px;}
.doc-spec{font-size:11px;color:var(--teal-dark);font-weight:700;}
.doc-info{font-size:11px;color:var(--text-muted);display:flex;align-items:center;gap:4px;margin-top:3px;}
.doc-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px;}
.doc-actions{display:flex;gap:8px;margin-top:14px;}
.doc-actions .btn{flex:1;justify-content:center;}
.search-hero{background:linear-gradient(135deg,var(--teal-dark),var(--teal),var(--teal-mid));border-radius:var(--radius-lg);padding:36px;text-align:center;margin-bottom:26px;position:relative;overflow:hidden;}
.search-hero::before{content:'';position:absolute;top:-40px;right:-40px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,0.07);}
.search-hero h2{font-size:24px;font-weight:900;color:white;margin-bottom:6px;position:relative;z-index:1;}
.search-hero p{font-size:13px;color:rgba(255,255,255,0.8);margin-bottom:22px;position:relative;z-index:1;}
.search-bar-big{display:flex;gap:8px;max-width:680px;margin:0 auto;position:relative;z-index:1;flex-wrap:wrap;}
.search-bar-big input,.search-bar-big select{background:white;border:none;border-radius:50px;padding:13px 18px;font-family:'Nunito',sans-serif;font-size:13px;outline:none;color:var(--text);flex:1;min-width:140px;}
.filters-row{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
.filter-chip{padding:6px 16px;border-radius:50px;font-size:12px;font-weight:700;cursor:pointer;border:2px solid var(--border);background:white;color:var(--text-mid);transition:all 0.2s;}
.filter-chip:hover{border-color:var(--teal);color:var(--teal);}
.filter-chip.active{background:var(--teal);border-color:var(--teal);color:white;box-shadow:0 4px 12px rgba(0,184,169,0.3);}
.chat-layout{display:grid;grid-template-columns:280px 1fr;gap:18px;height:calc(100vh - 190px);}
.chat-list{background:white;border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;}
.chat-list-hd{padding:14px 16px;border-bottom:1px solid var(--border);font-weight:800;font-size:14px;}
.chat-item{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid rgba(0,184,169,0.07);transition:background 0.2s;}
.chat-item:hover{background:var(--teal-light);}
.chat-item.active{background:var(--teal-light);border-left:3px solid var(--teal);}
.ci-name{font-size:12px;font-weight:700;color:var(--text);}
.ci-last{font-size:11px;color:var(--text-muted);margin-top:1px;}
.ci-time{font-size:10px;color:var(--text-muted);margin-left:auto;flex-shrink:0;}
.ci-unread{background:var(--teal);color:white;font-size:10px;font-weight:800;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.chat-window{background:white;border-radius:var(--radius-lg);border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;}
.cw-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px;background:var(--teal-light);}
.cw-name{font-weight:800;font-size:14px;}.cw-status{font-size:11px;color:var(--teal-dark);}
.chat-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:14px;background:var(--bg);}
.msg{max-width:65%;}.msg-me{align-self:flex-end;}.msg-other{align-self:flex-start;}
.msg-bubble{padding:10px 14px;border-radius:18px;font-size:13px;line-height:1.6;}
.msg-me .msg-bubble{background:linear-gradient(135deg,var(--teal),var(--teal-mid));color:white;border-bottom-right-radius:4px;}
.msg-other .msg-bubble{background:white;color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px;}
.msg-time{font-size:10px;color:var(--text-muted);margin-top:3px;}
.msg-me .msg-time{text-align:right;}
.chat-input-area{padding:14px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center;}
.chat-inp{flex:1;background:var(--bg);border:1.5px solid var(--border);border-radius:50px;padding:10px 16px;font-family:'Nunito',sans-serif;font-size:13px;color:var(--text);outline:none;transition:border-color 0.2s;}
.chat-inp:focus{border-color:var(--teal);}
.profile-hero{background:linear-gradient(135deg,var(--teal-dark),var(--teal));border-radius:var(--radius-lg);padding:32px;display:flex;align-items:center;gap:22px;margin-bottom:22px;position:relative;overflow:hidden;}
.profile-hero::after{content:'';position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,0.07);}
.ph-info h2{font-size:22px;font-weight:900;color:white;margin-bottom:4px;}
.ph-info p{font-size:13px;color:rgba(255,255,255,0.8);}
.ph-info .badge{margin-top:10px;background:rgba(255,255,255,0.2);color:white;}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.info-group{margin-bottom:14px;}
.info-lbl{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:3px;}
.info-val{font-size:14px;font-weight:600;color:var(--text);}
.tabs{display:flex;gap:3px;margin-bottom:22px;background:var(--bg);padding:4px;border-radius:50px;width:fit-content;}
.tab{padding:7px 18px;border-radius:50px;font-size:12px;font-weight:700;cursor:pointer;color:var(--text-muted);transition:all 0.2s;}
.tab.active{background:white;color:var(--teal-dark);box-shadow:0 2px 8px rgba(0,184,169,0.15);}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--teal-dark),var(--teal),#4DD0C4);padding:20px;}
.auth-box{background:white;border-radius:var(--radius-lg);padding:38px;width:100%;max-width:470px;box-shadow:0 20px 60px rgba(0,0,0,0.2);animation:slideUp 0.4s ease;}
.auth-logo{text-align:center;margin-bottom:28px;}
.auth-logo .big{font-size:40px;font-weight:900;color:var(--teal-dark);}
.auth-logo .big em{color:var(--red);font-style:normal;}
.auth-logo .sub{font-size:12px;color:var(--text-muted);}
.auth-title{font-size:20px;font-weight:800;margin-bottom:5px;}
.auth-sub{font-size:12px;color:var(--text-muted);margin-bottom:24px;}
.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px;}
.role-btn{padding:14px 8px;border-radius:var(--radius);border:2px solid var(--border);background:var(--bg);cursor:pointer;text-align:center;transition:all 0.2s;}
.role-btn:hover{border-color:var(--teal);}
.role-btn.active{border-color:var(--teal);background:var(--teal-light);}
.rb-icon{font-size:24px;margin-bottom:5px;}
.rb-name{font-size:12px;font-weight:700;color:var(--text-mid);}
.role-btn.active .rb-name{color:var(--teal-dark);}
.auth-switch{text-align:center;font-size:12px;color:var(--text-muted);margin-top:18px;}
.auth-switch a{color:var(--teal);font-weight:700;cursor:pointer;}
.alert{padding:11px 15px;border-radius:var(--radius);font-size:12px;margin-bottom:18px;display:flex;align-items:center;gap:8px;}
.alert-success{background:#EAFAF1;border:1px solid #a9dfbf;color:#1a6e2e;}
.alert-error{background:var(--red-light);border:1px solid #f5c6cb;color:var(--red);}
.alert-info{background:var(--teal-light);border:1px solid var(--teal-mid);color:var(--teal-dark);}
#toast{position:fixed;bottom:22px;right:22px;background:var(--teal-dark);color:white;padding:12px 18px;border-radius:var(--radius);font-size:13px;font-weight:600;z-index:300;transform:translateY(80px);opacity:0;transition:all 0.3s;max-width:300px;box-shadow:0 8px 24px rgba(0,0,0,0.2);}
#toast.show{transform:translateY(0);opacity:1;}
#toast.error{background:var(--red);}#toast.success{background:#1a8a4a;}
.actu-card{background:white;border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:14px;transition:all 0.2s;}
.actu-card:hover{box-shadow:var(--shadow);}
.actu-card.epingled{border-color:var(--teal);border-left:4px solid var(--teal);}
.actu-title{font-size:15px;font-weight:800;margin-bottom:6px;}
.actu-date{font-size:11px;color:var(--text-muted);margin-bottom:8px;}
.actu-body{font-size:13px;color:var(--text-mid);line-height:1.7;}
.pharma-card{background:white;border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;display:flex;align-items:center;gap:14px;margin-bottom:10px;}
.pharma-icon{width:44px;height:44px;background:var(--red-light);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
@media(max-width:960px){.sidebar{transform:translateX(-100%);}.sidebar.open{transform:translateX(0);}.main{margin-left:0;}.stats-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.stats-grid{grid-template-columns:1fr;}.form-grid{grid-template-columns:1fr;}.chat-layout{grid-template-columns:1fr;height:auto;}.profile-grid{grid-template-columns:1fr;}}
