Spaces:
Sleeping
Sleeping
| /* ============================================================ | |
| Medibot — Futuristic Healthcare Dashboard | |
| Dark navy + medical teal/cyan, soft shadows, no glass/gradients | |
| ============================================================ */ | |
| :root{ | |
| --bg:#0a0f14; | |
| --panel:#0d141b; | |
| --surface:#101922; | |
| --surface-2:#141f29; | |
| --border:#1c2933; | |
| --teal:#17b8b0; | |
| --teal-soft:#0e3a3a; | |
| --cyan:#3fd6cf; | |
| --text:#e7eef0; | |
| --text-dim:#8a9aa3; | |
| --text-faint:#5b6b73; | |
| --danger:#e0734f; | |
| --radius-lg:22px; | |
| --radius-md:16px; | |
| --radius-sm:12px; | |
| --shadow:0 18px 40px -20px rgba(0,0,0,0.65); | |
| } | |
| *{ box-sizing:border-box; } | |
| html,body{ | |
| height:100%; | |
| margin:0; | |
| font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif; | |
| background:var(--bg); | |
| color:var(--text); | |
| -webkit-font-smoothing:antialiased; | |
| } | |
| /* ---------------- Dashboard shell: 2-column layout ---------------- */ | |
| .dashboard{ | |
| display:grid; | |
| grid-template-columns:320px 1fr; | |
| height:100vh; | |
| height:100dvh; | |
| max-width:1280px; | |
| margin:0 auto; | |
| } | |
| /* ---------------- LEFT PANEL ---------------- */ | |
| .panel{ | |
| background:var(--panel); | |
| border-right:1px solid var(--border); | |
| padding:28px 26px; | |
| display:flex; | |
| flex-direction:column; | |
| overflow-y:auto; | |
| } | |
| .panel_top{ margin-bottom:36px; } | |
| .brand{ | |
| display:flex; | |
| align-items:center; | |
| gap:10px; | |
| } | |
| .brand_mark{ | |
| width:36px; | |
| height:36px; | |
| border-radius:10px; | |
| background:var(--teal-soft); | |
| color:var(--teal); | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| font-size:1rem; | |
| border:1px solid rgba(23,184,176,0.3); | |
| } | |
| .brand_name{ | |
| font-family:'Plus Jakarta Sans', sans-serif; | |
| font-weight:700; | |
| font-size:1.05rem; | |
| letter-spacing:-0.01em; | |
| color:var(--text); | |
| } | |
| .brand_name span{ color:var(--teal); } | |
| .panel_avatar{ | |
| text-align:center; | |
| padding:8px 0 28px; | |
| border-bottom:1px solid var(--border); | |
| margin-bottom:24px; | |
| } | |
| .avatar_ring{ | |
| position:relative; | |
| width:84px; | |
| height:84px; | |
| margin:0 auto 16px; | |
| border-radius:50%; | |
| background:var(--surface); | |
| border:1px solid var(--border); | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| overflow:hidden; | |
| box-shadow:0 0 0 6px rgba(23,184,176,0.06); | |
| } | |
| .avatar_img{ | |
| font-size:1.5rem; | |
| line-height:1; | |
| color:var(--teal); | |
| } | |
| .avatar_status{ | |
| position:absolute; | |
| bottom:2px; | |
| right:2px; | |
| width:14px; | |
| height:14px; | |
| border-radius:50%; | |
| background:var(--teal); | |
| border:3px solid var(--panel); | |
| box-shadow:0 0 0 0 rgba(23,184,176,0.5); | |
| animation:pulse 2.2s infinite; | |
| } | |
| @keyframes pulse{ | |
| 0%{ box-shadow:0 0 0 0 rgba(23,184,176,0.45); } | |
| 70%{ box-shadow:0 0 0 7px rgba(23,184,176,0); } | |
| 100%{ box-shadow:0 0 0 0 rgba(23,184,176,0); } | |
| } | |
| .panel_avatar h2{ | |
| font-family:'Plus Jakarta Sans', sans-serif; | |
| font-size:1.05rem; | |
| font-weight:700; | |
| margin:0 0 2px; | |
| color:var(--text); | |
| } | |
| .panel_avatar .role{ | |
| font-size:0.8rem; | |
| color:var(--text-dim); | |
| margin:0 0 14px; | |
| } | |
| .status_chip{ | |
| display:inline-flex; | |
| align-items:center; | |
| gap:7px; | |
| font-size:0.74rem; | |
| font-weight:500; | |
| color:var(--teal); | |
| background:var(--teal-soft); | |
| border:1px solid rgba(23,184,176,0.25); | |
| padding:6px 14px; | |
| border-radius:999px; | |
| } | |
| .status_chip .dot{ | |
| width:6px; | |
| height:6px; | |
| border-radius:50%; | |
| background:var(--teal); | |
| } | |
| .panel_desc{ | |
| font-size:0.84rem; | |
| line-height:1.65; | |
| color:var(--text-dim); | |
| margin:0 0 26px; | |
| } | |
| .panel_stats{ | |
| display:flex; | |
| flex-direction:column; | |
| gap:10px; | |
| margin-bottom:auto; | |
| } | |
| .stat{ | |
| display:flex; | |
| align-items:center; | |
| gap:12px; | |
| background:var(--surface); | |
| border:1px solid var(--border); | |
| border-radius:var(--radius-sm); | |
| padding:12px 14px; | |
| transition:border-color 0.2s ease, transform 0.2s ease; | |
| } | |
| .stat:hover{ | |
| border-color:rgba(23,184,176,0.35); | |
| transform:translateY(-1px); | |
| } | |
| .stat i{ | |
| color:var(--teal); | |
| font-size:0.95rem; | |
| width:18px; | |
| text-align:center; | |
| } | |
| .stat span{ | |
| display:block; | |
| font-size:0.85rem; | |
| font-weight:600; | |
| color:var(--text); | |
| } | |
| .stat small{ | |
| display:block; | |
| font-size:0.72rem; | |
| color:var(--text-faint); | |
| margin-top:1px; | |
| } | |
| .panel_footer{ | |
| display:flex; | |
| gap:10px; | |
| align-items:flex-start; | |
| font-size:0.72rem; | |
| line-height:1.5; | |
| color:var(--text-faint); | |
| padding-top:22px; | |
| margin-top:22px; | |
| border-top:1px solid var(--border); | |
| } | |
| .panel_footer i{ | |
| color:var(--danger); | |
| font-size:0.8rem; | |
| margin-top:1px; | |
| } | |
| /* ---------------- RIGHT: chat ---------------- */ | |
| .chat{ | |
| display:flex; | |
| flex-direction:column; | |
| background:var(--bg); | |
| height:100vh; | |
| min-width:0; | |
| } | |
| .chat_head{ | |
| flex:0 0 auto; | |
| display:flex; | |
| align-items:center; | |
| justify-content:space-between; | |
| padding:22px 32px; | |
| border-bottom:1px solid var(--border); | |
| } | |
| .chat_head_left span{ | |
| font-family:'Plus Jakarta Sans', sans-serif; | |
| font-weight:700; | |
| font-size:1rem; | |
| color:var(--text); | |
| } | |
| .chat_head_left p{ | |
| margin:3px 0 0; | |
| font-size:0.78rem; | |
| color:var(--text-faint); | |
| } | |
| .chat_head_right{ | |
| color:var(--text-faint); | |
| width:32px; | |
| height:32px; | |
| border-radius:8px; | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| cursor:pointer; | |
| transition:background 0.2s ease, color 0.2s ease; | |
| } | |
| .chat_head_right:hover{ | |
| background:var(--surface); | |
| color:var(--teal); | |
| } | |
| .msg_card_body{ | |
| flex:1 1 auto; | |
| overflow-y:auto; | |
| padding:28px 32px; | |
| display:flex; | |
| flex-direction:column; | |
| } | |
| .msg_card_body::-webkit-scrollbar{ width:6px; } | |
| .msg_card_body::-webkit-scrollbar-track{ background:transparent; } | |
| .msg_card_body::-webkit-scrollbar-thumb{ | |
| background:#1e2c35; | |
| border-radius:10px; | |
| } | |
| .welcome_block{ | |
| text-align:center; | |
| margin:auto 0; | |
| padding:20px 14px 32px; | |
| } | |
| .welcome_icon{ | |
| width:56px; | |
| height:56px; | |
| margin:0 auto 16px; | |
| border-radius:var(--radius-sm); | |
| background:var(--surface); | |
| border:1px solid var(--border); | |
| color:var(--teal); | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| font-size:1.3rem; | |
| } | |
| .welcome_block h3{ | |
| font-family:'Plus Jakarta Sans', sans-serif; | |
| font-size:1.1rem; | |
| font-weight:700; | |
| color:var(--text); | |
| margin:0 0 8px; | |
| } | |
| .welcome_block p{ | |
| font-size:0.85rem; | |
| color:var(--text-dim); | |
| max-width:320px; | |
| margin:0 auto; | |
| line-height:1.6; | |
| } | |
| /* utility classes used in JS-injected markup */ | |
| .d-flex{ display:flex; } | |
| .justify-content-end{ justify-content:flex-end; } | |
| .justify-content-start{ justify-content:flex-start; } | |
| .mb-4{ margin-bottom:20px; } | |
| .img_cont_msg{ | |
| width:32px; | |
| height:32px; | |
| flex:0 0 auto; | |
| align-self:flex-end; | |
| } | |
| .user_img_msg{ | |
| width:32px; | |
| height:32px; | |
| border-radius:50%; | |
| object-fit:cover; | |
| background:var(--surface); | |
| border:1px solid var(--border); | |
| padding:3px; | |
| } | |
| .user_avatar, | |
| .bot_avatar{ | |
| width:32px; | |
| height:32px; | |
| border-radius:50%; | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| font-size:0.8rem; | |
| background:var(--surface); | |
| border:1px solid var(--border); | |
| } | |
| .user_avatar{ color:var(--text-dim); } | |
| .bot_avatar{ color:var(--teal); } | |
| .msg_cotainer, | |
| .msg_cotainer_send{ | |
| max-width:68%; | |
| padding:13px 17px; | |
| font-size:0.9rem; | |
| line-height:1.55; | |
| position:relative; | |
| word-wrap:break-word; | |
| animation:rise 0.22s ease; | |
| } | |
| @keyframes rise{ | |
| from{ opacity:0; transform:translateY(6px); } | |
| to{ opacity:1; transform:translateY(0); } | |
| } | |
| .msg_cotainer{ | |
| margin-left:10px; | |
| background:var(--surface); | |
| color:var(--text); | |
| border:1px solid var(--border); | |
| border-radius:4px var(--radius-md) var(--radius-md) var(--radius-md); | |
| } | |
| .msg_cotainer_send{ | |
| margin-right:10px; | |
| background:var(--teal-soft); | |
| color:#eafffd; | |
| border:1px solid rgba(23,184,176,0.3); | |
| border-radius:var(--radius-md) 4px var(--radius-md) var(--radius-md); | |
| } | |
| .msg_time, | |
| .msg_time_send{ | |
| display:block; | |
| font-size:0.65rem; | |
| margin-top:7px; | |
| opacity:0.6; | |
| } | |
| .msg_time_send{ text-align:right; color:#9fe8e2; } | |
| .msg_time{ color:var(--text-faint); } | |
| /* typing indicator */ | |
| .typing_dots{ display:flex; align-items:center; gap:4px; padding:15px 17px; } | |
| .typing_dots span{ | |
| width:6px; height:6px; border-radius:50%; | |
| background:var(--teal); | |
| opacity:0.5; | |
| animation:typingBlink 1.1s infinite ease-in-out; | |
| } | |
| .typing_dots span:nth-child(2){ animation-delay:0.15s; } | |
| .typing_dots span:nth-child(3){ animation-delay:0.3s; } | |
| @keyframes typingBlink{ | |
| 0%, 80%, 100%{ transform:scale(0.8); opacity:0.35; } | |
| 40%{ transform:scale(1.15); opacity:1; } | |
| } | |
| /* ---------------- Input footer ---------------- */ | |
| .card-footer{ | |
| flex:0 0 auto; | |
| padding:18px 32px 24px; | |
| border-top:1px solid var(--border); | |
| background:var(--bg); | |
| } | |
| .input-group{ | |
| display:flex; | |
| align-items:center; | |
| gap:10px; | |
| background:var(--surface); | |
| border:1px solid var(--border); | |
| border-radius:var(--radius-md); | |
| padding:6px 6px 6px 18px; | |
| transition:border-color 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .input-group:focus-within{ | |
| border-color:rgba(23,184,176,0.5); | |
| box-shadow:0 0 0 3px rgba(23,184,176,0.12); | |
| } | |
| .type_msg{ | |
| flex:1 1 auto; | |
| min-width:0; | |
| border:none; | |
| outline:none; | |
| background:transparent; | |
| font-size:0.92rem; | |
| font-family:'Inter', sans-serif; | |
| color:var(--text); | |
| padding:12px 0; | |
| text-overflow:ellipsis; | |
| } | |
| .type_msg::placeholder{ color:var(--text-faint); } | |
| .send_btn{ | |
| flex:0 0 auto; | |
| width:42px; | |
| height:42px; | |
| border:none; | |
| border-radius:var(--radius-sm); | |
| background:var(--teal); | |
| color:#06201f; | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| font-size:0.9rem; | |
| cursor:pointer; | |
| transition:transform 0.16s ease, background 0.16s ease; | |
| } | |
| .send_btn i{ transform:translateX(-1px); } | |
| .send_btn:hover{ | |
| background:var(--cyan); | |
| transform:translateY(-1px); | |
| } | |
| .send_btn:active{ transform:translateY(0) scale(0.95); } | |
| /* ---------------- Responsive ---------------- */ | |
| @media (max-width: 900px){ | |
| html, body{ height:100%; overflow:hidden; } | |
| .dashboard{ | |
| display:flex; | |
| flex-direction:column; | |
| height:100vh; | |
| height:100dvh; | |
| } | |
| .panel{ | |
| flex:0 0 auto; | |
| flex-direction:row; | |
| align-items:center; | |
| overflow-x:auto; | |
| padding:14px 16px; | |
| border-right:none; | |
| border-bottom:1px solid var(--border); | |
| gap:14px; | |
| -webkit-overflow-scrolling:touch; | |
| } | |
| .panel_top, .panel_desc, .panel_stats, .panel_footer{ display:none; } | |
| .panel_avatar{ | |
| border-bottom:none; | |
| margin:0; | |
| padding:0; | |
| display:flex; | |
| align-items:center; | |
| gap:12px; | |
| text-align:left; | |
| white-space:nowrap; | |
| } | |
| .avatar_ring{ width:42px; height:42px; margin:0; flex:0 0 auto; } | |
| .avatar_img{ font-size:1.1rem; } | |
| .avatar_status{ width:10px; height:10px; } | |
| .panel_avatar h2{ font-size:0.9rem; margin:0; } | |
| .panel_avatar .role{ display:none; } | |
| .status_chip{ font-size:0.7rem; padding:5px 11px; white-space:nowrap; } | |
| .chat{ flex:1 1 auto; min-height:0; height:auto; } | |
| .chat_head{ padding:14px 16px; flex-wrap:wrap; gap:6px; } | |
| .chat_head_left p{ font-size:0.72rem; } | |
| .msg_card_body{ padding:16px; } | |
| .card-footer{ padding:12px 12px max(12px, env(safe-area-inset-bottom)); } | |
| .msg_cotainer, .msg_cotainer_send{ max-width:84%; font-size:0.88rem; } | |
| /* prevent iOS auto-zoom on input focus */ | |
| .type_msg{ font-size:16px; } | |
| } | |
| @media (max-width: 480px){ | |
| .panel{ padding:12px 14px; gap:10px; } | |
| .brand_name{ font-size:0.95rem; } | |
| .panel_avatar h2{ font-size:0.85rem; } | |
| .status_chip{ display:none; } | |
| .chat_head{ padding:12px 14px; } | |
| .chat_head_left span{ font-size:0.92rem; } | |
| .msg_card_body{ padding:12px; } | |
| .welcome_icon{ width:46px; height:46px; font-size:1.1rem; } | |
| .welcome_block h3{ font-size:1rem; } | |
| .welcome_block p{ font-size:0.8rem; } | |
| .msg_cotainer, .msg_cotainer_send{ max-width:88%; padding:11px 14px; font-size:0.86rem; } | |
| .img_cont_msg, .user_img_msg, .user_avatar, .bot_avatar{ width:28px; height:28px; } | |
| .card-footer{ padding:10px 10px max(10px, env(safe-area-inset-bottom)); } | |
| .input-group{ padding:4px 4px 4px 14px; } | |
| .send_btn{ width:38px; height:38px; } | |
| } | |
| @media (prefers-reduced-motion: reduce){ | |
| .avatar_status, .typing_dots span, .msg_cotainer, .msg_cotainer_send{ | |
| animation:none ; | |
| } | |
| } |