@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,300..900&display=swap'); :root { --color-bg: #f5f5fb; --color-bg-secondary: #ededf5; --color-bg-card: #ffffff; --color-surface: #f0f0f8; --color-text: #1a1a1a; --color-text-secondary: #666666; --color-text-muted: #999999; --color-border: #dddde8; --color-input-border: #c8c8d8; --color-primary: #6366f1; --color-danger: #d93025; --color-tag-bg: #ede9fe; --color-tag-text: #4f46e5; --color-shadow: rgba(0, 0, 0, 0.08); --color-toast-success: #34a853; --color-toast-error: #d93025; --color-status-todo: #5f6368; --color-status-todo-bg: #e8eaed; --color-status-in-progress: #6366f1; --color-status-in-progress-bg: #ede9fe; --color-status-done: #34a853; --color-status-done-bg: #e6f4ea; --color-priority-low: #5f9ea0; --color-priority-low-bg: #e0f2f1; --color-priority-medium: #f9a825; --color-priority-medium-bg: #fff8e1; --color-priority-high: #d93025; --color-priority-high-bg: #fce8e6; --color-wikilink: #7b1fa2; --color-wikilink-bg: #f3e5f5; --color-overdue: #d93025; --color-code-bg: #f0f0f8; --color-code-inline-bg: #eaeaf4; --color-table-stripe: #f4f4fb; --color-success: #22c55e; --color-warning: #eab308; --color-input-bar-bg: #eaeaf3; --color-input-bar-text: #1a1a1a; --color-input-bar-placeholder: rgba(0, 0, 0, 0.4); --color-overlay: rgba(0, 0, 0, 0.45); --color-bubble-user-bg: rgba(0, 0, 0, 0.04); --color-bubble-user-border: rgba(0, 0, 0, 0.10); --color-bubble-user-text: #3a3a4a; --color-bubble-asst-shadow: 0 2px 16px rgba(99, 102, 241, 0.10), 0 1px 4px rgba(0, 0, 0, 0.06); --radius-sm: 6px; --radius-md: 12px; --radius-lg: 18px; --radius-pill: 9999px; --focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent); /* Layout */ --page-max-width: 1200px; --page-padding-x: 1rem; --sidebar-width: 260px; } [data-theme="dark"] { --color-bg: #111113; --color-bg-secondary: #18181f; --color-bg-card: #1e1e27; --color-surface: #1a1b22; --color-text: #e4e4f0; --color-text-secondary: #8888a8; --color-text-muted: #52526a; --color-border: rgba(99, 102, 241, 0.10); --color-input-border: rgba(99, 102, 241, 0.22); --color-primary: #818cf8; --color-danger: #f44336; --color-tag-bg: #2a2a45; --color-tag-text: #a5b4fc; --color-shadow: rgba(0, 0, 0, 0.4); --color-toast-success: #4caf50; --color-toast-error: #f44336; --color-status-todo: #9aa0a6; --color-status-todo-bg: #2a2a35; --color-status-in-progress: #818cf8; --color-status-in-progress-bg: #2a2a45; --color-status-done: #4caf50; --color-status-done-bg: #1b3a20; --color-priority-low: #80cbc4; --color-priority-low-bg: #1a3a38; --color-priority-medium: #fdd835; --color-priority-medium-bg: #3a3520; --color-priority-high: #f44336; --color-priority-high-bg: #3a1a1a; --color-wikilink: #c4b5fd; --color-wikilink-bg: #2a1a45; --color-overdue: #f44336; --color-code-bg: #16161d; --color-code-inline-bg: #1e1e2d; --color-table-stripe: #16161e; --color-success: #4ade80; --color-warning: #facc15; --color-input-bar-bg: #1e1e27; --color-input-bar-text: #e4e4f0; --color-input-bar-placeholder: rgba(228, 228, 240, 0.35); --color-overlay: rgba(0, 0, 0, 0.65); --color-bubble-user-bg: rgba(255, 255, 255, 0.04); --color-bubble-user-border: rgba(255, 255, 255, 0.10); --color-bubble-user-text: #b0b0c8; --color-bubble-asst-shadow: 0 4px 28px rgba(99, 102, 241, 0.14), 0 2px 8px rgba(0, 0, 0, 0.4); } *, *::before, *::after { box-sizing: border-box; } body { margin: 0; background: var(--color-bg); color: var(--color-text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif; line-height: 1.5; transition: background-color 0.2s, color 0.2s; } h1, h2, h3 { font-family: 'Fraunces', Georgia, serif; font-optical-sizing: auto; } input:focus-visible, textarea:focus-visible, select:focus-visible, button:focus-visible, a:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: var(--radius-sm); } button:not(:disabled):active, .btn:not(:disabled):active, [role="button"]:not(:disabled):active { transform: scale(0.97); transition: transform 0.08s ease; } /* Responsive breakpoints: 480px (phone), 768px (tablet), 1024px (desktop) */ @media (max-width: 768px) { .hide-mobile { display: none !important; } button, [role="button"], .btn-new-conv, .btn-send { min-height: 44px; } } @media (min-width: 769px) { .hide-desktop { display: none !important; } } /* Thin indigo-tinted scrollbars */ ::-webkit-scrollbar { width: 4px; height: 4px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: rgba(99, 102, 241, 0.25); border-radius: 9999px; } ::-webkit-scrollbar-thumb:hover { background: rgba(99, 102, 241, 0.45); } /* Floating inline assist button (teleported to body, cannot be scoped) */ .inline-assist-btn { position: fixed; z-index: 150; transform: translateX(-50%); background: var(--color-primary); color: #fff; border: none; border-radius: 999px; padding: 0.3rem 0.8rem; font-size: 0.8rem; cursor: pointer; box-shadow: 0 2px 8px var(--color-shadow); white-space: nowrap; } .inline-assist-btn:hover { filter: brightness(1.1); }