Files
openclaw/ui/src/styles/base.css
NianJiu b01a54de6f fix(ui): restore sidebar session picker interactivity above desktop workbench (#92705)
* fix(ui): restore sidebar session picker interactivity above desktop workbench

The collapsed sidebar session picker was covered by the chat content
area when the workspace rail was visible at wider viewports. Two
issues caused this:

1. .sidebar-session-select--collapsed .chat-session-picker used
   var(--z-dropdown) which was never defined, creating an invalid
   z-index declaration (falls back to auto).

2. .shell-nav and .content--chat are grid siblings with equal
   z-index (auto), and .content--chat (later DOM) paints above
   .shell-nav, covering the session picker that extends from the
   nav column into the content column.

Fix: add position:relative + z-index:10 to .shell-nav so it stacks
above .content--chat; change overflow from hidden to visible so
the session picker extends beyond the nav rail; replace undefined
var(--z-dropdown) with z-index:100.

* fix(ui): keep sidebar picker z-index tokenized

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-06-14 01:13:29 +08:00

782 lines
19 KiB
CSS

:root {
/* Background - Deep, rich dark with layered depth */
--bg: #0e1015;
--bg-accent: #13151b;
--bg-elevated: #191c24;
--bg-hover: #1f2330;
--bg-muted: #1f2330;
/* Card / Surface - Clear hierarchy between levels */
--card: #161920;
--card-foreground: #f0f0f2;
--card-highlight: rgba(255, 255, 255, 0.04);
--popover: #191c24;
--popover-foreground: #f0f0f2;
/* Panel */
--panel: #0e1015;
--panel-strong: #191c24;
--panel-hover: #1f2330;
--chrome: rgba(14, 16, 21, 0.96);
--chrome-strong: rgba(14, 16, 21, 0.98);
/* Text - Clean contrast */
--text: #d4d4d8;
--text-strong: #f4f4f5;
--chat-text: #d4d4d8;
--muted: #8b8b94;
--muted-strong: #898990;
--muted-foreground: #8b8b94;
/* Border - Whisper-thin, barely there */
--border: #1e2028;
--border-strong: #2e3040;
--border-hover: #3e4050;
--input: #1e2028;
--ring: #ff5c5c;
/* Accent - Punchy signature red */
--accent: #ff5c5c;
--accent-hover: #ff7070;
--accent-muted: #ff5c5c;
--accent-subtle: rgba(255, 92, 92, 0.1);
--accent-foreground: #fafafa;
--accent-glow: rgba(255, 92, 92, 0.2);
--selection-bg: #005fcc;
--selection-fg: #ffffff;
--primary: #ff5c5c;
--primary-foreground: #ffffff;
/* Secondary */
--secondary: #161920;
--secondary-foreground: #f0f0f2;
--accent-2: #14b8a6;
--accent-2-muted: rgba(20, 184, 166, 0.7);
--accent-2-subtle: rgba(20, 184, 166, 0.1);
/* Semantic */
--ok: #22c55e;
--ok-muted: rgba(34, 197, 94, 0.75);
--ok-subtle: rgba(34, 197, 94, 0.08);
--destructive: #ef4444;
--destructive-foreground: #fafafa;
--warn: #f59e0b;
--warn-muted: rgba(245, 158, 11, 0.75);
--warn-subtle: rgba(245, 158, 11, 0.08);
--danger: #ef4444;
--danger-muted: rgba(239, 68, 68, 0.75);
--danger-subtle: rgba(239, 68, 68, 0.08);
--info: #3b82f6;
/* Focus */
--focus: rgba(255, 92, 92, 0.2);
--focus-ring: 0 0 0 2px var(--bg), 0 0 0 3px color-mix(in srgb, var(--ring) 80%, transparent);
--focus-glow: 0 0 0 2px var(--bg), 0 0 0 3px var(--ring), 0 0 16px var(--accent-glow);
/* Grid */
--grid-line: rgba(255, 255, 255, 0.03);
/* Theme transition */
--theme-switch-x: 50%;
--theme-switch-y: 50%;
/* Typography */
--mono:
"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
--font-display: var(--font-body);
--control-ui-text-scale: 1;
--control-ui-text-xs: calc(11px * var(--control-ui-text-scale));
--control-ui-text-sm: calc(12px * var(--control-ui-text-scale));
--control-ui-text-md: calc(14px * var(--control-ui-text-scale));
--control-ui-text-lg: calc(16px * var(--control-ui-text-scale));
--control-ui-input-text-size: max(16px, calc(14px * var(--control-ui-text-scale)));
--chat-text-size: var(--control-ui-text-md);
/* Shadows - Subtle, layered depth */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.25);
--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.3);
--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.4);
--shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.5);
--shadow-glow: 0 0 24px var(--accent-glow);
/* Radii - Slightly larger for modern feel */
--radius-sm: 6px;
--radius-md: 10px;
--radius-lg: 14px;
--radius-xl: 20px;
--radius-full: 9999px;
--radius: 10px;
/* Transitions - Crisp and responsive */
--ease-out: cubic-bezier(0.16, 1, 0.3, 1);
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
--duration-fast: 100ms;
--duration-normal: 180ms;
--duration-slow: 300ms;
--safe-area-top: env(safe-area-inset-top, 0px);
--safe-area-right: env(safe-area-inset-right, 0px);
--safe-area-bottom: env(safe-area-inset-bottom, 0px);
--safe-area-left: env(safe-area-inset-left, 0px);
/* Layering */
--z-dropdown: 100;
color-scheme: dark;
}
/* Light theme tokens apply to every light-mode family. */
:root[data-theme-mode="light"] {
--bg: #f8f9fa;
--bg-accent: #f1f3f5;
--bg-elevated: #ffffff;
--bg-hover: #eceef0;
--bg-muted: #eceef0;
--bg-content: #f1f3f5;
--card: #ffffff;
--card-foreground: #1a1a1e;
--card-highlight: rgba(0, 0, 0, 0.02);
--popover: #ffffff;
--popover-foreground: #1a1a1e;
--panel: #f8f9fa;
--panel-strong: #f1f3f5;
--panel-hover: #e6e8eb;
--chrome: rgba(248, 249, 250, 0.96);
--chrome-strong: rgba(248, 249, 250, 0.98);
--text: #3c3c43;
--text-strong: #1a1a1e;
--chat-text: #3c3c43;
--muted: #6a6a6f;
--muted-strong: #545458;
--muted-foreground: #6a6a6f;
--border: #e5e5ea;
--border-strong: #d1d1d6;
--border-hover: #aeaeb2;
--input: #e5e5ea;
--accent: #dc2626;
--accent-hover: #ef4444;
--accent-muted: #dc2626;
--accent-subtle: rgba(220, 38, 38, 0.08);
--accent-foreground: #ffffff;
--accent-glow: rgba(220, 38, 38, 0.1);
--primary: #dc2626;
--primary-foreground: #ffffff;
--secondary: #f1f3f5;
--secondary-foreground: #3c3c43;
--accent-2: #0d9488;
--accent-2-muted: rgba(13, 148, 136, 0.75);
--accent-2-subtle: rgba(13, 148, 136, 0.08);
--ok: #15803d;
--ok-muted: rgba(21, 128, 61, 0.75);
--ok-subtle: rgba(21, 128, 61, 0.08);
--destructive: #dc2626;
--destructive-foreground: #fafafa;
--warn: #b45309;
--warn-muted: rgba(180, 83, 9, 0.75);
--warn-subtle: rgba(180, 83, 9, 0.08);
--danger: #dc2626;
--danger-muted: rgba(220, 38, 38, 0.75);
--danger-subtle: rgba(220, 38, 38, 0.08);
--info: #2563eb;
--focus: rgba(220, 38, 38, 0.15);
--focus-ring: 0 0 0 2px var(--bg), 0 0 0 3px color-mix(in srgb, var(--ring) 70%, transparent);
--focus-glow: 0 0 0 2px var(--bg), 0 0 0 3px var(--ring), 0 0 12px var(--accent-glow);
--grid-line: rgba(0, 0, 0, 0.04);
/* Light shadows - Subtle, clean */
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
--shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.08);
--shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.1);
--shadow-glow: 0 0 20px var(--accent-glow);
color-scheme: light;
}
/* Scrollbar - visible on light backgrounds */
:root[data-theme-mode="light"]::-webkit-scrollbar-thumb,
:root[data-theme-mode="light"] ::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.15);
}
:root[data-theme-mode="light"]::-webkit-scrollbar-thumb:hover,
:root[data-theme-mode="light"] ::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.25);
}
/* Theme families override accent tokens while keeping shared surfaces/layout. */
:root[data-theme="openknot"] {
/*
* Accent — crimson red on true black
*
* WCAG 2.1 AA audit (bg = #080808, relative luminance ≈ 0.003):
* --accent #e5243b L ≈ 0.118 contrast ≈ 5.8:1 AA text ✓
* --accent-hover #f03e52 L ≈ 0.163 contrast ≈ 7.2:1 ✓
* --primary-foreground #fafafa on #e5243b button: 4.6:1 AA ✓
* focus-ring at 70% opacity: ≈ 3.4:1 against bg ✓ (non-text 3:1 required)
*/
--ring: #e5243b;
--accent: #e5243b;
--accent-hover: #f03e52;
--accent-muted: #e5243b;
--accent-subtle: rgba(229, 36, 59, 0.12);
--accent-glow: rgba(229, 36, 59, 0.24);
--primary: #e5243b;
--primary-foreground: #fafafa;
/* Focus — crimson ring */
--focus: rgba(229, 36, 59, 0.2);
--focus-ring: 0 0 0 2px var(--bg), 0 0 0 3px color-mix(in srgb, var(--ring) 70%, transparent);
--focus-glow: 0 0 0 2px var(--bg), 0 0 0 3px var(--ring), 0 0 16px var(--accent-glow);
/* Surfaces — true black canvas */
--bg: #080808;
--bg-accent: #0d0d0f;
--bg-elevated: #141416;
--bg-hover: #1a1a1e;
--bg-muted: #1a1a1e;
--card: #111113;
--card-foreground: #f0f0f2;
--card-highlight: rgba(255, 255, 255, 0.03);
--popover: #141416;
--popover-foreground: #f0f0f2;
--panel: #080808;
--panel-strong: #141416;
--panel-hover: #1a1a1e;
--chrome: rgba(8, 8, 8, 0.96);
--chrome-strong: rgba(8, 8, 8, 0.98);
/* Text — high contrast on black */
--text: #e0e0e2;
--text-strong: #f5f5f7;
--chat-text: #e0e0e2;
--muted: #8a8a94;
--muted-strong: #888892;
--muted-foreground: #8a8a94;
/* Borders — whisper-thin, barely visible */
--border: #1a1a1e;
--border-strong: #2a2a30;
--border-hover: #3a3a42;
--input: #1a1a1e;
--secondary: #111113;
--secondary-foreground: #f0f0f2;
--accent-2: #8b1a2b;
--accent-2-muted: rgba(139, 26, 43, 0.7);
--accent-2-subtle: rgba(139, 26, 43, 0.12);
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.5);
--shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.6);
--grid-line: rgba(255, 255, 255, 0.025);
}
:root[data-theme="openknot-light"] {
/*
* Accent — deep red on cool white
*
* WCAG 2.1 AA audit (bg = #f9f9fb, relative luminance ≈ 0.941):
* --accent #c41e30 L ≈ 0.078 contrast ≈ 7.5:1 AAA text ✓
* --accent-hover #a8192a L ≈ 0.054 contrast ≈ 9.1:1 ✓
* --primary-foreground #ffffff on #c41e30 button: 5.0:1 AA ✓
* focus-ring at 60% opacity: ≈ 3.2:1 against bg ✓ (non-text 3:1 required)
*/
--ring: #c41e30;
--accent: #c41e30;
--accent-hover: #a8192a;
--accent-muted: #c41e30;
--accent-subtle: rgba(196, 30, 48, 0.08);
--accent-glow: rgba(196, 30, 48, 0.12);
--primary: #c41e30;
--primary-foreground: #ffffff;
/* Surfaces — cool white with subtle warmth */
--bg: #f9f9fb;
--bg-accent: #f2f2f5;
--bg-elevated: #ffffff;
--bg-hover: #eaeaef;
--bg-muted: #eaeaef;
--bg-content: #f2f2f5;
--card: #ffffff;
--card-foreground: #18181b;
--card-highlight: rgba(0, 0, 0, 0.02);
--popover: #ffffff;
--popover-foreground: #18181b;
--panel: #f9f9fb;
--panel-strong: #f2f2f5;
--panel-hover: #e4e4ea;
--chrome: rgba(249, 249, 251, 0.96);
--chrome-strong: rgba(249, 249, 251, 0.98);
/* Text — crisp dark on white */
--text: #3a3a42;
--text-strong: #18181b;
--chat-text: #3a3a42;
--muted: #6a6a72;
--muted-strong: #52525a;
--muted-foreground: #6a6a72;
/* Borders — clean, minimal */
--border: #e2e2e8;
--border-strong: #ccccd4;
--border-hover: #adadb8;
--input: #e2e2e8;
--secondary: #f2f2f5;
--secondary-foreground: #3a3a42;
--accent-2: #7a1420;
--accent-2-muted: rgba(122, 20, 32, 0.75);
--accent-2-subtle: rgba(122, 20, 32, 0.08);
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06);
--shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.08);
--grid-line: rgba(0, 0, 0, 0.04);
}
:root[data-theme="dash"] {
/*
* Accent — chocolate brown on deep cocoa
*
* WCAG 2.1 AA audit (bg = #1a1210, relative luminance ≈ 0.0069):
* --accent #b47840 L ≈ 0.235 contrast ≈ 5.0:1 AA text ✓ (floor: #a8703c → 4.4:1, fails)
* --accent-hover #c8885a L ≈ 0.306 contrast ≈ 6.3:1 ✓
* --primary-foreground #1a1210 on #b47840 button: 5.0:1 AA ✓
* focus-ring at 80% opacity: ≈ 3.5:1 against bg ✓ (non-text 3:1 required)
*/
--ring: #b47840;
--accent: #b47840;
--accent-hover: #c8885a;
--accent-muted: #b47840;
--accent-subtle: rgba(180, 120, 64, 0.16);
--accent-glow: rgba(180, 120, 64, 0.24);
--primary: #b47840;
--primary-foreground: #1a1210;
/* Focus — match chocolate accent, slightly higher ring opacity for dark bg visibility */
--focus: rgba(180, 120, 64, 0.2);
--focus-ring: 0 0 0 2px var(--bg), 0 0 0 3px color-mix(in srgb, var(--ring) 80%, transparent);
--focus-glow: 0 0 0 2px var(--bg), 0 0 0 3px var(--ring), 0 0 16px var(--accent-glow);
/* Surfaces — deep cocoa tones */
--bg: #1a1210;
--bg-accent: #201816;
--bg-elevated: #28201c;
--bg-hover: #302822;
--bg-muted: #302822;
--card: #221a16;
--card-foreground: #ece0d8;
--card-highlight: rgba(255, 240, 225, 0.04);
--popover: #28201c;
--popover-foreground: #ece0d8;
--panel: #1a1210;
--panel-strong: #28201c;
--panel-hover: #302822;
--chrome: rgba(26, 18, 16, 0.96);
--chrome-strong: rgba(26, 18, 16, 0.98);
--text: #d8c8b8;
--text-strong: #f0e4da;
--chat-text: #d8c8b8;
--muted: #9a8878;
--muted-strong: #8a7868;
--muted-foreground: #9a8878;
--border: #302418;
--border-strong: #443828;
--border-hover: #5a4c3a;
--input: #302418;
--secondary: #221a16;
--secondary-foreground: #ece0d8;
--accent-2: #a88050;
--accent-2-muted: rgba(168, 128, 80, 0.7);
--accent-2-subtle: rgba(168, 128, 80, 0.12);
--shadow-sm: 0 1px 2px rgba(10, 6, 4, 0.35);
--shadow-md: 0 4px 16px rgba(10, 6, 4, 0.45);
--shadow-lg: 0 12px 32px rgba(10, 6, 4, 0.55);
--grid-line: rgba(255, 240, 225, 0.03);
}
:root[data-theme="dash-light"] {
/*
* Accent — deep chocolate on warm parchment
*
* WCAG 2.1 AA audit (bg = #f7f2ec, relative luminance ≈ 0.893):
* --accent #6e4828 L ≈ 0.081 contrast ≈ 7.2:1 AAA text ✓
* --accent-hover #5c3c20 L ≈ 0.054 contrast ≈ 8.9:1 ✓
* --primary-foreground #ffffff on #6e4828 button: 8.0:1 AAA ✓
* focus-ring at 70% opacity: ≈ 3.4:1 against parchment bg ✓
*/
--ring: #6e4828;
--accent: #6e4828;
--accent-hover: #5c3c20;
--accent-muted: #6e4828;
--accent-subtle: rgba(110, 72, 40, 0.12);
--accent-glow: rgba(110, 72, 40, 0.16);
--primary: #6e4828;
--primary-foreground: #ffffff;
/* Surfaces — warm parchment tones */
--bg: #f7f2ec;
--bg-accent: #f0e8e0;
--bg-elevated: #ffffff;
--bg-hover: #e8ddd2;
--bg-muted: #e8ddd2;
--bg-content: #f0e8e0;
--card: #ffffff;
--card-foreground: #2c2118;
--card-highlight: rgba(80, 50, 20, 0.02);
--popover: #ffffff;
--popover-foreground: #2c2118;
--panel: #f7f2ec;
--panel-strong: #f0e8e0;
--panel-hover: #e0d4c8;
--chrome: rgba(247, 242, 236, 0.96);
--chrome-strong: rgba(247, 242, 236, 0.98);
--text: #4a3828;
--text-strong: #2c2118;
--chat-text: #4a3828;
--muted: #756050;
--muted-strong: #604838;
--muted-foreground: #756050;
--border: #ddd0c2;
--border-strong: #c8b8a6;
--border-hover: #b0a090;
--input: #ddd0c2;
--secondary: #f0e8e0;
--secondary-foreground: #4a3828;
--accent-2: #6a4e30;
--accent-2-muted: rgba(106, 78, 48, 0.75);
--accent-2-subtle: rgba(106, 78, 48, 0.1);
--shadow-sm: 0 1px 2px rgba(60, 40, 20, 0.06);
--shadow-md: 0 4px 12px rgba(60, 40, 20, 0.08);
--shadow-lg: 0 12px 28px rgba(60, 40, 20, 0.1);
--grid-line: rgba(80, 50, 20, 0.04);
}
* {
box-sizing: border-box;
}
html,
body {
height: 100%;
}
body {
margin: 0;
font: 400 14px/1.55 var(--font-body);
letter-spacing: -0.01em;
background: var(--bg);
color: var(--text);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@media (min-width: 1600px) {
body {
font-size: 15px;
}
}
/* Theme transition */
@keyframes theme-circle-transition {
0% {
clip-path: circle(0% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%));
}
100% {
clip-path: circle(150% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%));
}
}
html.theme-transition {
view-transition-name: theme;
}
html.theme-transition::view-transition-old(theme) {
mix-blend-mode: normal;
animation: none;
z-index: 1;
}
html.theme-transition::view-transition-new(theme) {
mix-blend-mode: normal;
z-index: 2;
animation: theme-circle-transition 0.4s var(--ease-out) forwards;
}
@media (prefers-reduced-motion: reduce) {
html.theme-transition::view-transition-old(theme),
html.theme-transition::view-transition-new(theme) {
animation: none !important;
}
}
openclaw-app {
display: block;
position: relative;
z-index: 1;
min-height: 100vh;
}
@media (display-mode: standalone) {
html,
body {
width: 100%;
height: 100%;
overflow: hidden;
overscroll-behavior: none;
}
@supports (height: 100dvh) {
html,
body {
height: 100dvh;
}
}
body {
position: fixed;
inset: 0;
padding-top: var(--safe-area-top);
padding-right: var(--safe-area-right);
padding-bottom: var(--safe-area-bottom);
padding-left: var(--safe-area-left);
}
openclaw-app {
width: 100%;
height: 100%;
min-width: 0;
min-height: 0;
overflow: hidden;
}
}
a {
color: var(--accent);
text-decoration: underline;
text-underline-offset: 2px;
}
a:hover {
text-decoration-thickness: 2px;
}
button,
input,
textarea,
select {
font: inherit;
color: inherit;
}
::selection {
background: var(--selection-bg);
color: var(--selection-fg);
}
/* Scrollbar styling - Minimal, barely visible */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.08);
border-radius: var(--radius-full);
}
::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.14);
}
/* Animations - Polished with spring feel */
@keyframes rise {
from {
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes scale-in {
from {
opacity: 0;
transform: scale(0.95);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes dashboard-enter {
from {
opacity: 0;
transform: translateY(12px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes shimmer {
0% {
background-position: -200% 0;
}
100% {
background-position: 200% 0;
}
}
/* Skeleton loading primitives */
.skeleton {
background: linear-gradient(90deg, var(--bg-muted) 25%, var(--bg-hover) 50%, var(--bg-muted) 75%);
background-size: 200% 100%;
animation: shimmer 1.5s ease-in-out infinite;
border-radius: var(--radius-md);
}
.skeleton-line {
height: 14px;
border-radius: var(--radius-sm);
}
.skeleton-line--short {
width: 40%;
}
.skeleton-line--medium {
width: 65%;
}
.skeleton-line--long {
width: 85%;
}
.skeleton-stat {
height: 28px;
width: 60px;
border-radius: var(--radius-sm);
}
.skeleton-block {
height: 48px;
border-radius: var(--radius-md);
}
@keyframes pulse-subtle {
0%,
100% {
opacity: 1;
}
50% {
opacity: 0.7;
}
}
@keyframes glow-pulse {
0%,
100% {
box-shadow: 0 0 0 transparent;
}
50% {
box-shadow: 0 0 20px var(--accent-glow);
}
}
@media (prefers-reduced-motion: reduce) {
.glow-pulse,
[class*="glow-pulse"] {
animation: none !important;
}
}
/* Stagger animation delays for grouped elements */
.stagger-1 {
animation-delay: 0ms;
}
.stagger-2 {
animation-delay: 50ms;
}
.stagger-3 {
animation-delay: 100ms;
}
.stagger-4 {
animation-delay: 150ms;
}
.stagger-5 {
animation-delay: 200ms;
}
.stagger-6 {
animation-delay: 250ms;
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
/* Focus visible styles */
:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 2px;
}
:focus:not(:focus-visible) {
outline: none;
}