From 35f90d2b4998acdb092d7dfbde275ae4b7be9a4e Mon Sep 17 00:00:00 2001 From: prathiyuman Date: Mon, 13 Jul 2026 16:24:37 +0530 Subject: [PATCH] Further reduce vital card sizes to ultra-compact bedside design, hide setup guide and info bar, and show only patient name, ID, location/bed --- .../fiveparaminte-main/static/dashboard.html | 287 +++++++----------- fiveparaminte-main/static/dashboard.html | 287 +++++++----------- static/dashboard.html | 287 +++++++----------- 3 files changed, 321 insertions(+), 540 deletions(-) diff --git a/fiveparaminte-main/fiveparaminte-main/static/dashboard.html b/fiveparaminte-main/fiveparaminte-main/static/dashboard.html index 4a4dfbf..2a03b7c 100644 --- a/fiveparaminte-main/fiveparaminte-main/static/dashboard.html +++ b/fiveparaminte-main/fiveparaminte-main/static/dashboard.html @@ -106,44 +106,43 @@ display: flex; align-items: center; justify-content: space-between; - padding: 16px 24px; + padding: 8px 16px; background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 20px; + border-radius: 12px; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.01), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-bottom: 24px; + 0 4px 6px -3px rgba(0, 0, 0, 0.02); + margin-bottom: 12px; } .header-left { display: flex; align-items: center; - gap: 16px; + gap: 10px; } .header-icon { - width: 48px; - height: 48px; - border-radius: 14px; + width: 32px; + height: 32px; + border-radius: 8px; background: linear-gradient(135deg, var(--spo2-color), var(--hr-color)); display: flex; align-items: center; justify-content: center; - font-size: 24px; - box-shadow: 0 4px 14px rgba(8, 145, 178, 0.2); + font-size: 16px; + box-shadow: 0 2px 6px rgba(8, 145, 178, 0.15); } .header-title { - font-size: 20px; + font-size: 15px; font-weight: 700; - letter-spacing: -0.5px; + letter-spacing: -0.3px; color: var(--text-primary); } .header-subtitle { - font-size: 13px; + font-size: 11px; color: var(--text-secondary); margin-top: 1px; font-weight: 500; @@ -152,17 +151,17 @@ .header-right { display: flex; align-items: center; - gap: 16px; + gap: 12px; } /* Audio Alert Toggle */ .audio-toggle { display: flex; align-items: center; - gap: 8px; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + gap: 6px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; background: rgba(71, 85, 105, 0.06); border: 1px solid rgba(71, 85, 105, 0.1); @@ -186,10 +185,10 @@ .connection-badge { display: flex; align-items: center; - gap: 8px; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + gap: 6px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; background: rgba(22, 163, 74, 0.08); border: 1px solid rgba(22, 163, 74, 0.15); @@ -210,8 +209,8 @@ } .status-dot { - width: 8px; - height: 8px; + width: 7px; + height: 7px; border-radius: 50%; background: var(--status-ok); animation: statusPulse 2s ease-in-out infinite; @@ -224,12 +223,12 @@ @keyframes statusPulse { 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); } - 50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(34, 197, 94, 0); } + 50% { opacity: 0.7; box-shadow: 0 0 0 5px rgba(34, 197, 94, 0); } } .time-display { font-family: 'JetBrains Mono', monospace; - font-size: 14px; + font-size: 12px; font-weight: 600; color: var(--text-secondary); } @@ -238,21 +237,21 @@ .device-selector-container { display: flex; align-items: center; - gap: 8px; - margin-right: 8px; + gap: 6px; + margin-right: 4px; } .device-select-dropdown { background: #ffffff; border: 1px solid var(--border-color); color: var(--text-primary); - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; outline: none; cursor: pointer; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.01); transition: all 0.3s; } @@ -268,20 +267,7 @@ /* === Setup Guide Panel === */ .setup-guide { - background: linear-gradient(135deg, rgba(8, 145, 178, 0.04), rgba(124, 58, 237, 0.02)); - border: 1px solid rgba(8, 145, 178, 0.12); - border-radius: 20px; - margin-bottom: 24px; - overflow: hidden; - box-shadow: 0 4px 15px -3px rgba(0, 0, 0, 0.02); - transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); - } - - .setup-guide.hidden { - max-height: 0; - margin-bottom: 0; - border-color: transparent; - opacity: 0; + display: none !important; } .setup-guide-header { @@ -400,21 +386,20 @@ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: auto auto; - gap: 16px; + gap: 10px; flex: 1; } .vital-card { background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 16px; - padding: 16px; + border-radius: 12px; + padding: 10px; position: relative; overflow: hidden; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.03), 0 2px 4px -1px rgba(0, 0, 0, 0.02), - 0 10px 20px -8px rgba(0, 0, 0, 0.04); + 0 4px 6px -2px rgba(0, 0, 0, 0.03); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); display: flex; flex-direction: column; @@ -422,9 +407,9 @@ .vital-card:hover { background: var(--bg-card-hover); - transform: translateY(-2px); + transform: translateY(-1px); box-shadow: - 0 12px 24px -10px rgba(0, 0, 0, 0.06), + 0 6px 12px -5px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.01); } @@ -441,8 +426,8 @@ top: 0; left: 0; right: 0; - height: 3px; - border-radius: 16px 16px 0 0; + height: 2.5px; + border-radius: 12px 12px 0 0; } .vital-card.hr::before { background: linear-gradient(90deg, var(--hr-color), transparent); } @@ -458,8 +443,8 @@ position: absolute; top: 50%; left: 50%; - width: 160px; - height: 160px; + width: 120px; + height: 120px; border-radius: 50%; transform: translate(-50%, -50%); opacity: 0; @@ -476,18 +461,18 @@ .vital-card.map-card::after { background: radial-gradient(circle, var(--map-glow), transparent 70%); } .vital-card.has-value::after { - opacity: 0.3; + opacity: 0.25; } .vital-card.has-value:hover::after { - opacity: 0.5; + opacity: 0.4; } .card-header { display: flex; align-items: center; justify-content: space-between; - margin-bottom: 8px; + margin-bottom: 6px; position: relative; z-index: 1; } @@ -495,32 +480,32 @@ .card-label { display: flex; align-items: center; - gap: 8px; + gap: 6px; } .card-icon { - width: 32px; - height: 32px; - border-radius: 8px; + width: 26px; + height: 26px; + border-radius: 6px; display: flex; align-items: center; justify-content: center; - font-size: 15px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.01); + font-size: 13px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.01); } - .vital-card.hr .card-icon { background: rgba(220, 38, 38, 0.06); } - .vital-card.spo2 .card-icon { background: rgba(8, 145, 178, 0.06); } - .vital-card.bp .card-icon { background: rgba(124, 58, 237, 0.06); } - .vital-card.rr .card-icon { background: rgba(22, 163, 74, 0.06); } - .vital-card.temp .card-icon { background: rgba(234, 88, 12, 0.06); } - .vital-card.map-card .card-icon { background: rgba(219, 39, 119, 0.06); } + .vital-card.hr .card-icon { background: rgba(220, 38, 38, 0.05); } + .vital-card.spo2 .card-icon { background: rgba(8, 145, 178, 0.05); } + .vital-card.bp .card-icon { background: rgba(124, 58, 237, 0.05); } + .vital-card.rr .card-icon { background: rgba(22, 163, 74, 0.05); } + .vital-card.temp .card-icon { background: rgba(234, 88, 12, 0.05); } + .vital-card.map-card .card-icon { background: rgba(219, 39, 119, 0.05); } .card-name { - font-size: 11px; + font-size: 10px; font-weight: 700; text-transform: uppercase; - letter-spacing: 0.6px; + letter-spacing: 0.4px; } .vital-card.hr .card-name { color: var(--hr-color); } @@ -531,38 +516,38 @@ .vital-card.map-card .card-name { color: var(--map-color); } .status-badge { - padding: 3px 8px; - border-radius: 6px; - font-size: 10px; + padding: 2px 6px; + border-radius: 5px; + font-size: 9px; font-weight: 700; text-transform: uppercase; - letter-spacing: 0.3px; + letter-spacing: 0.2px; } .status-badge.normal { - background: rgba(22, 163, 74, 0.06); + background: rgba(22, 163, 74, 0.05); color: var(--status-ok); - border: 1px solid rgba(22, 163, 74, 0.1); + border: 1px solid rgba(22, 163, 74, 0.08); } .status-badge.warning { - background: rgba(202, 138, 4, 0.06); + background: rgba(202, 138, 4, 0.05); color: var(--status-warn); - border: 1px solid rgba(202, 138, 4, 0.1); + border: 1px solid rgba(202, 138, 4, 0.08); animation: warningFlash 2s ease-in-out infinite; } .status-badge.critical { - background: rgba(220, 38, 38, 0.06); + background: rgba(220, 38, 38, 0.05); color: var(--status-critical); - border: 1px solid rgba(220, 38, 38, 0.1); + border: 1px solid rgba(220, 38, 38, 0.08); animation: criticalFlash 1s ease-in-out infinite; } .status-badge.offline { - background: rgba(100, 116, 139, 0.04); + background: rgba(100, 116, 139, 0.03); color: var(--status-offline); - border: 1px solid rgba(100, 116, 139, 0.08); + border: 1px solid rgba(100, 116, 139, 0.06); } @keyframes warningFlash { @@ -583,15 +568,15 @@ justify-content: center; position: relative; z-index: 1; - min-height: 80px; + min-height: 55px; } .vital-value { font-family: 'JetBrains Mono', monospace; - font-size: 48px; + font-size: 34px; font-weight: 700; line-height: 1; - letter-spacing: -1px; + letter-spacing: -0.5px; transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1); } @@ -603,22 +588,22 @@ .vital-card.map-card .vital-value { color: var(--map-color); } .vital-value.no-data { - font-size: 36px; + font-size: 26px; color: var(--text-dim) !important; } .vital-value .unit { - font-size: 16px; + font-size: 13px; font-weight: 500; letter-spacing: 0; - margin-left: 3px; + margin-left: 2px; color: var(--text-secondary); } .vital-value .slash { - font-size: 36px; + font-size: 26px; opacity: 0.3; - margin: 0 1px; + margin: 0; color: var(--text-secondary); } @@ -627,20 +612,20 @@ } @keyframes valueFlash { - 0% { transform: scale(1.04); filter: brightness(1.15); } + 0% { transform: scale(1.03); filter: brightness(1.1); } 100% { transform: scale(1); filter: brightness(1); } } /* === Waveform Canvas === */ .waveform-container { - height: 40px; - margin-top: 8px; + height: 30px; + margin-top: 6px; position: relative; z-index: 1; overflow: hidden; - border-radius: 8px; + border-radius: 6px; background: rgba(0, 0, 0, 0.01); - border: 1px solid rgba(0, 0, 0, 0.01); + border: 1px solid rgba(0, 0, 0, 0.005); } .waveform-container canvas { @@ -654,21 +639,21 @@ display: flex; align-items: center; justify-content: space-between; - margin-top: 8px; - padding-top: 8px; + margin-top: 6px; + padding-top: 6px; border-top: 1px solid var(--border-color); position: relative; z-index: 1; } .normal-range { - font-size: 10px; + font-size: 9.5px; color: var(--text-secondary); font-weight: 600; } .last-update { - font-size: 10px; + font-size: 9.5px; color: var(--text-dim); font-family: 'JetBrains Mono', monospace; font-weight: 500; @@ -676,53 +661,9 @@ /* === Info Bar === */ .info-bar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 24px; - background: var(--bg-card); - border: 1px solid var(--border-color); - border-radius: 20px; - box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), - 0 2px 4px -1px rgba(0, 0, 0, 0.01), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-top: 24px; - flex-wrap: wrap; - gap: 12px; + display: none !important; } - .info-item { - display: flex; - align-items: center; - gap: 8px; - font-size: 13px; - color: var(--text-secondary); - font-weight: 500; - } - - .info-item strong { - color: var(--text-primary); - font-weight: 700; - } - - .info-dot { - width: 6px; - height: 6px; - border-radius: 50%; - background: var(--border-color); - } - - .model-badge { - padding: 4px 12px; - border-radius: 8px; - font-size: 11px; - font-weight: 800; - letter-spacing: 0.5px; - background: linear-gradient(135deg, rgba(8, 145, 178, 0.08), rgba(124, 58, 237, 0.08)); - color: var(--spo2-color); - border: 1px solid rgba(8, 145, 178, 0.15); - } /* === Responsive === */ @media (max-width: 1024px) { @@ -777,30 +718,30 @@ .patient-banner { display: flex; align-items: center; - justify-content: space-between; - padding: 16px 24px; + justify-content: flex-start; + gap: 20px; + padding: 8px 16px; background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 20px; + border-radius: 12px; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-bottom: 24px; + 0 2px 4px -1px rgba(0, 0, 0, 0.01), + 0 4px 6px -3px rgba(0, 0, 0, 0.02); + margin-bottom: 12px; flex-wrap: wrap; - gap: 16px; } .patient-banner-group { display: flex; align-items: center; - gap: 12px; + gap: 8px; } .patient-avatar { - width: 36px; - height: 36px; + width: 28px; + height: 28px; border-radius: 50%; - background: rgba(8, 145, 178, 0.08); + background: rgba(8, 145, 178, 0.06); color: var(--spo2-color); display: flex; align-items: center; @@ -808,26 +749,26 @@ } .patient-avatar svg { - width: 18px; - height: 18px; + width: 14px; + height: 14px; } .patient-label { - font-size: 11px; + font-size: 9px; color: var(--text-secondary); font-weight: 700; text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 0.3px; } .patient-value-text { - font-size: 14px; + font-size: 12px; color: var(--text-primary); font-weight: 700; } .patient-banner-divider { - height: 24px; + height: 16px; width: 1px; background: var(--border-color); } @@ -950,20 +891,6 @@
ICU - Bed 12
-
-
-
-
Monitor Status
-
CMS8500
-
-
-
-
-
-
Last Transmission
-
Never
-
-
diff --git a/fiveparaminte-main/static/dashboard.html b/fiveparaminte-main/static/dashboard.html index 4a4dfbf..2a03b7c 100644 --- a/fiveparaminte-main/static/dashboard.html +++ b/fiveparaminte-main/static/dashboard.html @@ -106,44 +106,43 @@ display: flex; align-items: center; justify-content: space-between; - padding: 16px 24px; + padding: 8px 16px; background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 20px; + border-radius: 12px; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.01), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-bottom: 24px; + 0 4px 6px -3px rgba(0, 0, 0, 0.02); + margin-bottom: 12px; } .header-left { display: flex; align-items: center; - gap: 16px; + gap: 10px; } .header-icon { - width: 48px; - height: 48px; - border-radius: 14px; + width: 32px; + height: 32px; + border-radius: 8px; background: linear-gradient(135deg, var(--spo2-color), var(--hr-color)); display: flex; align-items: center; justify-content: center; - font-size: 24px; - box-shadow: 0 4px 14px rgba(8, 145, 178, 0.2); + font-size: 16px; + box-shadow: 0 2px 6px rgba(8, 145, 178, 0.15); } .header-title { - font-size: 20px; + font-size: 15px; font-weight: 700; - letter-spacing: -0.5px; + letter-spacing: -0.3px; color: var(--text-primary); } .header-subtitle { - font-size: 13px; + font-size: 11px; color: var(--text-secondary); margin-top: 1px; font-weight: 500; @@ -152,17 +151,17 @@ .header-right { display: flex; align-items: center; - gap: 16px; + gap: 12px; } /* Audio Alert Toggle */ .audio-toggle { display: flex; align-items: center; - gap: 8px; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + gap: 6px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; background: rgba(71, 85, 105, 0.06); border: 1px solid rgba(71, 85, 105, 0.1); @@ -186,10 +185,10 @@ .connection-badge { display: flex; align-items: center; - gap: 8px; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + gap: 6px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; background: rgba(22, 163, 74, 0.08); border: 1px solid rgba(22, 163, 74, 0.15); @@ -210,8 +209,8 @@ } .status-dot { - width: 8px; - height: 8px; + width: 7px; + height: 7px; border-radius: 50%; background: var(--status-ok); animation: statusPulse 2s ease-in-out infinite; @@ -224,12 +223,12 @@ @keyframes statusPulse { 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); } - 50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(34, 197, 94, 0); } + 50% { opacity: 0.7; box-shadow: 0 0 0 5px rgba(34, 197, 94, 0); } } .time-display { font-family: 'JetBrains Mono', monospace; - font-size: 14px; + font-size: 12px; font-weight: 600; color: var(--text-secondary); } @@ -238,21 +237,21 @@ .device-selector-container { display: flex; align-items: center; - gap: 8px; - margin-right: 8px; + gap: 6px; + margin-right: 4px; } .device-select-dropdown { background: #ffffff; border: 1px solid var(--border-color); color: var(--text-primary); - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; outline: none; cursor: pointer; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.01); transition: all 0.3s; } @@ -268,20 +267,7 @@ /* === Setup Guide Panel === */ .setup-guide { - background: linear-gradient(135deg, rgba(8, 145, 178, 0.04), rgba(124, 58, 237, 0.02)); - border: 1px solid rgba(8, 145, 178, 0.12); - border-radius: 20px; - margin-bottom: 24px; - overflow: hidden; - box-shadow: 0 4px 15px -3px rgba(0, 0, 0, 0.02); - transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); - } - - .setup-guide.hidden { - max-height: 0; - margin-bottom: 0; - border-color: transparent; - opacity: 0; + display: none !important; } .setup-guide-header { @@ -400,21 +386,20 @@ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: auto auto; - gap: 16px; + gap: 10px; flex: 1; } .vital-card { background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 16px; - padding: 16px; + border-radius: 12px; + padding: 10px; position: relative; overflow: hidden; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.03), 0 2px 4px -1px rgba(0, 0, 0, 0.02), - 0 10px 20px -8px rgba(0, 0, 0, 0.04); + 0 4px 6px -2px rgba(0, 0, 0, 0.03); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); display: flex; flex-direction: column; @@ -422,9 +407,9 @@ .vital-card:hover { background: var(--bg-card-hover); - transform: translateY(-2px); + transform: translateY(-1px); box-shadow: - 0 12px 24px -10px rgba(0, 0, 0, 0.06), + 0 6px 12px -5px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.01); } @@ -441,8 +426,8 @@ top: 0; left: 0; right: 0; - height: 3px; - border-radius: 16px 16px 0 0; + height: 2.5px; + border-radius: 12px 12px 0 0; } .vital-card.hr::before { background: linear-gradient(90deg, var(--hr-color), transparent); } @@ -458,8 +443,8 @@ position: absolute; top: 50%; left: 50%; - width: 160px; - height: 160px; + width: 120px; + height: 120px; border-radius: 50%; transform: translate(-50%, -50%); opacity: 0; @@ -476,18 +461,18 @@ .vital-card.map-card::after { background: radial-gradient(circle, var(--map-glow), transparent 70%); } .vital-card.has-value::after { - opacity: 0.3; + opacity: 0.25; } .vital-card.has-value:hover::after { - opacity: 0.5; + opacity: 0.4; } .card-header { display: flex; align-items: center; justify-content: space-between; - margin-bottom: 8px; + margin-bottom: 6px; position: relative; z-index: 1; } @@ -495,32 +480,32 @@ .card-label { display: flex; align-items: center; - gap: 8px; + gap: 6px; } .card-icon { - width: 32px; - height: 32px; - border-radius: 8px; + width: 26px; + height: 26px; + border-radius: 6px; display: flex; align-items: center; justify-content: center; - font-size: 15px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.01); + font-size: 13px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.01); } - .vital-card.hr .card-icon { background: rgba(220, 38, 38, 0.06); } - .vital-card.spo2 .card-icon { background: rgba(8, 145, 178, 0.06); } - .vital-card.bp .card-icon { background: rgba(124, 58, 237, 0.06); } - .vital-card.rr .card-icon { background: rgba(22, 163, 74, 0.06); } - .vital-card.temp .card-icon { background: rgba(234, 88, 12, 0.06); } - .vital-card.map-card .card-icon { background: rgba(219, 39, 119, 0.06); } + .vital-card.hr .card-icon { background: rgba(220, 38, 38, 0.05); } + .vital-card.spo2 .card-icon { background: rgba(8, 145, 178, 0.05); } + .vital-card.bp .card-icon { background: rgba(124, 58, 237, 0.05); } + .vital-card.rr .card-icon { background: rgba(22, 163, 74, 0.05); } + .vital-card.temp .card-icon { background: rgba(234, 88, 12, 0.05); } + .vital-card.map-card .card-icon { background: rgba(219, 39, 119, 0.05); } .card-name { - font-size: 11px; + font-size: 10px; font-weight: 700; text-transform: uppercase; - letter-spacing: 0.6px; + letter-spacing: 0.4px; } .vital-card.hr .card-name { color: var(--hr-color); } @@ -531,38 +516,38 @@ .vital-card.map-card .card-name { color: var(--map-color); } .status-badge { - padding: 3px 8px; - border-radius: 6px; - font-size: 10px; + padding: 2px 6px; + border-radius: 5px; + font-size: 9px; font-weight: 700; text-transform: uppercase; - letter-spacing: 0.3px; + letter-spacing: 0.2px; } .status-badge.normal { - background: rgba(22, 163, 74, 0.06); + background: rgba(22, 163, 74, 0.05); color: var(--status-ok); - border: 1px solid rgba(22, 163, 74, 0.1); + border: 1px solid rgba(22, 163, 74, 0.08); } .status-badge.warning { - background: rgba(202, 138, 4, 0.06); + background: rgba(202, 138, 4, 0.05); color: var(--status-warn); - border: 1px solid rgba(202, 138, 4, 0.1); + border: 1px solid rgba(202, 138, 4, 0.08); animation: warningFlash 2s ease-in-out infinite; } .status-badge.critical { - background: rgba(220, 38, 38, 0.06); + background: rgba(220, 38, 38, 0.05); color: var(--status-critical); - border: 1px solid rgba(220, 38, 38, 0.1); + border: 1px solid rgba(220, 38, 38, 0.08); animation: criticalFlash 1s ease-in-out infinite; } .status-badge.offline { - background: rgba(100, 116, 139, 0.04); + background: rgba(100, 116, 139, 0.03); color: var(--status-offline); - border: 1px solid rgba(100, 116, 139, 0.08); + border: 1px solid rgba(100, 116, 139, 0.06); } @keyframes warningFlash { @@ -583,15 +568,15 @@ justify-content: center; position: relative; z-index: 1; - min-height: 80px; + min-height: 55px; } .vital-value { font-family: 'JetBrains Mono', monospace; - font-size: 48px; + font-size: 34px; font-weight: 700; line-height: 1; - letter-spacing: -1px; + letter-spacing: -0.5px; transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1); } @@ -603,22 +588,22 @@ .vital-card.map-card .vital-value { color: var(--map-color); } .vital-value.no-data { - font-size: 36px; + font-size: 26px; color: var(--text-dim) !important; } .vital-value .unit { - font-size: 16px; + font-size: 13px; font-weight: 500; letter-spacing: 0; - margin-left: 3px; + margin-left: 2px; color: var(--text-secondary); } .vital-value .slash { - font-size: 36px; + font-size: 26px; opacity: 0.3; - margin: 0 1px; + margin: 0; color: var(--text-secondary); } @@ -627,20 +612,20 @@ } @keyframes valueFlash { - 0% { transform: scale(1.04); filter: brightness(1.15); } + 0% { transform: scale(1.03); filter: brightness(1.1); } 100% { transform: scale(1); filter: brightness(1); } } /* === Waveform Canvas === */ .waveform-container { - height: 40px; - margin-top: 8px; + height: 30px; + margin-top: 6px; position: relative; z-index: 1; overflow: hidden; - border-radius: 8px; + border-radius: 6px; background: rgba(0, 0, 0, 0.01); - border: 1px solid rgba(0, 0, 0, 0.01); + border: 1px solid rgba(0, 0, 0, 0.005); } .waveform-container canvas { @@ -654,21 +639,21 @@ display: flex; align-items: center; justify-content: space-between; - margin-top: 8px; - padding-top: 8px; + margin-top: 6px; + padding-top: 6px; border-top: 1px solid var(--border-color); position: relative; z-index: 1; } .normal-range { - font-size: 10px; + font-size: 9.5px; color: var(--text-secondary); font-weight: 600; } .last-update { - font-size: 10px; + font-size: 9.5px; color: var(--text-dim); font-family: 'JetBrains Mono', monospace; font-weight: 500; @@ -676,53 +661,9 @@ /* === Info Bar === */ .info-bar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 24px; - background: var(--bg-card); - border: 1px solid var(--border-color); - border-radius: 20px; - box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), - 0 2px 4px -1px rgba(0, 0, 0, 0.01), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-top: 24px; - flex-wrap: wrap; - gap: 12px; + display: none !important; } - .info-item { - display: flex; - align-items: center; - gap: 8px; - font-size: 13px; - color: var(--text-secondary); - font-weight: 500; - } - - .info-item strong { - color: var(--text-primary); - font-weight: 700; - } - - .info-dot { - width: 6px; - height: 6px; - border-radius: 50%; - background: var(--border-color); - } - - .model-badge { - padding: 4px 12px; - border-radius: 8px; - font-size: 11px; - font-weight: 800; - letter-spacing: 0.5px; - background: linear-gradient(135deg, rgba(8, 145, 178, 0.08), rgba(124, 58, 237, 0.08)); - color: var(--spo2-color); - border: 1px solid rgba(8, 145, 178, 0.15); - } /* === Responsive === */ @media (max-width: 1024px) { @@ -777,30 +718,30 @@ .patient-banner { display: flex; align-items: center; - justify-content: space-between; - padding: 16px 24px; + justify-content: flex-start; + gap: 20px; + padding: 8px 16px; background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 20px; + border-radius: 12px; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-bottom: 24px; + 0 2px 4px -1px rgba(0, 0, 0, 0.01), + 0 4px 6px -3px rgba(0, 0, 0, 0.02); + margin-bottom: 12px; flex-wrap: wrap; - gap: 16px; } .patient-banner-group { display: flex; align-items: center; - gap: 12px; + gap: 8px; } .patient-avatar { - width: 36px; - height: 36px; + width: 28px; + height: 28px; border-radius: 50%; - background: rgba(8, 145, 178, 0.08); + background: rgba(8, 145, 178, 0.06); color: var(--spo2-color); display: flex; align-items: center; @@ -808,26 +749,26 @@ } .patient-avatar svg { - width: 18px; - height: 18px; + width: 14px; + height: 14px; } .patient-label { - font-size: 11px; + font-size: 9px; color: var(--text-secondary); font-weight: 700; text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 0.3px; } .patient-value-text { - font-size: 14px; + font-size: 12px; color: var(--text-primary); font-weight: 700; } .patient-banner-divider { - height: 24px; + height: 16px; width: 1px; background: var(--border-color); } @@ -950,20 +891,6 @@
ICU - Bed 12
-
-
-
-
Monitor Status
-
CMS8500
-
-
-
-
-
-
Last Transmission
-
Never
-
-
diff --git a/static/dashboard.html b/static/dashboard.html index 4a4dfbf..2a03b7c 100644 --- a/static/dashboard.html +++ b/static/dashboard.html @@ -106,44 +106,43 @@ display: flex; align-items: center; justify-content: space-between; - padding: 16px 24px; + padding: 8px 16px; background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 20px; + border-radius: 12px; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.01), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-bottom: 24px; + 0 4px 6px -3px rgba(0, 0, 0, 0.02); + margin-bottom: 12px; } .header-left { display: flex; align-items: center; - gap: 16px; + gap: 10px; } .header-icon { - width: 48px; - height: 48px; - border-radius: 14px; + width: 32px; + height: 32px; + border-radius: 8px; background: linear-gradient(135deg, var(--spo2-color), var(--hr-color)); display: flex; align-items: center; justify-content: center; - font-size: 24px; - box-shadow: 0 4px 14px rgba(8, 145, 178, 0.2); + font-size: 16px; + box-shadow: 0 2px 6px rgba(8, 145, 178, 0.15); } .header-title { - font-size: 20px; + font-size: 15px; font-weight: 700; - letter-spacing: -0.5px; + letter-spacing: -0.3px; color: var(--text-primary); } .header-subtitle { - font-size: 13px; + font-size: 11px; color: var(--text-secondary); margin-top: 1px; font-weight: 500; @@ -152,17 +151,17 @@ .header-right { display: flex; align-items: center; - gap: 16px; + gap: 12px; } /* Audio Alert Toggle */ .audio-toggle { display: flex; align-items: center; - gap: 8px; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + gap: 6px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; background: rgba(71, 85, 105, 0.06); border: 1px solid rgba(71, 85, 105, 0.1); @@ -186,10 +185,10 @@ .connection-badge { display: flex; align-items: center; - gap: 8px; - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + gap: 6px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; background: rgba(22, 163, 74, 0.08); border: 1px solid rgba(22, 163, 74, 0.15); @@ -210,8 +209,8 @@ } .status-dot { - width: 8px; - height: 8px; + width: 7px; + height: 7px; border-radius: 50%; background: var(--status-ok); animation: statusPulse 2s ease-in-out infinite; @@ -224,12 +223,12 @@ @keyframes statusPulse { 0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); } - 50% { opacity: 0.7; box-shadow: 0 0 0 6px rgba(34, 197, 94, 0); } + 50% { opacity: 0.7; box-shadow: 0 0 0 5px rgba(34, 197, 94, 0); } } .time-display { font-family: 'JetBrains Mono', monospace; - font-size: 14px; + font-size: 12px; font-weight: 600; color: var(--text-secondary); } @@ -238,21 +237,21 @@ .device-selector-container { display: flex; align-items: center; - gap: 8px; - margin-right: 8px; + gap: 6px; + margin-right: 4px; } .device-select-dropdown { background: #ffffff; border: 1px solid var(--border-color); color: var(--text-primary); - padding: 8px 16px; - border-radius: 20px; - font-size: 13px; + padding: 6px 12px; + border-radius: 12px; + font-size: 11px; font-weight: 600; outline: none; cursor: pointer; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.01); transition: all 0.3s; } @@ -268,20 +267,7 @@ /* === Setup Guide Panel === */ .setup-guide { - background: linear-gradient(135deg, rgba(8, 145, 178, 0.04), rgba(124, 58, 237, 0.02)); - border: 1px solid rgba(8, 145, 178, 0.12); - border-radius: 20px; - margin-bottom: 24px; - overflow: hidden; - box-shadow: 0 4px 15px -3px rgba(0, 0, 0, 0.02); - transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); - } - - .setup-guide.hidden { - max-height: 0; - margin-bottom: 0; - border-color: transparent; - opacity: 0; + display: none !important; } .setup-guide-header { @@ -400,21 +386,20 @@ display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: auto auto; - gap: 16px; + gap: 10px; flex: 1; } .vital-card { background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 16px; - padding: 16px; + border-radius: 12px; + padding: 10px; position: relative; overflow: hidden; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.03), 0 2px 4px -1px rgba(0, 0, 0, 0.02), - 0 10px 20px -8px rgba(0, 0, 0, 0.04); + 0 4px 6px -2px rgba(0, 0, 0, 0.03); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); display: flex; flex-direction: column; @@ -422,9 +407,9 @@ .vital-card:hover { background: var(--bg-card-hover); - transform: translateY(-2px); + transform: translateY(-1px); box-shadow: - 0 12px 24px -10px rgba(0, 0, 0, 0.06), + 0 6px 12px -5px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.01); } @@ -441,8 +426,8 @@ top: 0; left: 0; right: 0; - height: 3px; - border-radius: 16px 16px 0 0; + height: 2.5px; + border-radius: 12px 12px 0 0; } .vital-card.hr::before { background: linear-gradient(90deg, var(--hr-color), transparent); } @@ -458,8 +443,8 @@ position: absolute; top: 50%; left: 50%; - width: 160px; - height: 160px; + width: 120px; + height: 120px; border-radius: 50%; transform: translate(-50%, -50%); opacity: 0; @@ -476,18 +461,18 @@ .vital-card.map-card::after { background: radial-gradient(circle, var(--map-glow), transparent 70%); } .vital-card.has-value::after { - opacity: 0.3; + opacity: 0.25; } .vital-card.has-value:hover::after { - opacity: 0.5; + opacity: 0.4; } .card-header { display: flex; align-items: center; justify-content: space-between; - margin-bottom: 8px; + margin-bottom: 6px; position: relative; z-index: 1; } @@ -495,32 +480,32 @@ .card-label { display: flex; align-items: center; - gap: 8px; + gap: 6px; } .card-icon { - width: 32px; - height: 32px; - border-radius: 8px; + width: 26px; + height: 26px; + border-radius: 6px; display: flex; align-items: center; justify-content: center; - font-size: 15px; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.01); + font-size: 13px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.01); } - .vital-card.hr .card-icon { background: rgba(220, 38, 38, 0.06); } - .vital-card.spo2 .card-icon { background: rgba(8, 145, 178, 0.06); } - .vital-card.bp .card-icon { background: rgba(124, 58, 237, 0.06); } - .vital-card.rr .card-icon { background: rgba(22, 163, 74, 0.06); } - .vital-card.temp .card-icon { background: rgba(234, 88, 12, 0.06); } - .vital-card.map-card .card-icon { background: rgba(219, 39, 119, 0.06); } + .vital-card.hr .card-icon { background: rgba(220, 38, 38, 0.05); } + .vital-card.spo2 .card-icon { background: rgba(8, 145, 178, 0.05); } + .vital-card.bp .card-icon { background: rgba(124, 58, 237, 0.05); } + .vital-card.rr .card-icon { background: rgba(22, 163, 74, 0.05); } + .vital-card.temp .card-icon { background: rgba(234, 88, 12, 0.05); } + .vital-card.map-card .card-icon { background: rgba(219, 39, 119, 0.05); } .card-name { - font-size: 11px; + font-size: 10px; font-weight: 700; text-transform: uppercase; - letter-spacing: 0.6px; + letter-spacing: 0.4px; } .vital-card.hr .card-name { color: var(--hr-color); } @@ -531,38 +516,38 @@ .vital-card.map-card .card-name { color: var(--map-color); } .status-badge { - padding: 3px 8px; - border-radius: 6px; - font-size: 10px; + padding: 2px 6px; + border-radius: 5px; + font-size: 9px; font-weight: 700; text-transform: uppercase; - letter-spacing: 0.3px; + letter-spacing: 0.2px; } .status-badge.normal { - background: rgba(22, 163, 74, 0.06); + background: rgba(22, 163, 74, 0.05); color: var(--status-ok); - border: 1px solid rgba(22, 163, 74, 0.1); + border: 1px solid rgba(22, 163, 74, 0.08); } .status-badge.warning { - background: rgba(202, 138, 4, 0.06); + background: rgba(202, 138, 4, 0.05); color: var(--status-warn); - border: 1px solid rgba(202, 138, 4, 0.1); + border: 1px solid rgba(202, 138, 4, 0.08); animation: warningFlash 2s ease-in-out infinite; } .status-badge.critical { - background: rgba(220, 38, 38, 0.06); + background: rgba(220, 38, 38, 0.05); color: var(--status-critical); - border: 1px solid rgba(220, 38, 38, 0.1); + border: 1px solid rgba(220, 38, 38, 0.08); animation: criticalFlash 1s ease-in-out infinite; } .status-badge.offline { - background: rgba(100, 116, 139, 0.04); + background: rgba(100, 116, 139, 0.03); color: var(--status-offline); - border: 1px solid rgba(100, 116, 139, 0.08); + border: 1px solid rgba(100, 116, 139, 0.06); } @keyframes warningFlash { @@ -583,15 +568,15 @@ justify-content: center; position: relative; z-index: 1; - min-height: 80px; + min-height: 55px; } .vital-value { font-family: 'JetBrains Mono', monospace; - font-size: 48px; + font-size: 34px; font-weight: 700; line-height: 1; - letter-spacing: -1px; + letter-spacing: -0.5px; transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1); } @@ -603,22 +588,22 @@ .vital-card.map-card .vital-value { color: var(--map-color); } .vital-value.no-data { - font-size: 36px; + font-size: 26px; color: var(--text-dim) !important; } .vital-value .unit { - font-size: 16px; + font-size: 13px; font-weight: 500; letter-spacing: 0; - margin-left: 3px; + margin-left: 2px; color: var(--text-secondary); } .vital-value .slash { - font-size: 36px; + font-size: 26px; opacity: 0.3; - margin: 0 1px; + margin: 0; color: var(--text-secondary); } @@ -627,20 +612,20 @@ } @keyframes valueFlash { - 0% { transform: scale(1.04); filter: brightness(1.15); } + 0% { transform: scale(1.03); filter: brightness(1.1); } 100% { transform: scale(1); filter: brightness(1); } } /* === Waveform Canvas === */ .waveform-container { - height: 40px; - margin-top: 8px; + height: 30px; + margin-top: 6px; position: relative; z-index: 1; overflow: hidden; - border-radius: 8px; + border-radius: 6px; background: rgba(0, 0, 0, 0.01); - border: 1px solid rgba(0, 0, 0, 0.01); + border: 1px solid rgba(0, 0, 0, 0.005); } .waveform-container canvas { @@ -654,21 +639,21 @@ display: flex; align-items: center; justify-content: space-between; - margin-top: 8px; - padding-top: 8px; + margin-top: 6px; + padding-top: 6px; border-top: 1px solid var(--border-color); position: relative; z-index: 1; } .normal-range { - font-size: 10px; + font-size: 9.5px; color: var(--text-secondary); font-weight: 600; } .last-update { - font-size: 10px; + font-size: 9.5px; color: var(--text-dim); font-family: 'JetBrains Mono', monospace; font-weight: 500; @@ -676,53 +661,9 @@ /* === Info Bar === */ .info-bar { - display: flex; - align-items: center; - justify-content: space-between; - padding: 16px 24px; - background: var(--bg-card); - border: 1px solid var(--border-color); - border-radius: 20px; - box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), - 0 2px 4px -1px rgba(0, 0, 0, 0.01), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-top: 24px; - flex-wrap: wrap; - gap: 12px; + display: none !important; } - .info-item { - display: flex; - align-items: center; - gap: 8px; - font-size: 13px; - color: var(--text-secondary); - font-weight: 500; - } - - .info-item strong { - color: var(--text-primary); - font-weight: 700; - } - - .info-dot { - width: 6px; - height: 6px; - border-radius: 50%; - background: var(--border-color); - } - - .model-badge { - padding: 4px 12px; - border-radius: 8px; - font-size: 11px; - font-weight: 800; - letter-spacing: 0.5px; - background: linear-gradient(135deg, rgba(8, 145, 178, 0.08), rgba(124, 58, 237, 0.08)); - color: var(--spo2-color); - border: 1px solid rgba(8, 145, 178, 0.15); - } /* === Responsive === */ @media (max-width: 1024px) { @@ -777,30 +718,30 @@ .patient-banner { display: flex; align-items: center; - justify-content: space-between; - padding: 16px 24px; + justify-content: flex-start; + gap: 20px; + padding: 8px 16px; background: var(--bg-card); border: 1px solid var(--border-color); - border-radius: 20px; + border-radius: 12px; box-shadow: - 0 4px 6px -1px rgba(0, 0, 0, 0.02), - 0 10px 15px -3px rgba(0, 0, 0, 0.03); - margin-bottom: 24px; + 0 2px 4px -1px rgba(0, 0, 0, 0.01), + 0 4px 6px -3px rgba(0, 0, 0, 0.02); + margin-bottom: 12px; flex-wrap: wrap; - gap: 16px; } .patient-banner-group { display: flex; align-items: center; - gap: 12px; + gap: 8px; } .patient-avatar { - width: 36px; - height: 36px; + width: 28px; + height: 28px; border-radius: 50%; - background: rgba(8, 145, 178, 0.08); + background: rgba(8, 145, 178, 0.06); color: var(--spo2-color); display: flex; align-items: center; @@ -808,26 +749,26 @@ } .patient-avatar svg { - width: 18px; - height: 18px; + width: 14px; + height: 14px; } .patient-label { - font-size: 11px; + font-size: 9px; color: var(--text-secondary); font-weight: 700; text-transform: uppercase; - letter-spacing: 0.5px; + letter-spacing: 0.3px; } .patient-value-text { - font-size: 14px; + font-size: 12px; color: var(--text-primary); font-weight: 700; } .patient-banner-divider { - height: 24px; + height: 16px; width: 1px; background: var(--border-color); } @@ -950,20 +891,6 @@
ICU - Bed 12
-
-
-
-
Monitor Status
-
CMS8500
-
-
-
-
-
-
Last Transmission
-
Never
-
-