diff --git a/src/app/globals.css b/src/app/globals.css index 5f738da61d..5094b16e39 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -9,8 +9,7 @@ * * Radius usage rules: * rounded-md chips, inner elements, metadata pills - * rounded-lg controls, inputs, buttons - * rounded-lg cards, panels, drawers + * rounded-lg controls, inputs, buttons, cards, panels, drawers * rounded-xl bottom sheets, dialogs, large shells */ @theme { @@ -464,58 +463,6 @@ summary::-webkit-details-marker { background: var(--surface); } -.universal-header-ledger { - min-height: 2.5rem; - max-width: min(100%, 27rem); - border: 1px solid var(--border); - border-radius: 999px; - background: var(--surface-raised); - padding: 0.25rem 0.55rem 0.25rem 0.7rem; - color: var(--text-muted); - box-shadow: none; -} - -.universal-header-ledger-label { - display: inline-flex; - align-items: center; - min-height: 1.75rem; - border-radius: 999px; - background: color-mix(in srgb, var(--clinical-chat-teal-soft) 72%, transparent); - padding-inline: 0.55rem; - color: var(--clinical-chat-teal); - font-size: 0.6875rem; - font-weight: 800; - letter-spacing: 0; -} - -.universal-header-ledger-item { - display: inline-flex; - min-width: 0; - align-items: center; - gap: 0.35rem; - padding-inline: 0.35rem; - font-size: 0.75rem; - font-weight: 700; - line-height: 1; - white-space: nowrap; -} - -.universal-header-ledger-separator { - height: 1.25rem; - width: 1px; - flex: 0 0 auto; - background: color-mix(in srgb, var(--border-strong) 38%, transparent); -} - -.universal-header-status-dot { - display: inline-block; - height: 0.5rem; - width: 0.5rem; - flex: 0 0 auto; - border-radius: 999px; - box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 12%, transparent); -} - .universal-header-mode-button { border-color: var(--border); background: var(--surface); @@ -533,17 +480,11 @@ summary::-webkit-details-marker { background: var(--surface-subtle); } -.universal-header-avatar { - box-shadow: var(--shadow-tight); -} - -.dark .universal-header-ledger, .dark .universal-header-mode-button { box-shadow: var(--shadow-tight); } -.dark .universal-header-icon-control, -.dark .universal-header-avatar { +.dark .universal-header-icon-control { box-shadow: none; } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f8aec1acd6..27222d4768 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -47,6 +47,15 @@ export default function RootLayout({ suppressHydrationWarning >
+ {/* Applies the resolved theme before first paint on every route (standalone + pages don't mount useTheme, and hydration-time toggling flashes light). + Mirrors resolveThemePreference in src/lib/theme.ts: stored choice wins, + otherwise the OS preference. Key must match use-theme.ts. */} + - Source-only answer — assembled from your documents without the AI model, so it may be less - complete. Verify it against the cited passages below. + Source-only answer — assembled from your documents without the AI model, so it may be less complete. Verify + it against the cited passages below. ) : null} {sourceCapsuleButton} @@ -2704,7 +2704,7 @@ function AnswerSafetyNotice({ ) : null} {demoMode ? ( -+
Synthetic demo only: this is not clinical guidance.
) : null} diff --git a/src/components/applications-launcher-page.tsx b/src/components/applications-launcher-page.tsx index 1fe25ab44f..09dfe72719 100644 --- a/src/components/applications-launcher-page.tsx +++ b/src/components/applications-launcher-page.tsx @@ -301,7 +301,7 @@ function AppIcon({ app, compact = false }: { app: LauncherApp; compact?: boolean function LaunchLink({ app, compact = false, className }: { app: LauncherApp; compact?: boolean; className?: string }) { const label = `Launch ${app.title}`; const classes = cn( - "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[color:var(--clinical-chat-teal)] px-4 text-sm font-semibold text-white shadow-[var(--shadow-tight)] hover:bg-[color:var(--primary-strong)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[color:var(--focus)]", + "inline-flex min-h-11 items-center justify-center gap-2 rounded-lg bg-[color:var(--clinical-chat-teal)] px-4 text-sm font-semibold text-[color:var(--clinical-accent-contrast)] shadow-[var(--shadow-tight)] hover:bg-[color:var(--clinical-accent-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[color:var(--focus)]", compact && "min-h-9 px-3 text-xs", className, ); @@ -343,7 +343,7 @@ function HeaderFilter({ className={cn( "min-h-11 px-4 text-xs font-semibold transition sm:min-w-[5.25rem]", active - ? "bg-[color:var(--clinical-chat-teal)] text-white shadow-[var(--shadow-tight)]" + ? "bg-[color:var(--clinical-chat-teal)] text-[color:var(--clinical-accent-contrast)] shadow-[var(--shadow-tight)]" : "border-l border-[color:var(--border)] text-[color:var(--text-muted)] first:border-l-0 hover:bg-[color:var(--surface-subtle)] hover:text-[color:var(--text)]", )} > @@ -682,7 +682,7 @@ function ApplicationsMobileMenu({ open, onOpenChange }: { open: boolean; onOpenC onOpenChange(false)} - className="inline-flex min-h-[44px] w-full items-center justify-center gap-2 rounded-lg bg-[color:var(--clinical-chat-teal)] px-3 text-sm font-semibold text-white shadow-[var(--shadow-tight)] hover:bg-[color:var(--primary-strong)]" + className="inline-flex min-h-[44px] w-full items-center justify-center gap-2 rounded-lg bg-[color:var(--clinical-chat-teal)] px-3 text-sm font-semibold text-[color:var(--clinical-accent-contrast)] shadow-[var(--shadow-tight)] hover:bg-[color:var(--clinical-accent-hover)]" >