@import "https://fonts.googleapis.com/css2?family=Fira+Sans:wght@600;700&family=Heebo:wght@400;600&display=swap";*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--text-dark);font-family:Heebo,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font-family:inherit;font-size:15px}:root{--primary-color:#ff4848;--primary-hover:#f44336;--primary-light:#fff5f6;--primary-border:#ff92a5;--bg-app:#fbfbfc;--bg-card:#fff;--bg-subtle:#f7f8fb;--text-dark:#07193c;--text-medium:#222;--text-light:#8b8b8b;--text-muted:#8b8b8b;--border-color:#e5e7eb;--border-strong:#d7dce5;--border-focus:#f2474b;--tanaya-color:#7c3aed;--tanaya-bg:#f5f3ff;--tanaya-border:#ddd6fe;--andro-color:#0369a1;--andro-bg:#f0f9ff;--andro-border:#bae6fd;--ritefood-color:#047857;--ritefood-bg:#ecfdf5;--ritefood-border:#a7f3d0;--success:#059669;--success-bg:#ecfdf5;--success-border:#a7f3d0;--warning:#b45309;--warning-bg:#fffbeb;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow-md:0 4px 8px #0000000f, 0 2px 4px #0000000a;--shadow-lg:0 10px 24px #00000014, 0 4px 8px #0000000a;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--border-radius:var(--radius);--border-radius-lg:var(--radius-lg);--sidebar-bg:#fff;--sidebar-width:256px;--red:#ff4848;--red-hover:#f44336;--red-light:#fff5f6;--red-border:#ff92a5;--red-muted:#ff484824}html,body{height:100%;overflow:hidden}#root{width:100%;height:100%}.app-container{background:linear-gradient(135deg, #f2474b0d 0%, #ffffffc7 36%, #0b173608 100%), radial-gradient(circle, #0b17361a 1px, transparent 1.4px), var(--bg-app);background-size:100% 100%,32px 32px,100% 100%;width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--border-color);height:100vh;box-shadow:none;background:#fff;flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border-color);background:#fff;flex-direction:column;flex-shrink:0;justify-content:center;height:90px;padding:0 24px;display:flex;position:relative}.sidebar-header:after{display:none}.brand-logo-wrap{align-items:center;gap:10px;margin-bottom:6px;display:flex}.brand-icon{background:var(--primary-color);color:#fff;width:38px;height:38px;box-shadow:none;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.brand-title{color:var(--primary-color);letter-spacing:0;font-family:Fira Sans,Inter,sans-serif;font-size:20px;font-weight:800;line-height:1}.brand-title span{color:var(--primary-color)}.brand-subtitle{color:var(--text-light);text-transform:uppercase;letter-spacing:1.4px;margin-top:4px;margin-left:44px;font-size:10px;font-weight:700}.sidebar-menu{flex-direction:column;flex-grow:1;gap:2px;padding:16px 0;list-style:none;display:flex}.menu-section-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--text-light);padding:12px 24px 6px;font-size:10px;font-weight:700}.menu-link{color:var(--text-medium);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0;align-items:center;gap:10px;width:100%;padding:12px 24px;font-size:14px;font-weight:600;transition:all .15s;display:flex;position:relative}.menu-link .menu-icon{text-align:center;flex-shrink:0;width:20px;font-size:16px}.menu-link:hover{background-color:var(--bg-subtle);color:var(--primary-color)}.menu-link.active{background:var(--primary-light);color:var(--primary-color);border-left:4px solid var(--primary-color);padding-left:20px;font-weight:700}.sidebar-divider{background:var(--border-color);height:1px;margin:8px 12px}.sidebar-footer{border-top:1px solid var(--border-color);padding:16px}.doctor-profile-brief{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:10px;margin-bottom:10px;padding:10px;display:flex}.doc-avatar{color:#fff;background:#f2474b;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.doc-info{flex-direction:column;min-width:0;display:flex}.doc-name{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.doc-specialty{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.btn-logout{border:1px solid var(--border-color);color:var(--text-medium);cursor:pointer;background-color:#0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;padding:8px 12px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.btn-logout:hover{background-color:var(--primary-light);color:var(--primary-color);border-color:var(--primary-color)}.main-content{background:var(--bg-subtle);flex-direction:column;flex:1 1 0;min-width:0;height:100%;display:flex;overflow-y:auto}.top-bar{background-color:var(--bg-card);border-bottom:1px solid var(--border-color);background-clip:padding-box;flex-shrink:0;justify-content:space-between;align-items:center;height:90px;padding:0 40px;display:flex;position:relative}.top-bar-left{align-items:center;gap:12px;display:flex}.top-bar-breadcrumb{color:var(--text-muted);font-size:12px;font-weight:500}.top-bar-breadcrumb span{color:var(--text-light)}.page-title{color:var(--text-dark);letter-spacing:0;font-family:Fira Sans,sans-serif;font-size:20px;font-weight:800}.top-bar-right{align-items:center;gap:12px;display:flex}.status-pill{color:#047857;border:1px solid var(--success-border);background-color:#f0fdf4;border-radius:20px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}.status-dot{background:var(--success);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.top-bar-date{color:var(--text-light);border:1px solid var(--border-color);background:#fff;border-radius:20px;padding:5px 12px;font-size:13px;font-weight:600}.content-viewport{flex:1 1 0;width:100%;padding:40px;overflow-y:auto}@media (width<=980px){html,body{overflow:auto}.app-container{flex-direction:column;height:auto;min-height:100vh;overflow:visible}.sidebar{width:100%;height:auto;position:relative;overflow:visible}.sidebar-menu{flex-direction:row;padding:12px;overflow-x:auto}.menu-section-label,.sidebar-divider{display:none}.menu-item{flex:none}.menu-link{white-space:nowrap}.sidebar-footer{display:none}.main-content{height:auto;overflow:visible}.top-bar{flex-direction:column;align-items:flex-start;gap:10px;height:auto;padding:24px}.top-bar-right{flex-wrap:wrap}.content-viewport{padding:24px;overflow:visible}}@media (width<=640px){.top-bar,.content-viewport{padding:16px}}.fade-in{animation:.25s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.login-container{background-color:#fff;background-image:linear-gradient(135deg,#f2474b0f 0%,#ffffffc7 42%,#f2474b0a 100%),radial-gradient(circle,#0b173629 1px,#0000 1.4px);background-size:100% 100%,32px 32px;justify-content:center;align-items:center;width:100vw;min-height:100vh;padding:24px;display:flex}.login-card{background-color:var(--bg-card);border:1px solid #0b173614;border-radius:8px;width:100%;max-width:458px;padding:46px 42px 40px;position:relative;overflow:hidden;box-shadow:0 28px 68px #0b17361f}.login-card:before{content:"";background:#f2474b;width:6px;position:absolute;top:0;bottom:0;left:0}.login-card:after{content:"";background:linear-gradient(90deg,#f2474b 0% 48%,#0b1736 100%);height:4px;position:absolute;top:0;left:0;right:0}.login-header{text-align:center;margin-bottom:36px}.login-brand-wrap{align-items:center;gap:12px;margin-bottom:14px;display:inline-flex}.login-brand-icon{color:#fff;background:linear-gradient(135deg,#f2474b 0%,#0b1736 100%);border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;font-weight:700;display:flex;box-shadow:0 12px 26px #f2474b3d}.login-logo{color:#0b1736;letter-spacing:0;font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:30px;font-weight:800;line-height:1}.login-logo span{color:#f2474b}.login-tagline{color:#202124;margin-top:2px;font-size:17px;font-weight:500}.login-divider{background:#f2474b;border-radius:999px;width:54px;height:5px;margin:18px auto 0}.form-group{flex-direction:column;gap:7px;margin-bottom:20px;display:flex}.form-label{color:#0b1736;letter-spacing:0;font-size:15px;font-weight:800}.form-input{color:#0b1736;background:var(--bg-card);border:1.5px solid #d7dce5;border-radius:8px;outline:none;width:100%;padding:15px 16px;font-size:16px;transition:border-color .2s,box-shadow .2s}.form-input:focus{border-color:#f2474b;box-shadow:0 0 0 4px #f2474b24}.otp-inputs-row{justify-content:space-between;gap:8px;width:100%;margin-top:10px;display:flex;overflow:hidden}.otp-box{text-align:center;width:0;min-width:0;max-width:52px;height:54px;color:var(--text-dark);background:var(--bg-card);border:2px solid #d7dce5;border-radius:8px;outline:none;flex:1 1 0;font-size:20px;font-weight:700;transition:border-color .2s,box-shadow .2s}.otp-box:focus{border-color:#f2474b;box-shadow:0 0 0 3px #f2474b24}.btn-primary{color:#fff;cursor:pointer;letter-spacing:.1px;background:#f2474b;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;padding:15px 20px;font-size:16px;font-weight:800;transition:background .2s,transform .1s,box-shadow .2s;display:flex;box-shadow:0 14px 24px #f2474b3d}.btn-primary:hover{background:#dc353e;box-shadow:0 16px 28px #f2474b4d}.btn-primary:active{transform:scale(.99)}.login-switch-link{color:#f2474b;cursor:pointer;text-align:center;background:0 0;border:none;width:100%;margin-top:10px;font-size:13px;font-weight:600;text-decoration:underline}.login-info-box{color:#8d1b28;text-align:center;background-color:#fff5f5;border:1px solid #f2474b33;border-radius:8px;margin-top:20px;padding:12px 16px;font-size:12px;font-weight:600;line-height:1.6}.login-info-box span{display:block}.login-error-box{color:#b91c1c;background:#fef2f2;border-color:#fecaca;margin-bottom:18px}@media (width<=560px){.login-container{align-items:flex-start;padding:16px}.login-card{margin-top:24px;padding:38px 24px 30px}.login-brand-wrap{flex-direction:column}.login-logo{font-size:28px}}.metrics-row{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-bottom:55px;display:grid}.metric-card{background-color:var(--bg-card);border:1px solid #0b173614;border-radius:8px;justify-content:space-between;align-items:center;padding:40px;transition:box-shadow .2s;display:flex;box-shadow:0 14px 34px #0b17360f}.metric-card-urgent{border-left:4px solid var(--red);background:linear-gradient(135deg,#fff5f5 0%,#fff 68%)}.metric-card-urgent .metric-label{color:#9f1239}.metric-card-urgent .metric-value{color:var(--red)}.metric-data{flex-direction:column;gap:6px;display:flex}.metric-label{color:#74777f;text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:800}.metric-value{color:var(--text-dark);font-size:28px;font-weight:800}.metric-change{align-items:center;gap:4px;margin-top:4px;font-size:13px;font-weight:600;display:flex}.metric-change.positive{color:var(--success)}.metric-change.neutral{color:var(--text-light)}.metric-change.urgent{color:var(--red);font-weight:700}.metric-icon-box{width:56px;height:56px;color:var(--primary-color);background-color:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;font-size:24px;display:flex}.metric-icon-box-red{background-color:var(--red-light);color:var(--red)}.dashboard-grid{grid-template-columns:1.6fr 1fr;align-items:start;gap:40px;display:grid}.card-container{background-color:var(--bg-card);border:1px solid #0b173614;border-radius:8px;margin-bottom:55px;overflow:hidden;box-shadow:0 14px 34px #0b17360f}.card-header{border-bottom:1px solid var(--border-color);border-top:4px solid var(--red);background:linear-gradient(#fff 0%,snow 100%);border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:18px 40px;display:flex}.card-title{color:var(--text-dark);font-size:16px;font-weight:800}.card-body{padding:40px}.analytics-toggle{border:1px solid var(--border-color);background-color:#f7f8fb;border-radius:8px;padding:4px;display:flex}.btn-toggle-tab{color:var(--text-medium);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 16px;font-size:14px;font-weight:600;transition:all .2s}.btn-toggle-tab.active{color:var(--red);background-color:#fff;font-weight:700;box-shadow:0 6px 14px #0b17360f}.chart-wrapper{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:flex-end;gap:20px;height:240px;margin-top:24px;padding-top:20px;display:flex;position:relative}.chart-column{flex-direction:column;flex-grow:1;justify-content:flex-end;align-items:center;gap:8px;height:100%;display:flex}.chart-bar-container{background-color:#e2e8f0;border-radius:4px 4px 0 0;align-items:flex-end;width:100%;max-width:60px;height:100%;display:flex;overflow:hidden}.chart-bar{background:linear-gradient(180deg, var(--red) 0%, #dc353e 100%);border-radius:4px 4px 0 0;width:100%;transition:height .6s cubic-bezier(.16,1,.3,1);position:relative}.chart-bar-value{color:var(--text-dark);font-size:12px;font-weight:700;position:absolute;top:-24px;left:50%;transform:translate(-50%)}.chart-label{color:var(--text-light);text-align:center;font-size:12px;font-weight:600}.appointment-list-simple{flex-direction:column;gap:16px;display:flex}.appointment-item-simple{background-color:#fff;border:1px solid #0b173614;border-radius:8px;align-items:center;gap:16px;padding:16px;display:flex}.appt-time-badge{border:1px solid var(--border-color);text-align:center;background-color:#fff5f5;border-radius:8px;min-width:70px;padding:8px 12px}.appt-time{color:var(--red);font-size:14px;font-weight:700;display:block}.appt-date-label{color:var(--text-light);text-transform:uppercase;font-size:11px}.appt-details{flex-grow:1}.appt-patient-name{color:var(--text-dark);font-size:15px;font-weight:700}.appt-category{margin-top:2px;font-size:12px;font-weight:500;display:inline-block}.badge{text-transform:uppercase;letter-spacing:.5px;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-tanaya{background-color:var(--tanaya-bg);color:var(--tanaya-color);border:1px solid #7c3aed33}.badge-andro{background-color:var(--andro-bg);color:var(--andro-color);border:1px solid #0369a133}.badge-ritefood{background-color:var(--ritefood-bg);color:var(--ritefood-color);border:1px solid #04785733}.badge-urgent{background-color:var(--red-light);color:var(--red);border:1px solid var(--red-border)}.records-filter-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.search-input-wrapper{flex-grow:1;max-width:360px;position:relative}.search-input{border:1.5px solid var(--border-color);border-radius:8px;outline:none;width:100%;padding:10px 16px;font-size:14px}.search-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #f2474b1f}.category-filter-buttons{gap:8px;display:flex}.btn-filter{border:1.5px solid var(--border-color);cursor:pointer;color:var(--text-medium);background:#fff;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .2s}.btn-filter:hover{background-color:var(--bg-app)}.btn-filter.active{background-color:var(--red);border-color:var(--red);color:#fff}.records-table-container{border:1px solid var(--border-color);border-radius:8px;width:100%;overflow-x:auto}.records-table{border-collapse:collapse;text-align:left;width:100%}.records-table th{text-transform:uppercase;color:var(--text-medium);letter-spacing:.5px;border-bottom:1.5px solid var(--border-color);background-color:#fff5f5;padding:14px 20px;font-size:13px;font-weight:700}.records-table td{border-bottom:1px solid var(--border-color);color:var(--text-dark);padding:16px 20px;font-size:14px}.records-table tr:last-child td{border-bottom:none}.records-table tr:hover td{background-color:#f8fafc}.patient-cell{flex-direction:column;display:flex}.patient-name-primary{font-size:15px;font-weight:700}.patient-age-gender{color:var(--text-light);font-size:12px}.toast-container{z-index:9999;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.toast{color:#fff;border-left:5px solid var(--red);box-shadow:var(--shadow-lg);background-color:#0f172a;border-radius:8px;justify-content:space-between;align-items:center;gap:20px;min-width:320px;padding:16px 24px;animation:.3s cubic-bezier(.16,1,.3,1) slideIn;display:flex}.toast-content{flex-direction:column;gap:4px;display:flex}.toast-title{font-size:14px;font-weight:700}.toast-msg{color:#cbd5e1;font-size:13px}.toast-code{color:#fecdd3;letter-spacing:1px;background:#ffffff26;border-radius:4px;padding:2px 6px;font-family:monospace;font-weight:700}.btn-toast-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;font-size:16px}.btn-toast-close:hover{color:#fff}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.chat-layout{background:var(--bg-card);border:1px solid #0b173614;border-radius:8px;flex:1 1 0;grid-template-columns:320px 1fr;gap:0;height:calc(100vh - 64px);min-height:0;display:grid;overflow:hidden;box-shadow:0 14px 34px #0b17360f}.chat-patient-list{border-right:1px solid var(--border-color);background:#fbfbfc;flex-direction:column;display:flex;overflow:hidden}.chat-list-header{border-bottom:1px solid var(--border-color);background:#fff;justify-content:space-between;align-items:center;padding:20px 20px 12px;display:flex}.chat-list-title{color:var(--text-dark);font-size:16px;font-weight:700}.chat-unread-count{color:var(--red);border:1px solid var(--red-border);background:#fff5f5;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.chat-search-wrap{border-bottom:1px solid var(--border-color);background:#fff;padding:12px 16px}.chat-search-wrap .search-input{padding:8px 12px;font-size:13px}.chat-patient-items{flex-grow:1;overflow-y:auto}.chat-patient-item{cursor:pointer;border-bottom:1px solid var(--border-color);align-items:center;gap:12px;padding:14px 16px;transition:background .15s;display:flex}.chat-patient-item:hover{background:#f1f5f9}.chat-patient-item.active{border-left:3px solid var(--red);background:#fff5f5}.chat-patient-avatar-wrap{flex-shrink:0;position:relative}.chat-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex}.online-indicator{background:var(--success);border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;bottom:1px;right:1px}.chat-patient-info{flex-grow:1;min-width:0}.chat-patient-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.chat-patient-name{color:var(--text-dark);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.chat-patient-time{color:var(--text-light);flex-shrink:0;font-size:11px}.chat-patient-bottom{justify-content:space-between;align-items:center;margin-top:3px;display:flex}.chat-last-msg{color:var(--text-light);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:12px;overflow:hidden}.unread-badge{background:var(--red);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex}.chat-window{flex-direction:column;display:flex;overflow:hidden}.chat-window-header{border-bottom:1px solid var(--border-color);background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.chat-window-patient-name{color:var(--text-dark);margin-bottom:4px;font-size:16px;font-weight:700}.chat-messages-area{background:linear-gradient(135deg,#f2474b0a,#0000 46%),#fbfbfc;flex-direction:column;flex-grow:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.chat-date-divider{text-align:center;color:var(--text-light);border:1px solid var(--red-border);background:#fff5f5;border-radius:20px;align-self:center;margin:4px 0 8px;padding:4px 16px;font-size:12px;font-weight:600}.chat-bubble-row{align-items:flex-end;gap:10px;display:flex}.patient-row{justify-content:flex-start}.doctor-row{justify-content:flex-end}.chat-bubble{border-radius:16px;flex-direction:column;gap:4px;max-width:68%;padding:12px 16px;display:flex}.bubble-patient{border:1px solid var(--border-color);background:#fff;border-bottom-left-radius:4px}.bubble-doctor{background:linear-gradient(135deg, var(--red) 0%, #dc353e 100%);color:#fff;border-bottom-right-radius:4px}.bubble-text{font-size:14px;line-height:1.5}.bubble-patient .bubble-text{color:var(--text-dark)}.bubble-time{align-self:flex-end;font-size:10px}.bubble-patient .bubble-time{color:var(--text-light)}.bubble-doctor .bubble-time{color:#ffffffb3}.message-tick{letter-spacing:-2px;margin-left:4px}.message-tick.read{color:#53bdeb}.chat-input-area{border-top:1px solid var(--border-color);background:#fff;flex-shrink:0;padding:16px 24px}.chat-input-form{align-items:flex-end;gap:12px;display:flex}.chat-textarea{border:1.5px solid var(--border-color);resize:none;border-radius:8px;outline:none;flex-grow:1;max-height:120px;padding:12px 16px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .2s}.chat-textarea:focus{border-color:var(--border-focus)}.btn-send{background:var(--red);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:12px 22px;font-size:14px;font-weight:700;transition:opacity .2s;box-shadow:0 10px 20px #f2474b38}.btn-send:hover{background:var(--red-hover);opacity:1}.btn-send:disabled{box-shadow:none;cursor:not-allowed;background:#94a3b8}.profile-layout{grid-template-columns:380px 1fr;align-items:start;gap:28px;display:grid}.profile-left,.profile-right{flex-direction:column;gap:24px;display:flex}.profile-card{background:var(--bg-card);border:1px solid #0b173614;border-radius:8px;padding:28px;box-shadow:0 14px 34px #0b17360f}.profile-photo-section{border-bottom:1px solid var(--border-color);flex-direction:column;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:24px;display:flex}.profile-photo-wrap{width:100px;height:100px;position:relative}.profile-photo-img{object-fit:cover;border:3px solid var(--red-border);border-radius:50%;width:100px;height:100px}.profile-photo-placeholder{border:3px solid var(--red-border);background:#fff5f5;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;font-size:44px;display:flex}.profile-photo-edit-btn{background:var(--red);color:#fff;cursor:pointer;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:14px;transition:opacity .2s;display:flex;position:absolute;bottom:2px;right:2px;box-shadow:0 2px 6px #c0162c66}.profile-photo-edit-btn:hover{opacity:.85}.profile-identity{text-align:center}.profile-doc-name{color:var(--text-dark);font-size:22px;font-weight:700}.profile-doc-specialty{color:var(--text-medium);margin-top:4px;font-size:14px}.profile-info-notice{border:1px solid var(--red-border);color:#8d1b28;background:#fff5f5;border-radius:8px;margin-bottom:20px;padding:10px 14px;font-size:12px;font-weight:600;line-height:1.5}.profile-info-section{flex-direction:column;gap:2px;display:flex}.profile-field-row{border-bottom:1px solid #f1f5f9;align-items:flex-start;gap:14px;padding:12px 0;display:flex}.profile-field-row:last-child{border-bottom:none}.profile-field-icon{flex-shrink:0;width:24px;margin-top:1px;font-size:18px}.profile-field-content{flex-direction:column;gap:2px;display:flex}.profile-field-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);font-size:11px;font-weight:700}.profile-field-value{color:var(--text-dark);font-size:14px;font-weight:600}.schedule-list{flex-direction:column;gap:8px;display:flex}.schedule-day-row{border:1.5px solid var(--border-color);background:#fff;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;transition:border-color .2s;display:flex}.schedule-day-row:hover{border-color:#94a3b8}.schedule-day-inactive{opacity:.7;background:#f8fafc}.schedule-day-left{align-items:center;gap:12px;display:flex}.day-toggle-btn{cursor:pointer;letter-spacing:.5px;border:none;border-radius:20px;padding:5px 12px;font-size:11px;font-weight:800;transition:all .2s}.day-toggle-on{background:var(--red);color:#fff;border:1.5px solid var(--red-border)}.day-toggle-off{color:var(--text-light);border:1.5px solid var(--border-color);background:#f1f5f9}.schedule-day-name{color:var(--text-dark);min-width:90px;font-size:14px;font-weight:700}.schedule-time-pickers{align-items:center;gap:10px;display:flex}.schedule-time-field{flex-direction:column;gap:3px;display:flex}.schedule-time-label{text-transform:uppercase;color:var(--text-light);letter-spacing:.5px;font-size:10px;font-weight:700}.schedule-time-select{border:1.5px solid var(--border-color);color:var(--text-dark);cursor:pointer;background:#fff;border-radius:8px;outline:none;padding:7px 10px;font-size:13px;font-weight:600}.schedule-time-select:focus{border-color:var(--border-focus)}.schedule-to-divider{color:var(--text-light);margin-top:14px;font-size:16px}.schedule-closed-label{color:var(--text-light);font-size:13px;font-style:italic;font-weight:600}.prescriptions-page{flex-direction:column;gap:24px;display:flex}.prescription-toolbar{background:var(--bg-card);border:1px solid #0b173614;border-radius:8px;padding:18px 20px;box-shadow:0 14px 34px #0b17360f}.prescription-select{max-width:280px}.prescription-send-btn{width:auto;min-width:170px}.prescription-panels{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.prescription-count{background:var(--red-light);border:1px solid var(--red-border);min-width:30px;height:26px;color:var(--red);border-radius:999px;justify-content:center;align-items:center;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.prescription-list{flex-direction:column;gap:14px;display:flex}.prescription-card{border:1px solid var(--border-color);background:#fff;border-radius:8px;grid-template-columns:128px 1fr;gap:14px;padding:12px;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid}.prescription-card:hover{border-color:var(--red-border);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.prescription-thumb{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;width:128px;height:104px;color:var(--text-light);background:#f8fafc;font-size:12px;font-weight:700;overflow:hidden}.prescription-thumb img{object-fit:cover;width:100%;height:100%;transition:transform .2s}.prescription-thumb:hover img{transform:scale(1.05)}.prescription-card-body{flex-direction:column;gap:10px;min-width:0;display:flex}.prescription-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.prescription-patient{color:var(--text-dark);font-size:15px;font-weight:800}.prescription-meta,.prescription-actions{color:var(--text-light);font-size:12px;font-weight:600}.prescription-notes{color:var(--text-medium);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.prescription-badge{text-transform:uppercase;letter-spacing:.4px;border-radius:999px;flex-shrink:0;padding:4px 9px;font-size:10px;font-weight:800}.prescription-badge.patient{color:#0b1736;border:1px solid var(--border-color);background:#f7f8fb}.prescription-badge.doctor{color:var(--red);background:var(--red-light);border:1px solid var(--red-border)}.prescription-actions{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;display:flex}.prescription-actions button,.prescription-modal-header button,.prescription-lightbox-close{border:1px solid var(--border-color);color:var(--text-medium);border-radius:var(--radius-sm);cursor:pointer;background:#fff;padding:6px 10px;font-size:12px;font-weight:800}.prescription-actions button:hover{color:var(--red);border-color:var(--red-border);background:var(--red-light)}.prescription-lightbox{z-index:10000;background:#0f172ab8;justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.prescription-modal{background:var(--bg-card);width:min(560px,100%);max-height:calc(100vh - 56px);box-shadow:var(--shadow-lg);border-radius:8px;padding:24px;overflow-y:auto}.prescription-modal-header{color:var(--text-dark);justify-content:space-between;align-items:center;margin-bottom:20px;font-size:18px;font-weight:800;display:flex}.prescription-dropzone{border:2px dashed var(--red-border);background:var(--red-light);min-height:132px;color:var(--red);text-align:center;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;margin-bottom:20px;padding:18px;transition:background .2s,border-color .2s,transform .2s;display:flex}.prescription-dropzone.dragging{border-color:var(--red);background:#ffe4e6;transform:scale(1.01)}.prescription-dropzone input{display:none}.prescription-dropzone span{font-size:14px;font-weight:800}.prescription-textarea{min-height:96px}.prescription-image-viewer{flex-direction:column;align-items:flex-end;gap:12px;width:min(900px,100%);max-height:calc(100vh - 56px);display:flex}.prescription-image-viewer img{object-fit:contain;background:#fff;border-radius:8px;width:100%;max-height:calc(100vh - 160px)}.prescription-lightbox-caption{width:100%;color:var(--text-medium);background:#fff;border-radius:8px;flex-direction:column;gap:3px;padding:12px 14px;font-size:13px;display:flex}@media (width<=980px){.dashboard-grid,.profile-layout,.prescription-panels{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr;height:auto;min-height:680px}.chat-patient-list{border-right:0;border-bottom:1px solid var(--border-color);max-height:280px}}@media (width<=640px){.metrics-row{grid-template-columns:1fr}.records-filter-bar,.category-filter-buttons,.chat-input-form,.schedule-time-pickers{flex-direction:column;align-items:stretch}.search-input-wrapper,.prescription-select,.prescription-send-btn{width:100%;max-width:none}.records-table th,.records-table td{padding:12px}}@media (width<=900px){.prescription-panels{grid-template-columns:1fr}.prescription-card{grid-template-columns:104px 1fr}.prescription-thumb{width:104px;height:92px}}@media (width<=640px){.prescription-card{grid-template-columns:1fr}.prescription-thumb{width:100%;height:180px}.prescription-card-top,.prescription-actions{flex-direction:column;align-items:flex-start}}.gcal-root{grid-template-columns:255px 1fr;gap:0;height:calc(100vh - 170px);min-height:500px;display:grid}.gcal-sidebar{border-right:1px solid var(--border-color);background:var(--bg-card);border-radius:12px 0 0 12px;flex-direction:column;gap:20px;padding:16px;display:flex;overflow-y:auto}.gcal-mini{-webkit-user-select:none;user-select:none}.gcal-mini-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.gcal-mini-title{color:var(--text-dark);font-size:14px;font-weight:700}.gcal-mini-nav{gap:2px;display:flex}.gcal-mini-btn{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-radius:50%;padding:4px 6px;font-size:11px;line-height:1;transition:background .15s}.gcal-mini-btn:hover{background:var(--bg-subtle);color:var(--text-dark)}.gcal-mini-grid{text-align:center;grid-template-columns:repeat(7,1fr);display:grid}.gcal-mini-weekday{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;padding:4px 0;font-size:10px;font-weight:700}.gcal-mini-cell{cursor:pointer;aspect-ratio:1;color:var(--text-medium);border-radius:50%;justify-content:center;align-items:center;padding:4px 0;font-size:12px;transition:background .12s;display:flex;position:relative}.gcal-mini-cell.empty{cursor:default}.gcal-mini-cell:not(.empty):hover{background:var(--bg-subtle)}.gcal-mini-cell.today{background:var(--red);color:#fff;font-weight:700}.gcal-mini-cell.selected{background:var(--red-light);color:var(--red);box-shadow:inset 0 0 0 2px var(--red);font-weight:700}.gcal-mini-cell.today.selected{background:var(--red);color:#fff;box-shadow:inset 0 0 0 2px var(--red-hover)}.gcal-mini-cell.has-event:after{content:"";background:var(--tanaya-color);border-radius:50%;width:4px;height:4px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.gcal-mini-cell.today.has-event:after{background:#fff}.gcal-avail-panel{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:10px;padding:14px}.gcal-avail-panel-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.gcal-avail-date{color:var(--text-dark);font-size:13px;font-weight:700}.gcal-avail-toggle{border:1px solid var(--border-color);cursor:pointer;color:var(--text-light);background:#fff;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:700;transition:all .15s}.gcal-avail-toggle.active{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.gcal-avail-times{justify-content:space-between;align-items:flex-end;gap:4px;margin-top:8px;display:flex}.gcal-avail-field{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.gcal-avail-field label{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.gcal-avail-field input[type=time]{border:1px solid var(--border-color);border-radius:6px;outline:none;width:100%;min-width:0;padding:4px;font-family:inherit;font-size:12px;transition:border-color .15s}.gcal-avail-field input[type=time]:focus{border-color:var(--red);box-shadow:0 0 0 2px #f2474b1a}.gcal-avail-dash{color:var(--text-light);flex-shrink:0;padding-bottom:5px;font-size:14px}.gcal-main{background:var(--bg-card);border-radius:0 12px 12px 0;flex-direction:column;display:flex;overflow:hidden}.gcal-toolbar{border-bottom:1px solid var(--border-color);background:var(--bg-card);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.gcal-toolbar-left{align-items:center;gap:10px;display:flex}.gcal-btn-today{border:1px solid var(--border-color);color:var(--text-dark);cursor:pointer;background:#fff;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:600;transition:all .15s}.gcal-btn-today:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.gcal-btn-nav{cursor:pointer;color:var(--text-medium);background:0 0;border:none;border-radius:50%;padding:6px 8px;font-size:14px;line-height:1;transition:background .15s}.gcal-btn-nav:hover{background:var(--bg-subtle)}.gcal-title{color:var(--text-dark);margin:0;font-family:Fira Sans,sans-serif;font-size:18px;font-weight:700}.gcal-view-switcher{border:1px solid var(--border-color);border-radius:8px;display:flex;overflow:hidden}.gcal-view-btn{color:var(--text-medium);cursor:pointer;border:none;border-right:1px solid var(--border-color);background:#fff;padding:6px 16px;font-size:13px;font-weight:600;transition:all .15s}.gcal-view-btn:last-child{border-right:none}.gcal-view-btn:hover{background:var(--bg-subtle)}.gcal-view-btn.active{background:var(--red);color:#fff}.gcal-timegrid{flex:1;overflow:hidden auto}.gcal-col-headers{z-index:10;background:var(--bg-card);border-bottom:1px solid var(--border-color);display:grid;position:sticky;top:0}.gcal-col-header{text-align:center;border-left:1px solid var(--border-color);cursor:pointer;padding:8px 4px;transition:background .12s}.gcal-col-header:hover{background:var(--bg-subtle)}.gcal-col-header.today{background:var(--red-light)}.gcal-col-day{text-transform:uppercase;color:var(--text-light);letter-spacing:.5px;font-size:11px;font-weight:600;display:block}.gcal-col-header.today .gcal-col-day{color:var(--red)}.gcal-col-date{color:var(--text-dark);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-top:2px;font-size:22px;font-weight:700;display:inline-flex}.gcal-col-date.today-circle{background:var(--red);color:#fff}.gcal-avail-dot{color:var(--success);margin-top:2px;font-size:8px;display:block}.gcal-grid-body{min-height:780px;display:grid;position:relative}.gcal-hour-row{border-top:1px solid #f0f0f0;min-height:60px;position:relative}.gcal-hour-label{color:var(--text-light);background:var(--bg-card);white-space:nowrap;padding:0 4px;font-size:10px;font-weight:600;position:absolute;top:-8px;left:4px}.gcal-day-column{border-left:1px solid var(--border-color);min-height:100%;position:relative}.gcal-day-column.today{background:#f2474b05}.gcal-now-line{background:var(--red);z-index:5;pointer-events:none;height:2px;position:absolute;left:0;right:0}.gcal-now-dot{background:var(--red);border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-5px}.gcal-avail-band{border-left:2px solid var(--success);pointer-events:none;z-index:1;background:#0596690f;position:absolute;left:0;right:0}.gcal-event{cursor:pointer;z-index:3;border-left:3px solid;border-radius:6px;flex-direction:column;gap:1px;min-height:24px;padding:4px 8px;font-size:11px;transition:box-shadow .15s,transform .1s;display:flex;position:absolute;left:4px;right:4px;overflow:hidden}.gcal-event:hover{box-shadow:var(--shadow-md);z-index:4;transform:scale(1.01)}.gcal-event-time{opacity:.8;font-size:10px;font-weight:700}.gcal-event-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.gcal-event-tanaya{background:var(--tanaya-bg);border-color:var(--tanaya-color);color:var(--tanaya-color)}.gcal-event-andro{background:var(--andro-bg);border-color:var(--andro-color);color:var(--andro-color)}.gcal-event-ritefood{background:var(--ritefood-bg);border-color:var(--ritefood-color);color:var(--ritefood-color)}.gcal-event:not(.gcal-event-tanaya):not(.gcal-event-andro):not(.gcal-event-ritefood){color:#1e40af;background:#eff6ff;border-color:#3b82f6}.gcal-month-grid{flex:1;grid-template-columns:repeat(7,1fr);display:grid;overflow-y:auto}.gcal-month-weekday{text-align:center;text-transform:uppercase;color:var(--text-light);border-bottom:1px solid var(--border-color);letter-spacing:.5px;padding:10px 0;font-size:11px;font-weight:700}.gcal-month-cell{cursor:pointer;border:1px solid #f0f0f0;flex-direction:column;min-height:100px;padding:4px 6px;transition:background .12s;display:flex}.gcal-month-cell:hover{background:var(--bg-subtle)}.gcal-month-cell.outside{color:#ccc;cursor:default;background:#fafafa}.gcal-month-cell.today{background:var(--red-light)}.gcal-month-cell.selected{box-shadow:inset 0 0 0 2px var(--red)}.gcal-month-day{color:var(--text-medium);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;margin-bottom:4px;font-size:13px;font-weight:600;display:inline-flex}.gcal-month-day.today-circle{background:var(--red);color:#fff}.gcal-month-cell.outside .gcal-month-day{color:#ccc}.gcal-month-events{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden}.gcal-month-event-bar{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;overflow:hidden}.gcal-month-event-time{margin-right:4px;font-weight:700}.gcal-month-more{color:var(--text-light);cursor:pointer;padding:2px 6px;font-size:10px;font-weight:700}.gcal-month-more:hover{color:var(--red)}.gcal-month-event-bar.gcal-event-tanaya{background:var(--tanaya-bg);color:var(--tanaya-color)}.gcal-month-event-bar.gcal-event-andro{background:var(--andro-bg);color:var(--andro-color)}.gcal-month-event-bar.gcal-event-ritefood{background:var(--ritefood-bg);color:var(--ritefood-color)}@media (width<=980px){.gcal-root{grid-template-columns:1fr;height:auto;min-height:auto}.gcal-sidebar{border-right:none;border-bottom:1px solid var(--border-color);border-radius:12px 12px 0 0;flex-direction:row;gap:16px;overflow-x:auto}.gcal-mini{min-width:200px}.gcal-main{border-radius:0 0 12px 12px;height:70vh}}@media (width<=640px){.gcal-toolbar{flex-direction:column;align-items:flex-start;gap:10px;padding:10px 12px}.gcal-title{font-size:15px}.gcal-sidebar{flex-direction:column;padding:12px}.gcal-col-date{width:30px;height:30px;font-size:16px}.gcal-month-cell{min-height:64px;padding:2px}.gcal-month-event-bar{padding:1px 3px;font-size:9px}}#root{width:100%;min-height:100vh;margin:0;padding:0}
