diff --git a/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor.css b/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor.css index d7cd26a..91d9cb7 100644 --- a/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor.css +++ b/src/NexusReader.UI.Shared/Layout/MainHubLayout.razor.css @@ -425,26 +425,27 @@ /* Content padding for bottom navigation dock */ .hub-content { - padding: 1.25rem 1.25rem calc(1.25rem + 72px + env(safe-area-inset-bottom, 0px)) !important; + padding: 1.25rem 1.25rem calc(1.25rem + 96px + env(safe-area-inset-bottom, 0px)) !important; } /* Reader Mobile Dock v3 */ .reader-mobile-dock { display: flex; position: fixed; - bottom: 0; - left: 0; - right: 0; - height: calc(64px + env(safe-area-inset-bottom, 0px)); + bottom: calc(16px + env(safe-area-inset-bottom, 0px)); + left: 20px; + right: 20px; + height: 60px; background: rgba(26, 26, 30, 0.75); /* Translucent dark mode */ backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); - border-top: 1px solid rgba(255, 255, 255, 0.08); /* Microscopic border */ + border: 1px solid rgba(255, 255, 255, 0.08); /* Microscopic perimeter border */ + border-radius: 30px; /* Floating capsule rounded borders */ z-index: 150; - padding-bottom: env(safe-area-inset-bottom, 0px); + padding: 0 16px; justify-content: space-around; align-items: center; - box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.3); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); } .dock-item { @@ -455,12 +456,13 @@ height: 100%; color: var(--text-muted); text-decoration: none; - transition: color 0.2s ease, transform 0.2s ease; + transition: color 0.2s ease, filter 0.2s ease; position: relative; } .dock-item:hover, .dock-item.active { color: var(--accent); + filter: drop-shadow(0 0 4px var(--accent-glow)); /* Clean accent glow drop-shadow */ } .dock-text { @@ -473,49 +475,43 @@ align-items: center; justify-content: center; position: relative; - flex: 0 0 58px; - width: 58px; - height: 58px; + flex: 0 0 54px; + width: 54px; + height: 54px; margin-top: 0; transform: translateY(-20px); /* Elevate layout */ z-index: 160; } .central-action-inner { - width: 58px; - height: 58px; + width: 54px; + height: 54px; border-radius: 50%; - background: var(--accent); /* brand-green */ - color: #0a0a0a; + background: var(--bg-surface); /* Pure background instead of green bleed */ + color: var(--accent); /* brand-green robot icon */ display: flex; align-items: center; justify-content: center; - border: 2px solid var(--accent); /* Crisp green edge */ - box-shadow: 0 8px 24px rgba(0, 255, 153, 0.2); /* Neon drop shadow */ + border: 2px solid var(--accent); /* Crisp green edge container wrapper */ + box-shadow: 0 8px 24px var(--accent-glow); transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s ease; } .dock-item.central-action:hover .central-action-inner, .dock-item.central-action.active .central-action-inner { transform: scale(1.08) translateY(-2px); - box-shadow: 0 12px 28px rgba(0, 255, 153, 0.4); + box-shadow: 0 12px 28px var(--accent-glow); } .central-action-glow { - position: absolute; - inset: 4px; - border-radius: 50%; - background: var(--accent); - filter: blur(10px); - opacity: 0.3; - z-index: -1; + display: none; /* Purged background glow */ } /* Light Theme Overrides */ .theme-light .reader-mobile-dock { background: rgba(255, 255, 255, 0.85); /* Translucent light mode */ - border-top-color: rgba(45, 42, 38, 0.08); /* Light theme microscopic border */ - box-shadow: 0 -10px 30px rgba(139, 130, 115, 0.06); + border: 1px solid rgba(45, 42, 38, 0.08); /* Light theme microscopic border */ + box-shadow: 0 8px 32px rgba(139, 130, 115, 0.1); } .theme-light .dock-item { @@ -524,21 +520,22 @@ .theme-light .dock-item:hover, .theme-light .dock-item.active { color: var(--accent); + filter: drop-shadow(0 0 3px var(--accent-glow)); } .theme-light .central-action-inner { - background: var(--accent); - color: #ffffff; + background: var(--bg-surface); + color: var(--accent); border: 2px solid var(--accent); - box-shadow: 0 8px 24px rgba(16, 185, 129, 0.2); + box-shadow: 0 8px 24px var(--accent-glow); } .theme-light .dock-item.central-action:hover .central-action-inner, .theme-light .dock-item.central-action.active .central-action-inner { - box-shadow: 0 12px 28px rgba(16, 185, 129, 0.4); + box-shadow: 0 12px 28px var(--accent-glow); } .theme-light .central-action-glow { - background: var(--accent); + display: none; } } diff --git a/src/NexusReader.UI.Shared/Pages/Dashboard.razor.css b/src/NexusReader.UI.Shared/Pages/Dashboard.razor.css index cc5a907..c6fdb0b 100644 --- a/src/NexusReader.UI.Shared/Pages/Dashboard.razor.css +++ b/src/NexusReader.UI.Shared/Pages/Dashboard.razor.css @@ -526,29 +526,27 @@ /* Mobile Dashboard Overrides */ @media (max-width: 767px) { .dashboard-content { - padding: 1.25rem 0.75rem; + padding: 1rem 0.5rem; } .profile-header { - padding: 24px 16px; + padding: 16px; background: var(--bg-surface); border: 1px solid var(--border); border-radius: 16px; - margin-bottom: 24px; + margin-bottom: 16px; } .profile-visual { - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; + display: grid; + grid-template-columns: auto 1fr; align-items: center; - text-align: left; - gap: 1.25rem; + gap: 0.75rem; } .avatar-wrapper { - width: 70px; - height: 70px; + width: 48px; + height: 48px; margin: 0; } @@ -556,9 +554,12 @@ flex: 1; } - .user-name { - font-size: 1.5rem; - margin-bottom: 0.25rem; + .username { + font-size: 1.15rem; + font-weight: 600; + text-align: left; + margin: 0; + letter-spacing: 0px; } .user-role { @@ -566,43 +567,60 @@ } .status-pills { + grid-column: span 2; + display: flex; + flex-direction: row; + justify-content: space-between; width: 100%; - margin-top: 0.5rem; - justify-content: flex-start; - flex-wrap: wrap; - gap: 0.5rem; + gap: 0.35rem; + margin-top: 0.25rem; } .status-pill { - padding: 0.35rem 0.75rem; - font-size: 0.75rem; + flex: 1; + display: flex; + justify-content: center; + align-items: center; + padding: 0.35rem 0.5rem; + font-size: 0.7rem; + gap: 0.25rem; + white-space: nowrap; } .section-title { - font-size: 2rem; + font-size: 1.5rem; font-weight: 700; letter-spacing: -0.5px; - margin-bottom: 16px; + margin-bottom: 12px; color: var(--text-main); } .main-grid { grid-template-columns: 1fr !important; - gap: 1.25rem !important; + gap: 1rem !important; } .secondary-grid { grid-template-columns: 1fr !important; - gap: 1.25rem !important; + gap: 1rem !important; } /* Force all widgets to take 100% width and fit inside parent container nicely */ .glass-panel { width: 100% !important; - padding: 1.25rem !important; + padding: 1rem !important; box-sizing: border-box; } + /* Compress Knowledge Graph and Concept stack heights to maximize visible fold space */ + .graph-placeholder { + height: 140px; + } + + .concepts-linear-stack { + height: 150px; + } + /* Expand touch-targets to 48px min height for interactive elements */ .btn-nexus, .quiz-option, .satellite, .logout-btn, .nav-item, .quiz-item { min-height: 48px;