@import "tailwindcss"; @theme { --font-sans: "Manrope", "Noto Sans SC", ui-sans-serif, system-ui, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace; --color-zinc-50: #111827; --color-zinc-100: #1f2937; --color-zinc-200: #334155; --color-zinc-300: #334155; --color-zinc-400: #475569; --color-zinc-500: #64748b; --color-zinc-600: #94a3b8; --color-zinc-700: #cbd5e1; --color-zinc-800: #e2e8f0; --color-zinc-900: #f8fafc; --color-zinc-950: #fcfdff; --color-indigo-300: #fdba74; --color-indigo-400: #fb923c; --color-indigo-500: #f97316; --color-indigo-600: #ea580c; --color-indigo-700: #c2410c; --color-indigo-800: #9a3412; --color-emerald-300: #6ee7b7; --color-emerald-400: #34d399; --color-emerald-500: #10b981; --color-red-400: #f87171; --color-red-500: #ef4444; --color-amber-300: #fcd34d; --color-amber-400: #fbbf24; --color-amber-500: #f59e0b; --color-orange-400: #fb923c; --color-sky-300: #7dd3fc; --color-sky-400: #38bdf8; --color-sky-500: #0ea5e9; --color-violet-300: #c4b5fd; --color-violet-400: #a78bfa; --color-violet-500: #8b5cf6; --color-rose-300: #fda4af; --color-rose-500: #f43f5e; --color-fuchsia-400: #e879f9; } html { background: var(--color-zinc-950); --app-bg-spot-a: rgb(249 115 22 / 0.025); --app-bg-spot-b: rgb(15 23 42 / 0.025); --app-bg-base-top: rgb(248 250 252 / 0.985); --app-bg-base-bottom: rgb(241 245 249 / 0.98); --shell-spot-a: rgb(249 115 22 / 0.03); --shell-spot-b: rgb(148 163 184 / 0.05); --main-surface-top: rgb(255 255 255 / 0.5); --main-surface-mid: rgb(255 255 255 / 0.22); --main-surface-bottom: rgb(255 255 255 / 0.08); --header-bg-a: rgb(255 255 255 / 0.92); --header-bg-b: rgb(248 250 252 / 0.88); --header-overlay-a: rgb(255 255 255 / 0.18); --header-overlay-b: rgb(255 255 255 / 0.06); --sidebar-bg-a: rgb(255 255 255 / 0.9); --sidebar-bg-b: rgb(248 250 252 / 0.86); --sidebar-overlay-a: rgb(255 255 255 / 0.14); --sidebar-overlay-b: rgb(255 255 255 / 0.04); --sidebar-edge: rgb(226 232 240 / 0.9); --sidebar-section-a: rgb(255 255 255 / 0.62); --sidebar-section-b: rgb(248 250 252 / 0.44); --active-bg: rgb(249 115 22 / 0.08); --active-ring: rgb(249 115 22 / 0.18); --card-bg-a: rgb(255 255 255 / 0.82); --card-bg-b: rgb(248 250 252 / 0.7); --card-topline: rgb(255 255 255 / 0.72); --card-inner-highlight: rgb(255 255 255 / 0.9); --card-shadow: rgb(15 23 42 / 0.045); --card-subtle-a: rgb(255 255 255 / 0.6); --card-subtle-b: rgb(248 250 252 / 0.4); --text-primary: rgb(15 23 42 / 0.96); --text-secondary: rgb(51 65 85 / 0.94); --text-muted: rgb(71 85 105 / 0.9); --text-subtle: rgb(100 116 139 / 0.9); --button-start: #fb923c; --button-end: #f97316; --button-shadow: rgb(249 115 22 / 0.16); --button-neutral-bg: rgb(226 232 240 / 0.9); --button-neutral-bg-hover: rgb(203 213 225 / 0.96); --button-neutral-border: rgb(203 213 225 / 0.98); --button-neutral-text: rgb(51 65 85 / 0.96); --button-primary-bg: rgb(255 237 213 / 0.96); --button-primary-bg-hover: rgb(255 224 189 / 0.98); --button-primary-border: rgb(251 146 60 / 0.34); --button-primary-text: rgb(154 52 18 / 0.98); --button-success-bg: rgb(220 252 231 / 0.96); --button-success-bg-hover: rgb(187 247 208 / 0.98); --button-success-border: rgb(52 211 153 / 0.34); --button-success-text: rgb(6 95 70 / 0.98); --button-warning-bg: rgb(254 243 199 / 0.98); --button-warning-bg-hover: rgb(253 230 138 / 0.98); --button-warning-border: rgb(245 158 11 / 0.34); --button-warning-text: rgb(146 64 14 / 0.98); --button-danger-bg: rgb(255 228 230 / 0.98); --button-danger-bg-hover: rgb(254 205 211 / 0.98); --button-danger-border: rgb(244 63 94 / 0.28); --button-danger-text: rgb(159 18 57 / 0.98); --brand-badge-start: #ffb36b; --brand-badge-mid: #ff8552; --brand-badge-end: #d9481c; --brand-badge-shadow: rgb(234 88 12 / 0.2); --card-icon-inset: rgb(255 255 255 / 0.18); --status-online-bg: rgb(16 185 129 / 0.1); --status-online-border: rgb(16 185 129 / 0.2); --status-online-text: var(--color-emerald-500); --status-online-dot: var(--color-emerald-500); --status-online-glow: rgb(16 185 129 / 0.8); --status-offline-bg: rgb(239 68 68 / 0.1); --status-offline-border: rgb(239 68 68 / 0.2); --status-offline-text: var(--color-red-500); --status-offline-dot: var(--color-red-500); --status-offline-glow: rgb(239 68 68 / 0.8); --token-indicator-glow: rgb(240 90 40 / 0.38); --topology-node-highlight-shadow: rgb(245 158 11 / 0.2); --topology-node-base-shadow: rgb(0 0 0 / 0.6); --topology-node-hover-shadow: rgb(255 255 255 / 0.05); --topology-node-inner-border: rgb(255 255 255 / 0.05); --topology-node-highlight-border: rgb(245 158 11 / 0.8); --topology-online-glow: rgb(16 185 129 / 0.8); --topology-line-highlight-track: rgb(245 158 11 / 0.15); --topology-line-track: rgb(161 161 170 / 0.05); --topology-line-highlight-flow: rgb(245 158 11 / 0.9); --topology-line-flow: rgb(161 161 170 / 0.5); --topology-tooltip-shadow: rgb(0 0 0 / 0.5); --particle-glow-start: rgba(255, 243, 233, 0.30); --particle-glow-mid: rgba(255, 179, 107, 0.16); --particle-glow-end: rgba(255, 226, 209, 0.55); --particle-dot-rgb: 217, 72, 28; --particle-dot-opacity-floor: 0.08; --particle-dot-opacity-scale: 0.65; --particle-line-rgb: 164, 58, 24; --particle-line-opacity-scale: 0.85; --ekg-bar-start: rgb(245 158 11 / 0.7); --ekg-bar-end: rgb(251 146 60 / 0.8); --overlay-scrim-soft: rgb(15 23 42 / 0.4); --overlay-scrim-medium: rgb(15 23 42 / 0.55); --overlay-scrim-strong: rgb(15 23 42 / 0.6); --media-surface: rgb(15 23 42 / 0.2); --media-surface-strong: rgb(15 23 42 / 0.3); --media-border: var(--color-zinc-800); --notice-warning-bg: rgb(254 243 199 / 0.72); --notice-warning-border: rgb(245 158 11 / 0.28); --notice-warning-text: rgb(146 64 14 / 0.96); --notice-danger-bg: rgb(255 228 230 / 0.72); --notice-danger-border: rgb(244 63 94 / 0.24); --notice-danger-text: rgb(159 18 57 / 0.96); --pill-warning-bg: rgb(254 243 199 / 0.82); --pill-warning-border: rgb(245 158 11 / 0.24); --pill-warning-text: rgb(146 64 14 / 0.96); --pill-danger-bg: rgb(255 228 230 / 0.8); --pill-danger-border: rgb(244 63 94 / 0.22); --pill-danger-text: rgb(159 18 57 / 0.96); --pill-success-bg: rgb(220 252 231 / 0.82); --pill-success-border: rgb(52 211 153 / 0.24); --pill-success-text: rgb(6 95 70 / 0.96); --pill-info-bg: rgb(224 242 254 / 0.82); --pill-info-border: rgb(14 165 233 / 0.22); --pill-info-text: rgb(3 105 161 / 0.96); --pill-accent-bg: rgb(237 233 254 / 0.82); --pill-accent-border: rgb(139 92 246 / 0.22); --pill-accent-text: rgb(109 40 217 / 0.96); --pill-neutral-bg: rgb(226 232 240 / 0.82); --pill-neutral-border: rgb(203 213 225 / 0.24); --pill-neutral-text: rgb(71 85 105 / 0.96); --code-danger-text: rgb(190 24 93 / 0.96); --code-warning-text: rgb(180 83 9 / 0.96); --chip-bg: rgb(226 232 240 / 0.82); --chip-bg-hover: rgb(203 213 225 / 0.92); --chip-border: rgb(203 213 225 / 0.96); --chip-text: rgb(51 65 85 / 0.96); --chip-active-bg: rgb(255 237 213 / 0.96); --chip-active-border: rgb(251 146 60 / 0.45); --chip-active-text: rgb(154 52 18 / 0.98); --chip-group-bg: rgb(255 255 255 / 0.55); --chip-group-border: rgb(226 232 240 / 0.95); --radius-card: 16px; --radius-subtle: 10px; --radius-panel: 14px; --radius-canvas: 10px; --radius-button: 14px; --radius-chip: 14px; --radius-section: 18px; --radius-badge: 14px; } html.theme-dark { --color-zinc-50: #f8fafc; --color-zinc-100: #e2e8f0; --color-zinc-200: #d7e1ee; --color-zinc-300: #b8c6d8; --color-zinc-400: #90a4bc; --color-zinc-500: #6f839b; --color-zinc-600: #516278; --color-zinc-700: #243244; --color-zinc-800: #162131; --color-zinc-900: #101827; --color-zinc-950: #0d1522; --color-indigo-300: #f8c58d; --color-indigo-400: #f1a561; --color-indigo-500: #e8843a; --color-indigo-600: #d46a23; --color-indigo-700: #af4f16; --color-indigo-800: #8d3f13; --app-bg-spot-a: rgb(249 115 22 / 0.035); --app-bg-spot-b: rgb(56 189 248 / 0.05); --app-bg-base-top: rgb(9 16 28 / 0.995); --app-bg-base-bottom: rgb(14 22 36 / 0.992); --shell-spot-a: rgb(249 115 22 / 0.03); --shell-spot-b: rgb(96 165 250 / 0.04); --main-surface-top: rgb(255 255 255 / 0.026); --main-surface-mid: rgb(255 255 255 / 0.016); --main-surface-bottom: rgb(255 255 255 / 0.008); --header-bg-a: rgb(14 21 34 / 0.92); --header-bg-b: rgb(11 18 29 / 0.9); --header-overlay-a: rgb(255 255 255 / 0.03); --header-overlay-b: rgb(255 255 255 / 0.01); --sidebar-bg-a: rgb(13 20 33 / 0.93); --sidebar-bg-b: rgb(10 16 27 / 0.9); --sidebar-overlay-a: rgb(255 255 255 / 0.022); --sidebar-overlay-b: rgb(255 255 255 / 0.008); --sidebar-edge: rgb(71 85 105 / 0.64); --sidebar-section-a: rgb(18 30 49 / 0.74); --sidebar-section-b: rgb(12 20 34 / 0.58); --active-bg: rgb(232 132 58 / 0.11); --active-ring: rgb(241 165 97 / 0.22); --card-bg-a: rgb(17 28 46 / 0.82); --card-bg-b: rgb(11 20 34 / 0.72); --card-topline: rgb(255 255 255 / 0.065); --card-inner-highlight: rgb(255 255 255 / 0.045); --card-shadow: rgb(0 0 0 / 0.24); --card-subtle-a: rgb(22 32 50 / 0.62); --card-subtle-b: rgb(13 21 35 / 0.48); --text-primary: rgb(241 245 249 / 0.96); --text-secondary: rgb(215 227 241 / 0.94); --text-muted: rgb(159 176 196 / 0.92); --text-subtle: rgb(129 146 167 / 0.9); --button-start: #ee9852; --button-end: #d96b25; --button-shadow: rgb(217 107 37 / 0.18); --button-neutral-bg: rgb(36 49 69 / 0.9); --button-neutral-bg-hover: rgb(48 63 87 / 0.96); --button-neutral-border: rgb(93 109 135 / 0.82); --button-neutral-text: rgb(226 232 240 / 0.96); --button-primary-bg: rgb(232 132 58 / 0.16); --button-primary-bg-hover: rgb(232 132 58 / 0.24); --button-primary-border: rgb(232 132 58 / 0.3); --button-primary-text: rgb(255 228 205 / 0.96); --button-success-bg: rgb(16 185 129 / 0.14); --button-success-bg-hover: rgb(16 185 129 / 0.22); --button-success-border: rgb(52 211 153 / 0.24); --button-success-text: rgb(209 250 229 / 0.96); --button-warning-bg: rgb(245 158 11 / 0.14); --button-warning-bg-hover: rgb(245 158 11 / 0.22); --button-warning-border: rgb(251 191 36 / 0.24); --button-warning-text: rgb(254 243 199 / 0.96); --button-danger-bg: rgb(244 63 94 / 0.14); --button-danger-bg-hover: rgb(244 63 94 / 0.22); --button-danger-border: rgb(251 113 133 / 0.24); --button-danger-text: rgb(255 228 230 / 0.96); --brand-badge-start: #f8c58d; --brand-badge-mid: #ee9852; --brand-badge-end: #af4f16; --brand-badge-shadow: rgb(217 107 37 / 0.18); --card-icon-inset: rgb(255 255 255 / 0.1); --status-online-bg: rgb(16 185 129 / 0.14); --status-online-border: rgb(52 211 153 / 0.24); --status-online-text: rgb(209 250 229 / 0.96); --status-online-dot: var(--color-emerald-400); --status-online-glow: rgb(16 185 129 / 0.78); --status-offline-bg: rgb(244 63 94 / 0.14); --status-offline-border: rgb(251 113 133 / 0.24); --status-offline-text: rgb(255 228 230 / 0.96); --status-offline-dot: var(--color-red-400); --status-offline-glow: rgb(244 63 94 / 0.72); --token-indicator-glow: rgb(232 132 58 / 0.42); --topology-node-highlight-shadow: rgb(245 158 11 / 0.22); --topology-node-base-shadow: rgb(0 0 0 / 0.7); --topology-node-hover-shadow: rgb(255 255 255 / 0.06); --topology-node-inner-border: rgb(255 255 255 / 0.06); --topology-node-highlight-border: rgb(251 191 36 / 0.72); --topology-online-glow: rgb(52 211 153 / 0.8); --topology-line-highlight-track: rgb(245 158 11 / 0.16); --topology-line-track: rgb(148 163 184 / 0.08); --topology-line-highlight-flow: rgb(251 191 36 / 0.88); --topology-line-flow: rgb(148 163 184 / 0.5); --topology-tooltip-shadow: rgb(0 0 0 / 0.56); --particle-glow-start: rgba(255, 133, 82, 0.16); --particle-glow-mid: rgba(112, 41, 22, 0.20); --particle-glow-end: rgba(28, 12, 8, 0.88); --particle-dot-rgb: 255, 179, 107; --particle-dot-opacity-floor: 0.1; --particle-dot-opacity-scale: 1; --particle-line-rgb: 240, 90, 40; --particle-line-opacity-scale: 1; --ekg-bar-start: rgb(251 191 36 / 0.78); --ekg-bar-end: rgb(232 132 58 / 0.86); --overlay-scrim-soft: rgb(0 0 0 / 0.4); --overlay-scrim-medium: rgb(0 0 0 / 0.55); --overlay-scrim-strong: rgb(0 0 0 / 0.62); --media-surface: rgb(0 0 0 / 0.2); --media-surface-strong: rgb(0 0 0 / 0.3); --media-border: var(--color-zinc-700); --notice-warning-bg: rgb(245 158 11 / 0.14); --notice-warning-border: rgb(251 191 36 / 0.22); --notice-warning-text: rgb(254 243 199 / 0.96); --notice-danger-bg: rgb(244 63 94 / 0.14); --notice-danger-border: rgb(251 113 133 / 0.22); --notice-danger-text: rgb(255 228 230 / 0.96); --pill-warning-bg: rgb(245 158 11 / 0.14); --pill-warning-border: rgb(251 191 36 / 0.22); --pill-warning-text: rgb(254 243 199 / 0.96); --pill-danger-bg: rgb(244 63 94 / 0.14); --pill-danger-border: rgb(251 113 133 / 0.22); --pill-danger-text: rgb(255 228 230 / 0.96); --pill-success-bg: rgb(16 185 129 / 0.14); --pill-success-border: rgb(52 211 153 / 0.22); --pill-success-text: rgb(209 250 229 / 0.96); --pill-info-bg: rgb(14 165 233 / 0.14); --pill-info-border: rgb(56 189 248 / 0.22); --pill-info-text: rgb(224 242 254 / 0.96); --pill-accent-bg: rgb(139 92 246 / 0.14); --pill-accent-border: rgb(167 139 250 / 0.22); --pill-accent-text: rgb(237 233 254 / 0.96); --pill-neutral-bg: rgb(36 49 69 / 0.9); --pill-neutral-border: rgb(93 109 135 / 0.22); --pill-neutral-text: rgb(148 163 184 / 0.96); --code-danger-text: rgb(251 113 133 / 0.96); --code-warning-text: rgb(253 224 71 / 0.96); --chip-bg: rgb(36 49 69 / 0.9); --chip-bg-hover: rgb(48 63 87 / 0.96); --chip-border: rgb(93 109 135 / 0.82); --chip-text: rgb(226 232 240 / 0.96); --chip-active-bg: rgb(123 58 24 / 0.28); --chip-active-border: rgb(232 132 58 / 0.28); --chip-active-text: rgb(255 237 213 / 0.92); --chip-group-bg: rgb(19 31 49 / 0.68); --chip-group-border: rgb(71 85 105 / 0.76); --radius-card: 18px; --radius-subtle: 12px; --radius-panel: 16px; --radius-canvas: 12px; --radius-button: 14px; --radius-chip: 14px; --radius-section: 20px; --radius-badge: 14px; } body { @apply bg-zinc-950 text-zinc-50 antialiased selection:bg-indigo-500/30; background-image: radial-gradient(circle at top left, var(--app-bg-spot-a), transparent 24%), radial-gradient(circle at 100% 0%, var(--app-bg-spot-b), transparent 22%), linear-gradient(180deg, var(--app-bg-base-top), var(--app-bg-base-bottom)); min-height: 100vh; transition: background-color 180ms ease, color 180ms ease; } html.theme-dark body { background-image: radial-gradient(circle at top left, var(--app-bg-spot-a), transparent 22%), radial-gradient(circle at 100% 0%, var(--app-bg-spot-b), transparent 20%), linear-gradient(180deg, var(--app-bg-base-top), var(--app-bg-base-bottom)); } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { @apply bg-zinc-800 rounded-full; } ::-webkit-scrollbar-thumb:hover { @apply bg-zinc-700; } .app-shell { background: radial-gradient(circle at top, var(--shell-spot-a), transparent 18%), radial-gradient(circle at bottom right, var(--shell-spot-b), transparent 26%); } .app-main-surface { background: linear-gradient(180deg, var(--main-surface-top), transparent 18%), linear-gradient(180deg, var(--main-surface-mid), var(--main-surface-bottom)); } html.theme-dark .app-main-surface { background: linear-gradient(180deg, var(--main-surface-top), transparent 24%), linear-gradient(180deg, var(--main-surface-mid), var(--main-surface-bottom)); } .app-header { background: linear-gradient(90deg, var(--header-bg-a), var(--header-bg-b)), linear-gradient(180deg, var(--header-overlay-a), var(--header-overlay-b)); backdrop-filter: blur(18px); } html.theme-dark .app-header { background: linear-gradient(90deg, var(--header-bg-a), var(--header-bg-b)), linear-gradient(180deg, var(--header-overlay-a), var(--header-overlay-b)); } .brand-badge { background: linear-gradient(135deg, var(--brand-badge-start) 0%, var(--brand-badge-mid) 48%, var(--brand-badge-end) 100%); box-shadow: 0 12px 28px var(--brand-badge-shadow); border-radius: var(--radius-badge); } .sidebar-shell { background: linear-gradient(180deg, var(--sidebar-bg-a), var(--sidebar-bg-b)), linear-gradient(180deg, var(--sidebar-overlay-a), var(--sidebar-overlay-b)); box-shadow: inset -1px 0 0 var(--sidebar-edge); } html.theme-dark .sidebar-shell { background: linear-gradient(180deg, var(--sidebar-bg-a), var(--sidebar-bg-b)), linear-gradient(180deg, var(--sidebar-overlay-a), var(--sidebar-overlay-b)); box-shadow: inset -1px 0 0 var(--sidebar-edge); } .sidebar-section { background: linear-gradient(180deg, var(--sidebar-section-a), var(--sidebar-section-b)); border-radius: var(--radius-section); } html.theme-dark .sidebar-section { background: linear-gradient(180deg, var(--sidebar-section-a), var(--sidebar-section-b)); } .nav-item-active { background: var(--active-bg); box-shadow: inset 0 0 0 1px var(--active-ring); border-radius: var(--radius-chip); } html.theme-dark .nav-item-active { background: var(--active-bg); box-shadow: inset 0 0 0 1px var(--active-ring); } .brand-card { position: relative; overflow: hidden; border-radius: var(--radius-card); background: linear-gradient(180deg, var(--card-bg-a), var(--card-bg-b)); box-shadow: inset 0 1px 0 var(--card-inner-highlight), 0 8px 30px var(--card-shadow); } .brand-card::before { content: ""; position: absolute; inset: 0 0 auto 0; width: 100%; height: 1px; border-radius: 9999px; background: linear-gradient(90deg, transparent, var(--card-topline), transparent); pointer-events: none; } html.theme-dark .brand-card { background: linear-gradient(180deg, var(--card-bg-a), var(--card-bg-b)); box-shadow: inset 0 1px 0 var(--card-inner-highlight), 0 12px 36px var(--card-shadow); } .brand-card-subtle { border-radius: var(--radius-subtle); background: linear-gradient(180deg, var(--card-subtle-a), var(--card-subtle-b)); } html.theme-dark .brand-card-subtle { background: linear-gradient(180deg, var(--card-subtle-a), var(--card-subtle-b)); } .brand-button { border-radius: var(--radius-button); background: linear-gradient(135deg, var(--button-start) 0%, var(--button-end) 100%); box-shadow: 0 8px 20px var(--button-shadow); } .status-pill-online { background: var(--status-online-bg); border-color: var(--status-online-border); color: var(--status-online-text); } .status-pill-offline { background: var(--status-offline-bg); border-color: var(--status-offline-border); color: var(--status-offline-text); } .status-dot-online { background: var(--status-online-dot); box-shadow: 0 0 8px var(--status-online-glow); } .status-dot-offline { background: var(--status-offline-dot); box-shadow: 0 0 8px var(--status-offline-glow); } .gateway-token-indicator { background: var(--color-indigo-500); box-shadow: 0 0 14px var(--token-indicator-glow); } .card-icon-shell { box-shadow: inset 0 1px 0 var(--card-icon-inset); } .topology-node-highlight { box-shadow: 0 0 30px var(--topology-node-highlight-shadow); } .topology-node-base { box-shadow: 0 20px 40px var(--topology-node-base-shadow); } .group:hover .topology-node-base { box-shadow: 0 20px 40px var(--topology-node-base-shadow), 0 0 20px var(--topology-node-hover-shadow); } .topology-node-inner-border { border-color: var(--topology-node-inner-border); } .topology-node-border-highlight { border-color: var(--topology-node-highlight-border); } .topology-online-indicator { box-shadow: 0 0 10px var(--topology-online-glow); } .topology-tooltip { box-shadow: 0 24px 48px var(--topology-tooltip-shadow); } .ekg-bar-fill { background: linear-gradient(90deg, var(--ekg-bar-start), var(--ekg-bar-end)); } .ui-overlay-soft { background: var(--overlay-scrim-soft); } .ui-overlay-medium { background: var(--overlay-scrim-medium); } .ui-overlay-strong { background: var(--overlay-scrim-strong); } .ui-media-surface { background: var(--media-surface); border-color: var(--media-border); } .ui-media-surface-strong { background: var(--media-surface-strong); border-color: var(--media-border); } .ui-notice-warning { background: var(--notice-warning-bg); border-color: var(--notice-warning-border); color: var(--notice-warning-text); } .ui-notice-danger { background: var(--notice-danger-bg); border-color: var(--notice-danger-border); color: var(--notice-danger-text); } .ui-text-primary { color: var(--text-primary); } .ui-text-secondary { color: var(--text-secondary); } .ui-text-muted { color: var(--text-muted); } .ui-text-subtle { color: var(--text-subtle); } .ui-text-danger { color: var(--color-red-500); } .ui-icon-success { color: var(--color-emerald-500); } .ui-icon-warning { color: var(--color-amber-500); } .ui-icon-info { color: var(--color-sky-500); } .ui-icon-muted { color: var(--color-zinc-500); } .ui-bg-accent { background: var(--color-indigo-500); } .ui-surface-muted { background: var(--card-subtle-a); } .ui-surface-strong { background: color-mix(in srgb, var(--color-zinc-100) 84%, transparent); } .ui-border-subtle { border-color: var(--color-zinc-800); } html.theme-dark .ui-surface-muted { background: var(--card-subtle-a); } html.theme-dark .ui-surface-strong { background: color-mix(in srgb, var(--color-zinc-900) 72%, transparent); } .ui-pill { border: 1px solid transparent; } .ui-pill-warning { background: var(--pill-warning-bg); border-color: var(--pill-warning-border); color: var(--pill-warning-text); } .ui-pill-danger { background: var(--pill-danger-bg); border-color: var(--pill-danger-border); color: var(--pill-danger-text); } .ui-pill-success { background: var(--pill-success-bg); border-color: var(--pill-success-border); color: var(--pill-success-text); } .ui-pill-info { background: var(--pill-info-bg); border-color: var(--pill-info-border); color: var(--pill-info-text); } .ui-pill-accent { background: var(--pill-accent-bg); border-color: var(--pill-accent-border); color: var(--pill-accent-text); } .ui-pill-neutral { background: var(--pill-neutral-bg); border-color: var(--pill-neutral-border); color: var(--pill-neutral-text); } .ui-code-danger { color: var(--code-danger-text); } .ui-code-warning { color: var(--code-warning-text); } .avatar-user, .avatar-agent, .avatar-tool, .avatar-system, .avatar-tone-1, .avatar-tone-2, .avatar-tone-3, .avatar-tone-4, .avatar-tone-5, .avatar-tone-6, .avatar-tone-7 { color: var(--color-zinc-950); } .avatar-user { background: color-mix(in srgb, var(--color-indigo-600) 88%, transparent); } .avatar-agent { background: color-mix(in srgb, var(--color-emerald-500) 80%, transparent); } .avatar-tool { background: color-mix(in srgb, var(--color-amber-500) 80%, transparent); } .avatar-system { background: color-mix(in srgb, var(--color-zinc-700) 92%, transparent); color: var(--color-zinc-100); } .avatar-tone-1 { background: color-mix(in srgb, var(--color-emerald-500) 80%, transparent); } .avatar-tone-2 { background: color-mix(in srgb, var(--color-sky-500) 80%, transparent); } .avatar-tone-3 { background: color-mix(in srgb, var(--color-violet-500) 80%, transparent); } .avatar-tone-4 { background: color-mix(in srgb, var(--color-amber-500) 80%, transparent); } .avatar-tone-5 { background: color-mix(in srgb, var(--color-rose-500) 80%, transparent); } .avatar-tone-6 { background: color-mix(in srgb, var(--color-sky-400) 80%, transparent); } .avatar-tone-7 { background: color-mix(in srgb, var(--color-fuchsia-400) 80%, transparent); } .chat-meta-user { color: rgb(255 255 255 / 0.75); } .chat-submeta-user { color: rgb(255 255 255 / 0.7); } .chat-meta-tool { color: color-mix(in srgb, var(--button-warning-text) 78%, transparent); } .chat-submeta-tool { color: color-mix(in srgb, var(--button-warning-text) 84%, transparent); } .ui-dot-live { background: var(--color-emerald-500); } .ui-dot-neutral { background: var(--color-zinc-600); } .ui-text-danger-hover:hover { color: var(--color-red-500); } .ui-card-active-warning { border-color: var(--color-amber-500); background: var(--pill-warning-bg); } .topology-accent-warning { background: var(--color-amber-500); } .topology-icon-danger { color: var(--color-red-500); } html.theme-dark .brand-button { box-shadow: 0 10px 24px var(--button-shadow); } .ui-button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; white-space: nowrap; border-radius: var(--radius-button); border: 1px solid transparent; line-height: 1; transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease; } /* Fixed-width buttons must opt in explicitly via ui-button-icon / ui-button-square. */ .ui-button:disabled { opacity: 0.5; cursor: not-allowed; } .ui-button-neutral { background: var(--button-neutral-bg); border-color: var(--button-neutral-border); color: var(--button-neutral-text); } .ui-button-neutral:hover:not(:disabled) { background: var(--button-neutral-bg-hover); } .ui-button-primary { background: var(--button-primary-bg); border-color: var(--button-primary-border); color: var(--button-primary-text); } .ui-button-primary:hover:not(:disabled) { background: var(--button-primary-bg-hover); } .ui-button-accent { background: var(--pill-accent-bg); border-color: var(--pill-accent-border); color: var(--pill-accent-text); } .ui-button-accent:hover:not(:disabled) { background: color-mix(in srgb, var(--pill-accent-bg) 78%, white); } .ui-button-success { background: var(--button-success-bg); border-color: var(--button-success-border); color: var(--button-success-text); } .ui-button-success:hover:not(:disabled) { background: var(--button-success-bg-hover); } .ui-button-warning { background: var(--button-warning-bg); border-color: var(--button-warning-border); color: var(--button-warning-text); } .ui-button-warning:hover:not(:disabled) { background: var(--button-warning-bg-hover); } .ui-button-danger { background: var(--button-danger-bg); border-color: var(--button-danger-border); color: var(--button-danger-text); } .ui-button-danger:hover:not(:disabled) { background: var(--button-danger-bg-hover); } .ui-button-icon { height: 40px; min-height: 40px; width: 40px; min-width: 40px; flex: 0 0 40px; padding-inline: 0; border-radius: var(--radius-button); } .ui-button-square { width: 40px; min-width: 40px; flex: 0 0 40px; padding-inline: 0; } .ui-toolbar-chip { background: var(--card-subtle-a); border: 1px solid var(--color-zinc-800); color: var(--color-zinc-500); } .ui-row-hover { transition: background-color 160ms ease; } .ui-row-hover:hover { background: color-mix(in srgb, var(--card-subtle-a) 82%, transparent); } .ui-panel { border: 1px solid var(--color-zinc-800); border-radius: var(--radius-card); } .ui-subpanel { border: 1px solid var(--color-zinc-800); border-radius: var(--radius-subtle); background: linear-gradient(180deg, var(--card-subtle-a), var(--card-subtle-b)); } .ui-toggle-card { border: 1px solid var(--color-zinc-800); border-radius: var(--radius-subtle); background: rgb(255 255 255 / 0.78); box-shadow: inset 0 1px 0 var(--card-inner-highlight); transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease; } .ui-toggle-card:hover { border-color: color-mix(in srgb, var(--color-indigo-400) 34%, var(--color-zinc-800)); } .ui-form-field { display: flex; flex-direction: column; gap: 0.55rem; } .ui-form-label { color: #000; font-size: 0.875rem; font-weight: 600; } .ui-form-help { color: var(--color-zinc-500); font-size: 0.75rem; line-height: 1.45; } .ui-section-header { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: 1rem; align-items: center; } .ui-boolean-head { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 0.65rem; align-items: center; } .ui-boolean-card { min-height: 56px; padding: 0.75rem 0.85rem; } .ui-boolean-card-detailed { min-height: 80px; padding: 0.75rem 0.85rem; } .ui-checkbox-field { display: flex; flex-direction: column; justify-content: space-between; padding: 0.75rem 0.85rem; } .ui-toolbar-checkbox { display: inline-flex; min-width: 150px; align-items: center; justify-content: space-between; gap: 0.85rem; border: 1px solid var(--color-zinc-800); border-radius: 0.9rem; background: rgb(255 255 255 / 0.78); box-shadow: inset 0 1px 0 var(--card-inner-highlight); padding: 0.55rem 0.75rem; transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease; } .ui-toolbar-checkbox:hover { border-color: color-mix(in srgb, var(--color-indigo-400) 34%, var(--color-zinc-800)); } .ui-switch { position: relative; display: inline-flex; align-items: center; cursor: pointer; flex-shrink: 0; } .ui-switch-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .ui-switch-track { position: relative; display: inline-block; width: 36px; height: 20px; border-radius: 9999px; background: rgb(200 210 220 / 0.6); border: 1.5px solid rgb(120 130 145 / 0.7); transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease; } .ui-switch-knob { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 9999px; background: white; box-shadow: 0 1px 3px rgb(0 0 0 / 0.15); transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1); } .ui-switch:hover .ui-switch-track { border-color: rgb(249 115 22 / 0.5); box-shadow: 0 0 0 3px rgb(249 115 22 / 0.08); } .ui-switch-input:checked + .ui-switch-track { background: linear-gradient(135deg, rgb(249 115 22 / 0.92) 0%, rgb(245 158 11 / 0.92) 100%); border-color: rgb(249 115 22 / 0.7); } .ui-switch-input:checked + .ui-switch-track .ui-switch-knob { transform: translateX(16px); } .ui-switch-input:focus-visible + .ui-switch-track { outline: none; box-shadow: 0 0 0 3px rgb(249 115 22 / 0.18); } .ui-input, .ui-textarea, .ui-select { width: 100%; border: 1px solid var(--color-zinc-800); border-radius: var(--radius-subtle); background: rgb(255 255 255 / 0.9); color: rgb(51 65 85 / 0.98); outline: none; transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; } .ui-input, .ui-select { min-height: 40px; } .ui-select { appearance: none; -webkit-appearance: none; -moz-appearance: none; color-scheme: light; cursor: pointer; padding-right: 2.75rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10L12 6.5' stroke='%2364758b' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.95rem center; background-size: 16px 16px; background-clip: padding-box; } .ui-select:hover { border-color: color-mix(in srgb, var(--color-indigo-400) 34%, var(--color-zinc-800)); background-color: rgb(255 255 255 / 0.96); } .ui-select::-ms-expand { display: none; } .ui-input::placeholder, .ui-textarea::placeholder { color: rgb(100 116 139 / 0.9); } .ui-input:focus, .ui-textarea:focus, .ui-select:focus { border-color: var(--color-indigo-500); box-shadow: 0 0 0 2px rgb(249 115 22 / 0.12); } html.theme-dark .ui-toggle-card { border-color: var(--color-zinc-700); background: rgb(9 16 28 / 0.32); } .ui-toolbar-checkbox { color: inherit; } html.theme-dark .ui-toolbar-checkbox { border-color: var(--color-zinc-700); background: rgb(9 16 28 / 0.32); } html.theme-dark .ui-toolbar-checkbox:hover { border-color: color-mix(in srgb, var(--color-indigo-400) 38%, var(--color-zinc-700)); } html.theme-dark .ui-toggle-card:hover { border-color: color-mix(in srgb, var(--color-indigo-400) 38%, var(--color-zinc-700)); } html.theme-dark .ui-form-label { color: rgb(215 227 241 / 0.94); } html.theme-dark .ui-form-help { color: rgb(129 146 167 / 0.92); } html.theme-dark .ui-input, html.theme-dark .ui-textarea, html.theme-dark .ui-select { border-color: var(--color-zinc-700); background-color: rgb(9 16 28 / 0.6); color: rgb(226 232 240 / 0.96); } html.theme-dark .ui-select { color-scheme: dark; background-color: rgb(9 16 28 / 0.92); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5L8 10L12 6.5' stroke='%2390a4bc' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); } html.theme-dark .ui-select:hover { border-color: color-mix(in srgb, var(--color-indigo-400) 38%, var(--color-zinc-700)); background-color: rgb(9 16 28 / 0.72); } html.theme-dark .ui-input::placeholder, html.theme-dark .ui-textarea::placeholder { color: rgb(111 131 155 / 0.9); } html.theme-dark .ui-switch-track { background: rgb(50 60 75 / 0.7); border-color: rgb(100 116 139 / 0.5); } html.theme-dark .ui-switch:hover .ui-switch-track { border-color: rgb(251 146 60 / 0.6); box-shadow: 0 0 0 3px rgb(251 146 60 / 0.12); } html.theme-dark .ui-switch-input:checked + .ui-switch-track { background: linear-gradient(135deg, rgb(249 115 22 / 0.96) 0%, rgb(245 158 11 / 0.96) 100%); border-color: rgb(251 146 60 / 0.7); box-shadow: 0 0 0 1px rgb(255 196 128 / 0.18), 0 4px 12px rgb(232 132 58 / 0.18); } html.theme-dark .ui-switch-knob { background: rgb(226 232 240 / 0.96); box-shadow: 0 1px 3px rgb(0 0 0 / 0.3); } html.theme-dark .ui-switch-input:focus-visible + .ui-switch-track { box-shadow: 0 0 0 3px rgb(251 146 60 / 0.2); } .ui-select option { background: rgb(255 255 255); color: rgb(51 65 85 / 0.98); } .ui-select optgroup { background: rgb(255 255 255); color: rgb(71 85 105 / 0.96); } html.theme-dark .ui-select option { background: rgb(12 20 34); color: rgb(226 232 240 / 0.96); } html.theme-dark .ui-select optgroup { background: rgb(12 20 34); color: rgb(148 163 184 / 0.96); } .ui-soft-panel { border: 1px solid var(--color-zinc-800); border-radius: var(--radius-subtle); background: rgb(255 255 255 / 0.72); } .ui-composer { border: 1px solid var(--color-zinc-800); border-radius: 9999px; background: linear-gradient(180deg, var(--card-subtle-a), var(--card-subtle-b)); box-shadow: inset 0 1px 0 var(--card-inner-highlight); transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; } .ui-composer-input { width: 100%; border: 0; border-radius: 9999px; background: transparent; color: rgb(51 65 85 / 0.98); outline: none; display: flex; align-items: center; caret-color: rgb(234 88 12 / 0.92); } .ui-composer:focus-within { border-color: rgb(249 115 22 / 0.72); box-shadow: 0 0 0 3px rgb(249 115 22 / 0.12), inset 0 1px 0 var(--card-inner-highlight); } .ui-composer-input::placeholder { color: rgb(113 128 150 / 0.86); } .ui-composer-input::selection { background: rgb(251 191 36 / 0.32); color: rgb(30 41 59 / 0.98); } .ui-composer-input:focus { outline: none; } .ui-code-panel { border: 1px solid var(--color-zinc-800); border-radius: var(--radius-subtle); background: rgb(241 245 249 / 0.9); color: rgb(51 65 85 / 0.96); } .ui-code-badge { display: inline-flex; min-width: 3.5rem; align-items: center; justify-content: center; border: 1px solid rgb(125 211 252 / 0.9); border-radius: 9999px; background: rgb(224 242 254 / 0.92); color: rgb(3 105 161 / 0.98); font-weight: 700; line-height: 1; } html.theme-dark .ui-soft-panel { border-color: var(--color-zinc-700); background: rgb(9 16 28 / 0.34); } html.theme-dark .ui-composer { border-color: var(--color-zinc-700); background: linear-gradient(180deg, rgb(9 16 28 / 0.68), rgb(9 16 28 / 0.52)); } html.theme-dark .ui-composer-input { color: rgb(226 232 240 / 0.96); caret-color: rgb(251 146 60 / 0.96); } html.theme-dark .ui-composer:focus-within { border-color: rgb(251 146 60 / 0.8); box-shadow: 0 0 0 3px rgb(251 146 60 / 0.14), inset 0 1px 0 rgb(255 255 255 / 0.05); } html.theme-dark .ui-composer-input::placeholder { color: rgb(126 146 171 / 0.86); } html.theme-dark .ui-composer-input::selection { background: rgb(251 146 60 / 0.28); color: rgb(248 250 252 / 0.98); } html.theme-dark .ui-code-panel { border-color: var(--color-zinc-700); background: rgb(9 16 28 / 0.6); color: rgb(226 232 240 / 0.96); } html.theme-dark .ui-code-badge { border-color: rgb(14 165 233 / 0.32); background: rgb(8 47 73 / 0.52); color: rgb(186 230 253 / 0.98); } .chat-bubble-user { background: linear-gradient(135deg, var(--button-start) 0%, var(--button-end) 100%); color: white; } .chat-bubble-tool { background: rgb(255 247 237 / 0.96); border: 1px solid rgb(253 186 116 / 0.7); color: rgb(124 45 18 / 0.98); } .chat-bubble-agent { background: rgb(226 232 240 / 0.9); border: 1px solid rgb(203 213 225 / 0.95); color: rgb(51 65 85 / 0.98); } .chat-bubble-system { background: rgb(226 232 240 / 0.72); border: 1px solid rgb(203 213 225 / 0.9); color: rgb(51 65 85 / 0.98); } html.theme-dark .chat-bubble-tool { background: rgb(123 58 24 / 0.24); border-color: rgb(232 132 58 / 0.28); color: rgb(255 237 213 / 0.96); } html.theme-dark .chat-bubble-agent { background: rgb(22 32 50 / 0.82); border-color: rgb(71 85 105 / 0.76); color: rgb(226 232 240 / 0.96); } html.theme-dark .chat-bubble-system { background: rgb(36 49 69 / 0.74); border-color: rgb(71 85 105 / 0.74); color: rgb(226 232 240 / 0.96); } .control-chip { border-radius: var(--radius-chip); background: var(--chip-bg); border: 1px solid var(--chip-border); color: var(--chip-text); transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; } .control-chip:hover { background: var(--chip-bg-hover); } .control-chip-active { border-radius: var(--radius-chip); background: var(--chip-active-bg); border: 1px solid var(--chip-active-border); color: var(--chip-active-text); } .control-chip-group { border-radius: var(--radius-chip); background: var(--chip-group-bg); border: 1px solid var(--chip-group-border); } .radius-canvas { border-radius: var(--radius-canvas); } .radius-panel { border-radius: var(--radius-panel); } .rounded-xl { border-radius: var(--radius-button) !important; } .rounded-2xl { border-radius: var(--radius-subtle) !important; } .rounded-3xl { border-radius: var(--radius-card) !important; } .rounded-\[19px\], .rounded-\[24px\] { border-radius: var(--radius-canvas) !important; } .rounded-\[23px\], .rounded-\[28px\] { border-radius: var(--radius-panel) !important; } .rounded-\[25px\], .rounded-\[30px\], .rounded-\[32px\] { border-radius: var(--radius-card) !important; }