@use 'bootstrap/scss/bootstrap'; :root { --page-text: #142236; --page-text-muted: rgba(39, 63, 91, 0.72); --page-text-soft: rgba(39, 63, 91, 0.82); --page-background: radial-gradient(circle at top left, rgba(81, 168, 255, 0.2), transparent 30%), radial-gradient(circle at top right, rgba(129, 244, 215, 0.22), transparent 24%), linear-gradient(180deg, #f6fbff 0%, #e8f1fb 100%); --panel-background: rgba(255, 255, 255, 0.82); --panel-alt-background: rgba(241, 247, 255, 0.9); --panel-soft-background: rgba(20, 34, 54, 0.04); --surface-background: rgba(255, 255, 255, 0.82); --surface-hover-background: rgba(235, 244, 255, 0.98); --surface-border: rgba(33, 62, 94, 0.12); --surface-border-soft: rgba(33, 62, 94, 0.08); --input-background: rgba(255, 255, 255, 0.92); --input-border: rgba(77, 114, 154, 0.26); --placeholder-color: rgba(55, 83, 118, 0.52); --accent-color: #138a7b; --accent-color-soft: rgba(19, 138, 123, 0.1); --accent-gradient: linear-gradient(135deg, #8df0df, #6cb6ff); --accent-gradient-hover: linear-gradient(135deg, #a6f5e8, #86c4ff); --link-color: #2f7cd6; --badge-background: rgba(20, 34, 54, 0.08); --incoming-bubble-background: #d9ebff; --incoming-bubble-text: #183759; --outgoing-bubble-background: #d9f5df; --outgoing-bubble-text: #1e4d2f; --danger-background: #d94b53; --shadow-color: rgba(41, 73, 110, 0.14); color-scheme: light; } @media (prefers-color-scheme: dark) { :root:not([data-theme]) { --page-text: #eff3ff; --page-text-muted: rgba(231, 238, 249, 0.72); --page-text-soft: rgba(231, 238, 249, 0.84); --page-background: radial-gradient(circle at top left, rgba(129, 244, 215, 0.18), transparent 28%), radial-gradient(circle at top right, rgba(85, 168, 255, 0.18), transparent 24%), linear-gradient(180deg, #08111d 0%, #101d31 100%); --panel-background: rgba(9, 16, 28, 0.78); --panel-alt-background: rgba(15, 27, 44, 0.78); --panel-soft-background: rgba(255, 255, 255, 0.04); --surface-background: rgba(8, 14, 23, 0.7); --surface-hover-background: rgba(16, 30, 49, 0.92); --surface-border: rgba(255, 255, 255, 0.12); --surface-border-soft: rgba(255, 255, 255, 0.08); --input-background: rgba(255, 255, 255, 0.06); --input-border: rgba(255, 255, 255, 0.16); --placeholder-color: rgba(239, 243, 255, 0.5); --accent-color: #81f4d7; --accent-color-soft: rgba(129, 244, 215, 0.1); --accent-gradient: linear-gradient(135deg, #81f4d7, #55a8ff); --accent-gradient-hover: linear-gradient(135deg, #9bf7e0, #7abaff); --link-color: #9bd5ff; --badge-background: rgba(255, 255, 255, 0.08); --incoming-bubble-background: #dcefff; --incoming-bubble-text: #0f2540; --outgoing-bubble-background: #def7dd; --outgoing-bubble-text: #153420; --danger-background: #d94b53; --shadow-color: rgba(0, 0, 0, 0.28); color-scheme: dark; } } :root[data-theme='dark'] { --page-text: #eff3ff; --page-text-muted: rgba(231, 238, 249, 0.72); --page-text-soft: rgba(231, 238, 249, 0.84); --page-background: radial-gradient(circle at top left, rgba(129, 244, 215, 0.18), transparent 28%), radial-gradient(circle at top right, rgba(85, 168, 255, 0.18), transparent 24%), linear-gradient(180deg, #08111d 0%, #101d31 100%); --panel-background: rgba(9, 16, 28, 0.78); --panel-alt-background: rgba(15, 27, 44, 0.78); --panel-soft-background: rgba(255, 255, 255, 0.04); --surface-background: rgba(8, 14, 23, 0.7); --surface-hover-background: rgba(16, 30, 49, 0.92); --surface-border: rgba(255, 255, 255, 0.12); --surface-border-soft: rgba(255, 255, 255, 0.08); --input-background: rgba(255, 255, 255, 0.06); --input-border: rgba(255, 255, 255, 0.16); --placeholder-color: rgba(239, 243, 255, 0.5); --accent-color: #81f4d7; --accent-color-soft: rgba(129, 244, 215, 0.1); --accent-gradient: linear-gradient(135deg, #81f4d7, #55a8ff); --accent-gradient-hover: linear-gradient(135deg, #9bf7e0, #7abaff); --link-color: #9bd5ff; --badge-background: rgba(255, 255, 255, 0.08); --incoming-bubble-background: #dcefff; --incoming-bubble-text: #0f2540; --outgoing-bubble-background: #def7dd; --outgoing-bubble-text: #153420; --danger-background: #d94b53; --shadow-color: rgba(0, 0, 0, 0.28); color-scheme: dark; } :root[data-theme='light'] { color-scheme: light; } html, body { min-height: 100dvh; } body { margin: 0; color: var(--page-text); font-family: 'Space Grotesk', system-ui, sans-serif; background: var(--page-background); background-attachment: fixed; transition: background 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease; } button, input, textarea { font: inherit; } .text-secondary { color: var(--page-text-muted) !important; } .text-bg-dark { color: var(--page-text) !important; background: var(--badge-background) !important; } .btn-outline-light { color: var(--page-text); border-color: var(--surface-border); } .btn-outline-light:hover, .btn-outline-light:focus-visible { color: var(--page-text); border-color: var(--surface-border); background: var(--panel-soft-background); } .btn-outline-secondary { color: var(--page-text-muted); border-color: var(--surface-border); } .btn-outline-secondary:hover, .btn-outline-secondary:focus-visible { color: var(--page-text); border-color: var(--surface-border); background: var(--panel-soft-background); } .btn-outline-primary { color: var(--link-color); border-color: color-mix(in srgb, var(--link-color) 32%, transparent); } .btn-primary { border-color: transparent; background: var(--accent-gradient); } .alert-danger, .alert-success, .alert-warning { border: 1px solid var(--surface-border); }