Medical_Chat_Bot / static /style.css
itssarjunhere's picture
Update static/style.css
86bf791 verified
Raw
History Blame Contribute Delete
12 kB
/* ============================================================
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 !important;
}
}