:root { --color-bg: #f5f5fb; --color-bg-secondary: #ededf5; --color-bg-card: #ffffff; --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); --radius-sm: 6px; --radius-md: 8px; --radius-lg: 12px; --radius-pill: 9999px; --focus-ring: 0 0 0 2px color-mix(in srgb, var(--color-primary) 40%, transparent); } [data-theme="dark"] { --color-bg: #1a1a2e; --color-bg-secondary: #16213e; --color-bg-card: #1f2940; --color-text: #e0e0e0; --color-text-secondary: #a0a0b0; --color-text-muted: #707080; --color-border: #2a3a5c; --color-input-border: #3a4a6c; --color-primary: #5b9cf6; --color-danger: #f44336; --color-tag-bg: #1e3a5f; --color-tag-text: #7bb8f6; --color-shadow: rgba(0, 0, 0, 0.3); --color-toast-success: #4caf50; --color-toast-error: #f44336; --color-status-todo: #9aa0a6; --color-status-todo-bg: #2d333b; --color-status-in-progress: #5b9cf6; --color-status-in-progress-bg: #1e3a5f; --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: #ce93d8; --color-wikilink-bg: #2a1a30; --color-overdue: #f44336; --color-code-bg: #161b22; --color-code-inline-bg: #2a3040; --color-table-stripe: #1a2030; --color-success: #4ade80; --color-warning: #facc15; --color-input-bar-bg: #1c1c1e; --color-input-bar-text: #ffffff; --color-input-bar-placeholder: rgba(255, 255, 255, 0.4); --color-overlay: rgba(0, 0, 0, 0.6); } *, *::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; } input:focus-visible, textarea:focus-visible, select:focus-visible, button:focus-visible { outline: none; box-shadow: var(--focus-ring); } /* 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; } } /* 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); }