diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000..270965b --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,165 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +:root { + --primary: #2563eb; + --primary-dark: #1e40af; + --secondary: #64748b; + --success: #10b981; + --danger: #ef4444; + --warning: #f59e0b; + --bg: #ffffff; + --bg-secondary: #f8fafc; + --border: #e2e8f0; + --text: #0f172a; + --text-secondary: #64748b; + --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); +} + +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background: var(--bg-secondary); + color: var(--text); + line-height: 1.6; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; +} + +#root { + min-height: 100vh; +} + +/* Scrollbar styling */ +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: var(--bg-secondary); +} + +::-webkit-scrollbar-thumb { + background: var(--border); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--secondary); +} + +/* Utility classes */ +.container { + max-width: 1280px; + margin: 0 auto; + padding: 0 1rem; +} + +.btn { + display: inline-flex; + align-items: center; + gap: 0.5rem; + padding: 0.625rem 1.25rem; + border: none; + border-radius: 0.375rem; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: all 0.2s; + text-decoration: none; +} + +.btn:hover { + transform: translateY(-1px); + box-shadow: var(--shadow); +} + +.btn-primary { + background: var(--primary); + color: white; +} + +.btn-primary:hover { + background: var(--primary-dark); +} + +.btn-secondary { + background: var(--secondary); + color: white; +} + +.btn-success { + background: var(--success); + color: white; +} + +.btn-danger { + background: var(--danger); + color: white; +} + +.card { + background: var(--bg); + border-radius: 0.5rem; + padding: 1.5rem; + box-shadow: var(--shadow); +} + +.input { + width: 100%; + padding: 0.625rem; + border: 1px solid var(--border); + border-radius: 0.375rem; + font-size: 0.875rem; + transition: border-color 0.2s; +} + +.input:focus { + outline: none; + border-color: var(--primary); +} + +.label { + display: block; + margin-bottom: 0.5rem; + font-size: 0.875rem; + font-weight: 500; + color: var(--text-secondary); +} + +.grid { + display: grid; + gap: 1.5rem; +} + +.grid-2 { + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); +} + +.grid-3 { + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); +} + +.loading { + display: flex; + justify-content: center; + align-items: center; + min-height: 200px; +} + +.error { + color: var(--danger); + padding: 1rem; + background: #fee2e2; + border-radius: 0.375rem; + margin: 1rem 0; +} \ No newline at end of file