/* inBOXER Mobile-First CSS */ :root { --primary-color: #2563eb; --primary-dark: #1d4ed8; --secondary-color: #64748b; --success-color: #10b981; --danger-color: #ef4444; --warning-color: #f59e0b; --background-color: #f8fafc; --surface-color: #ffffff; --text-color: #1e293b; --text-light: #64748b; --border-color: #e2e8f0; --shadow: 0 1px 3px rgba(0, 0, 0, 0.1); --radius: 0.5rem; --spacing-xs: 0.25rem; --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 1.5rem; --spacing-xl: 2rem; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif; line-height: 1.5; color: var(--text-color); background-color: var(--background-color); min-height: 100vh; } .container { width: 100%; max-width: 100%; padding: var(--spacing-md); margin: 0 auto; } /* Mobile-first: small screens */ @media (min-width: 640px) { .container { max-width: 640px; padding: var(--spacing-lg); } } @media (min-width: 768px) { .container { max-width: 768px; } } @media (min-width: 1024px) { .container { max-width: 1024px; } } /* Card component */ .card { background: var(--surface-color); border-radius: var(--radius); box-shadow: var(--shadow); padding: var(--spacing-lg); margin-bottom: var(--spacing-lg); } .card-header { margin-bottom: var(--spacing-md); padding-bottom: var(--spacing-sm); border-bottom: 1px solid var(--border-color); } .card-title { font-size: 1.5rem; font-weight: 600; color: var(--text-color); } .card-subtitle { font-size: 1rem; color: var(--text-light); margin-top: var(--spacing-xs); } /* Form elements */ .form-group { margin-bottom: var(--spacing-md); } .form-label { display: block; margin-bottom: var(--spacing-xs); font-weight: 500; color: var(--text-color); } .form-input { width: 100%; padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--border-color); border-radius: var(--radius); font-size: 1rem; transition: border-color 0.2s; } .form-input:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1); } .form-input.error { border-color: var(--danger-color); } .form-error { color: var(--danger-color); font-size: 0.875rem; margin-top: var(--spacing-xs); } /* Buttons */ .btn { display: inline-block; padding: var(--spacing-sm) var(--spacing-lg); border: none; border-radius: var(--radius); font-size: 1rem; font-weight: 500; text-align: center; text-decoration: none; cursor: pointer; transition: background-color 0.2s, transform 0.1s; user-select: none; } .btn:active { transform: translateY(1px); } .btn-primary { background-color: var(--primary-color); color: white; } .btn-primary:hover { background-color: var(--primary-dark); } .btn-secondary { background-color: var(--secondary-color); color: white; } .btn-success { background-color: var(--success-color); color: white; } .btn-danger { background-color: var(--danger-color); color: white; } .btn-block { width: 100%; display: block; } .btn:disabled { opacity: 0.5; cursor: not-allowed; } /* Navigation */ .navbar { background: var(--surface-color); box-shadow: var(--shadow); padding: var(--spacing-md); margin-bottom: var(--spacing-lg); } .navbar-brand { font-size: 1.25rem; font-weight: 600; color: var(--primary-color); text-decoration: none; } .navbar-menu { display: flex; gap: var(--spacing-md); margin-top: var(--spacing-md); } .navbar-item { color: var(--text-light); text-decoration: none; padding: var(--spacing-xs) 0; } .navbar-item.active { color: var(--primary-color); font-weight: 500; } /* Alert messages */ .alert { padding: var(--spacing-md); border-radius: var(--radius); margin-bottom: var(--spacing-md); border-left: 4px solid transparent; } .alert-success { background-color: #d1fae5; border-left-color: var(--success-color); color: #065f46; } .alert-error { background-color: #fee2e2; border-left-color: var(--danger-color); color: #991b1b; } .alert-warning { background-color: #fef3c7; border-left-color: var(--warning-color); color: #92400e; } .alert-info { background-color: #dbeafe; border-left-color: var(--primary-color); color: #1e40af; } /* Dashboard stats */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--spacing-md); margin-bottom: var(--spacing-lg); } .stat-card { background: var(--surface-color); border-radius: var(--radius); padding: var(--spacing-md); text-align: center; box-shadow: var(--shadow); } .stat-value { font-size: 2rem; font-weight: 700; color: var(--primary-color); line-height: 1; } .stat-label { font-size: 0.875rem; color: var(--text-light); margin-top: var(--spacing-xs); } /* Footer */ .footer { text-align: center; padding: var(--spacing-lg); color: var(--text-light); font-size: 0.875rem; margin-top: var(--spacing-xl); border-top: 1px solid var(--border-color); } /* Utility classes */ .text-center { text-align: center; } .mt-1 { margin-top: var(--spacing-xs); } .mt-2 { margin-top: var(--spacing-sm); } .mt-3 { margin-top: var(--spacing-md); } .mt-4 { margin-top: var(--spacing-lg); } .mt-5 { margin-top: var(--spacing-xl); } .mb-1 { margin-bottom: var(--spacing-xs); } .mb-2 { margin-bottom: var(--spacing-sm); } .mb-3 { margin-bottom: var(--spacing-md); } .mb-4 { margin-bottom: var(--spacing-lg); } .mb-5 { margin-bottom: var(--spacing-xl); } .hidden { display: none; } .visible { display: block; }