@tailwind base; @tailwind components; @tailwind utilities; @layer base { * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { background-color: #050709; color: #e6edf3; font-family: 'IBM Plex Sans', system-ui, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: #0d1117; } ::-webkit-scrollbar-thumb { background: #30363d; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #484f58; } ::selection { background: rgba(0, 255, 135, 0.2); color: #e6edf3; } } @layer components { .glass { background: rgba(13, 17, 23, 0.8); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.06); } .glow-green { box-shadow: 0 0 20px rgba(0, 255, 135, 0.15); } .glow-cyan { box-shadow: 0 0 20px rgba(0, 212, 255, 0.15); } .code-block { font-family: 'IBM Plex Mono', monospace; font-size: 0.8rem; background: #0d1117; border: 1px solid #21262d; border-radius: 6px; padding: 1rem; overflow-x: auto; white-space: pre; line-height: 1.6; } .badge { display: inline-flex; align-items: center; gap: 4px; font-size: 0.7rem; font-weight: 500; padding: 2px 8px; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.05em; } .badge-green { background: rgba(0, 255, 135, 0.1); color: #00ff87; border: 1px solid rgba(0, 255, 135, 0.2); } .badge-cyan { background: rgba(0, 212, 255, 0.1); color: #00d4ff; border: 1px solid rgba(0, 212, 255, 0.2); } .badge-purple { background: rgba(168, 85, 247, 0.1); color: #a855f7; border: 1px solid rgba(168, 85, 247, 0.2); } .badge-orange { background: rgba(255, 107, 53, 0.1); color: #ff6b35; border: 1px solid rgba(255, 107, 53, 0.2); } .badge-gray { background: rgba(72, 79, 88, 0.3); color: #8b949e; border: 1px solid #30363d; } /* Used by ModelForm field labels */ .form-label { display: block; font-size: 0.75rem; font-weight: 500; color: #8b949e; margin-bottom: 6px; } .btn-primary { display: inline-flex; align-items: center; gap: 8px; background: #00ff87; color: #050709; font-weight: 600; font-size: 0.875rem; padding: 8px 16px; border-radius: 6px; transition: all 0.15s ease; cursor: pointer; border: none; } .btn-primary:hover { background: #00e07a; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0, 255, 135, 0.3); } .btn-primary:active { transform: translateY(0); } .btn-primary:disabled { opacity: 0.5; cursor: not-allowed; transform: none; box-shadow: none; } .btn-secondary { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: #8b949e; font-weight: 500; font-size: 0.875rem; padding: 7px 15px; border-radius: 6px; transition: all 0.15s ease; cursor: pointer; border: 1px solid #30363d; } .btn-secondary:hover { background: #21262d; color: #e6edf3; border-color: #484f58; } .btn-danger { display: inline-flex; align-items: center; gap: 8px; background: transparent; color: #ff4757; font-weight: 500; font-size: 0.875rem; padding: 7px 15px; border-radius: 6px; transition: all 0.15s ease; cursor: pointer; border: 1px solid rgba(255, 71, 87, 0.3); } .btn-danger:hover { background: rgba(255, 71, 87, 0.1); } .input { width: 100%; background: #0d1117; border: 1px solid #30363d; border-radius: 6px; padding: 8px 12px; color: #e6edf3; font-size: 0.875rem; font-family: inherit; transition: border-color 0.15s ease; outline: none; } .input:focus { border-color: #00ff87; box-shadow: 0 0 0 2px rgba(0, 255, 135, 0.1); } .input::placeholder { color: #484f58; } .input-mono { font-family: 'IBM Plex Mono', monospace; font-size: 0.8rem; } .select { width: 100%; background: #0d1117; border: 1px solid #30363d; border-radius: 6px; padding: 8px 12px; color: #e6edf3; font-size: 0.875rem; font-family: inherit; outline: none; cursor: pointer; transition: border-color 0.15s ease; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b949e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 36px; } .select:focus { border-color: #00ff87; box-shadow: 0 0 0 2px rgba(0, 255, 135, 0.1); } .card { background: #0d1117; border: 1px solid #21262d; border-radius: 8px; transition: border-color 0.15s ease; } .card:hover { border-color: #30363d; } .divider { border: none; border-top: 1px solid #21262d; } /* BUG FIX: Moved from ModelForm.jsx module-level style injection */ .form-label { display: block; font-size: 0.75rem; font-weight: 500; color: #8b949e; margin-bottom: 6px; } } @layer utilities { .text-gradient-green { background: linear-gradient(135deg, #00ff87, #00d4ff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } }