@tailwind base; @tailwind components; @tailwind utilities; :root { --font-body: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; --font-mono: 'Fira Mono', monospace; } /* Default Theme: Lume Light */ :root { --color-primary: #f8d62b; --color-primary-button: #f8d62b; --color-primary-button-text: #000000; --color-secondary: #d4b200; --color-secondary-button: #ffe9a3; --color-content-bg: #ffffff; --color-content-bg-hover: #f5f5f5; --color-content-page-bg: #ffffff; --color-menu-bg: #dddddd; --color-menu-bg-hover: #cccccc; --color-panel-bg: #e8e8e8; --color-page-bg: #dddddd; --color-text: #2c2c2c; --color-border-light: #f2f2f2; --color-border: #999999; --color-border-strong: #cccccc; --color-error: #e74c3c; } /* Lume Dark */ :root.dark { --color-primary: #f8d62b; --color-primary-button: #7c6b16; --color-primary-button-text: #ffffff; --color-secondary: #d4b200; --color-secondary-button: #1e1e1e; --color-content-bg: #1e1e1e; --color-content-bg-hover: #333333; --color-content-page-bg: #121212; --color-menu-bg: #101010; --color-menu-bg-hover: #333333; --color-panel-bg: #1a1a1a; --color-page-bg: #101010; --color-text: #ffffff; --color-border-light: #333333; --color-border: #424242; --color-border-strong: #616161; --color-error: #e74c3c; } /* Nature Light */ :root[data-theme='nature'] { --color-primary: #4caf50; --color-primary-button: #a08500; --color-primary-button-text: #ffffff; --color-secondary: #81c784; --color-secondary-button: #f1f8e9; --color-content-bg: #f1f8e9; --color-content-bg-hover: #e8f5e9; --color-content-page-bg: #ffffff; --color-menu-bg: #e8f5e9; --color-menu-bg-hover: #c8e6c9; --color-panel-bg: #eff8f0; --color-page-bg: #fbfdf8; --color-text: #1b5e20; --color-border-light: #e8f5e9; --color-border: #c8e6c9; --color-border-strong: #a5d6a7; --color-error: #e57373; } /* Nature Dark */ :root[data-theme='nature'].dark { --color-primary: #4caf50; --color-primary-button: #ff9500; --color-primary-button-text: #000000; --color-secondary: #81c784; --color-secondary-button: #1e1e1e; --color-content-bg: #1e1e1e; --color-content-bg-hover: #2e7d32; --color-content-page-bg: #121212; --color-menu-bg: #252525; --color-menu-bg-hover: #2e7d32; --color-panel-bg: #2a2a2a; --color-page-bg: #121212; --color-text: #ffffff; --color-border-light: #1b5e20; --color-border: #2e7d32; --color-border-strong: #388e3c; --color-error: #cf6679; } /* Stone Light */ :root[data-theme='stone'] { --color-primary: #607d8b; --color-primary-button: #ff9500; --color-primary-button-text: #000000; --color-secondary: #90a4ae; --color-secondary-button: #eceff1; --color-content-bg: #eceff1; --color-content-bg-hover: #e0e6ea; --color-content-page-bg: #ffffff; --color-menu-bg: #e0e6ea; --color-menu-bg-hover: #cfd8dc; --color-panel-bg: #e8edf0; --color-page-bg: #f5f7f9; --color-text: #263238; --color-border-light: #eceff1; --color-border: #cfd8dc; --color-border-strong: #b0bec5; --color-error: #ef5350; } /* Stone Dark */ :root[data-theme='stone'].dark { --color-primary: #78909c; --color-primary-button: #ff9500; --color-primary-button-text: #000000; --color-secondary: #90a4ae; --color-secondary-button: #1e1e1e; --color-content-bg: #1e1e1e; --color-content-bg-hover: #37474f; --color-content-page-bg: #121212; --color-menu-bg: #252525; --color-menu-bg-hover: #37474f; --color-panel-bg: #2a2a2a; --color-page-bg: #121212; --color-text: #ffffff; --color-border-light: #37474f; --color-border: #455a64; --color-border-strong: #546e7a; --color-error: #cf6679; } /* Ocean Light */ :root[data-theme='ocean'] { --color-primary: #039be5; --color-primary-button: #ff9500; --color-primary-button-text: #000000; --color-secondary: #4fc3f7; --color-secondary-button: #e1f5fe; --color-content-bg: #e1f5fe; --color-content-bg-hover: #b3e5fc; --color-content-page-bg: #ffffff; --color-menu-bg: #e1f5fe; --color-menu-bg-hover: #b3e5fc; --color-panel-bg: #ecf8fe; --color-page-bg: #f5fcff; --color-text: #01579b; --color-border-light: #e1f5fe; --color-border: #b3e5fc; --color-border-strong: #81d4fa; --color-error: #ef5350; } /* Ocean Dark */ :root[data-theme='ocean'].dark { --color-primary: #039be5; --color-primary-button: #ff9500; --color-primary-button-text: #000000; --color-secondary: #4fc3f7; --color-secondary-button: #1e1e1e; --color-content-bg: #1e1e1e; --color-content-bg-hover: #0277bd; --color-content-page-bg: #121212; --color-menu-bg: #252525; --color-menu-bg-hover: #0277bd; --color-panel-bg: #2a2a2a; --color-page-bg: #121212; --color-text: #ffffff; --color-border-light: #01579b; --color-border: #0277bd; --color-border-strong: #0288d1; --color-error: #cf6679; } body { margin: 0; font-family: var(--font-body); } html { margin: 0; padding: 0; } @layer base { h1 { @apply text-3xl font-bold; color: var(--color-text); } h2 { @apply text-2xl font-semibold; color: var(--color-text); } h3 { @apply text-xl font-semibold; color: var(--color-text); } } @layer components { .btn-primary { @apply rounded-lg px-4 py-2 font-semibold transition-colors; background-color: var(--color-primary-button); color: var(--color-primary-button-text); } .btn-primary:hover { opacity: 0.9; } .btn-secondary { @apply rounded-lg px-4 py-2 font-semibold transition-colors; background-color: var(--color-secondary-button); color: var(--color-text); border: 1px solid var(--color-border); } .btn-secondary:hover { background-color: var(--color-content-bg-hover); } .btn-danger { @apply rounded-lg px-4 py-2 font-semibold transition-colors; background-color: var(--color-error); color: #ffffff; } .btn-danger:hover { opacity: 0.9; } .input-field { @apply w-full rounded-lg px-4 py-2 transition-colors; background-color: var(--color-content-bg); color: var(--color-text); border: 1px solid var(--color-border); } .input-field:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent); } .card { @apply rounded-lg p-6 shadow-sm; background-color: var(--color-content-bg); color: var(--color-text); } /* Header & Navigation */ .header-style { background-color: var(--color-menu-bg); border-bottom: 1px solid var(--color-border); } .logo-text { @apply text-2xl font-bold; color: var(--color-primary); } .nav-link { @apply transition-colors; color: var(--color-text); } .nav-link:hover { color: var(--color-primary); } .user-email { @apply text-sm; color: var(--color-text); opacity: 0.7; } /* Main Content Area */ .main-content { background-color: var(--color-page-bg); } /* Selected/Active State */ .bg-selected { background-color: color-mix(in srgb, var(--color-primary) 10%, transparent); } /* Status Badge Colors */ .status-completed { background-color: rgba(76, 175, 80, 0.15); color: #4caf50; } .status-processing { background-color: color-mix(in srgb, var(--color-primary) 15%, transparent); color: var(--color-primary); } .status-failed { background-color: color-mix(in srgb, var(--color-error) 15%, transparent); color: var(--color-error); } .status-default { background-color: color-mix(in srgb, var(--color-text) 10%, transparent); color: var(--color-text); } /* Info/Alert Boxes */ .info-box { background-color: color-mix(in srgb, var(--color-primary) 10%, transparent); border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent); } /* Loading Spinner */ .spinner-border { border-color: var(--color-primary); } /* Focus Ring */ .focus\:ring-primary:focus { --tw-ring-color: var(--color-primary); } .focus\:ring-2:focus { box-shadow: 0 0 0 2px var(--tw-ring-color, var(--color-primary)); } } @layer utilities { /* Theme Color Utilities - in utilities layer for @apply support */ .bg-content { background-color: var(--color-content-bg); } .bg-content-hover { background-color: var(--color-content-bg-hover); } .hover\:bg-content-hover:hover { background-color: var(--color-content-bg-hover); } .bg-menu { background-color: var(--color-menu-bg); } .bg-menu-hover { background-color: var(--color-menu-bg-hover); } .hover\:bg-menu-hover:hover { background-color: var(--color-menu-bg-hover); } .bg-panel { background-color: var(--color-panel-bg); } .bg-page { background-color: var(--color-page-bg); } .border-theme { border-color: var(--color-border); } .border-theme-light { border-color: var(--color-border-light); } .text-theme { color: var(--color-text); } .text-theme-secondary { color: var(--color-text); opacity: 0.6; } .text-theme-muted { color: var(--color-text); opacity: 0.4; } .text-primary { color: var(--color-primary); } .bg-primary { background-color: var(--color-primary); } .bg-primary-button { background-color: var(--color-primary-button); } .text-primary-button-text { color: var(--color-primary-button-text); } .bg-secondary-button { background-color: var(--color-secondary-button); } }