G1 — Design System: 14 UI primitives (Button, Card, Modal, Sheet, Input, Textarea, Select, EmptyState, LoadingShimmer, ConfirmDialog, WashiTape, Badge, Avatar, Tabs), PageTransition with Framer Motion, sun/moon CSS vars, Caveat font, /dev/components visual showcase. G2 — Memories Pipeline: R2 presigned uploads, Sharp thumbnail generation, LiteLLM vision captions + pgvector embeddings, CSS masonry gallery with infinite scroll, private toggle, semantic search fallback to ILIKE. G3 — Medical: dose log + correction audit trail, IAP vaccine bulk import, emergency escalation page, pediatrician phone in settings. G4 — AI Brain: keyword guardrail → LLM classifier → structured DB tool-use (7 tools) → memory search → general parenting handler; ai_usage table; 22-case medical bypass safety test suite. DB migrations: 0011_memories, 0012_medical_doses, 0013_ai_usage. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
61 lines
1.3 KiB
CSS
61 lines
1.3 KiB
CSS
@import "tailwindcss";
|
|
|
|
@custom-variant dark (&:where(.dark, .dark *));
|
|
|
|
/* ── Sun palette (light / daytime) ── */
|
|
:root,
|
|
[data-theme="sun"] {
|
|
--background: #fdf2f2;
|
|
--foreground: #1a1a1a;
|
|
--card: #ffffff;
|
|
--card-border: #f3e8e8;
|
|
--accent: #fb7185; /* rose-400 */
|
|
--accent-soft: #fce7f3;
|
|
--muted: #6b7280;
|
|
--muted-bg: #f9fafb;
|
|
}
|
|
|
|
/* ── Moon palette (dark / nighttime) ── */
|
|
.dark,
|
|
[data-theme="moon"] {
|
|
--background: #111827;
|
|
--foreground: #f9fafb;
|
|
--card: #1f2937;
|
|
--card-border: #374151;
|
|
--accent: #f43f5e;
|
|
--accent-soft: #1f2937;
|
|
--muted: #9ca3af;
|
|
--muted-bg: #1f2937;
|
|
}
|
|
|
|
@theme inline {
|
|
--color-background: var(--background);
|
|
--color-foreground: var(--foreground);
|
|
--font-sans: var(--font-geist-sans);
|
|
--font-mono: var(--font-geist-mono);
|
|
--font-caveat: var(--font-caveat);
|
|
}
|
|
|
|
@keyframes marquee {
|
|
0% { transform: translateX(0); }
|
|
100% { transform: translateX(-50%); }
|
|
}
|
|
|
|
.animate-marquee {
|
|
animation: marquee 20s linear infinite;
|
|
}
|
|
|
|
/* hide scrollbar but keep scroll */
|
|
.scrollbar-hide {
|
|
scrollbar-width: none;
|
|
-ms-overflow-style: none;
|
|
}
|
|
.scrollbar-hide::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
|
|
body {
|
|
background: var(--background);
|
|
color: var(--foreground);
|
|
font-family: Arial, Helvetica, sans-serif;
|
|
}
|