:root { --primary: #2E86DE; --primary-dark: #1A56B0; --secondary: #341f97; --emergency: #FF5E5E; --success: #27ae60; --warning: #f39c12; --danger: #e74c3c; --dark: #01080f; --light: #f9f9f9; --grey: #ecf0f1; --grey-dark: #bdc3c7; --card-shadow: 0 5px 15px rgba(128, 92, 92, 0.08); --transition: all 0.3s ease; } [data-theme="dark"] { --primary: #3b8df1; --primary-dark: #2a6ac8; --secondary: #4a33c5; --emergency: #ff7676; --success: #32c971; --warning: #f5b342; --danger: #f66555; --dark: #e0e6ed; --light: #2a2e35; --grey: #3a3f47; --grey-dark: #5c626a; --card-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } body { background-color: #f5f8fa; color: var(--dark); line-height: 1.6; transition: var(--transition); } [data-theme="dark"] body { background-color: #1e2126; } .container { max-width: 480px; margin: 0 auto; padding-bottom: 80px; background: white; min-height: 100vh; position: relative; box-shadow: 0 0 20px rgba(0, 0, 0, 0.05); transition: var(--transition); } [data-theme="dark"] .container { background: #24282f; box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); } .app-header { display: flex; justify-content: space-between; align-items: center; padding: 15px 20px; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: white; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .logo { display: flex; align-items: center; } .logo-icon { font-size: 1.8rem; margin-right: 12px; background: white; color: var(--primary); width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; } .logo-text { font-weight: 700; font-size: 1.4rem; } .location-selector { display: flex; align-items: center; background: rgba(255, 255, 255, 0.2); padding: 8px 15px; border-radius: 20px; cursor: pointer; transition: var(--transition); } .location-selector:hover { background: rgba(255, 255, 255, 0.3); } .location-selector i { margin-right: 8px; font-size: 0.9rem; } .location-text { font-size: 0.9rem; font-weight: 500; } .user-profile { width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; border: 2px solid rgba(255, 255, 255, 0.3); cursor: pointer; } .user-profile:hover { background: rgba(255, 255, 255, 0.3); } .user-menu { position: absolute; top: 70px; right: 20px; background: white; border-radius: 10px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); width: 220px; z-index: 150; display: none; } [data-theme="dark"] .user-menu { background: #2d333b; } .user-menu.show { display: block; animation: slideDown 0.3s ease; } @keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .user-menu-header { padding: 15px; border-bottom: 1px solid var(--grey); } .user-info { display: flex; align-items: center; gap: 10px; } .user-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--primary); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; } .user-details { flex: 1; overflow: hidden; } .user-name { font-weight: 600; font-size: 0.9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-email { font-size: 0.75rem; color: var(--grey-dark); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .user-menu-item { padding: 12px 15px; cursor: pointer; transition: var(--transition); display: flex; align-items: center; gap: 10px; font-size: 0.9rem; } .user-menu-item:hover { background: var(--grey); } .user-menu-item i { width: 20px; color: var(--primary); } .bottom-nav { position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; display: flex; background: white; box-shadow: 0 -2px 15px rgba(0,0,0,0.08); z-index: 100; border-top: 1px solid var(--grey); padding: 8px 0; } [data-theme="dark"] .bottom-nav { background: #2d333b; box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.3); border-top: 1px solid #3a3f47; } .nav-item { flex: 1; text-align: center; padding: 8px 2px; color: var(--dark); font-size: 0.65rem; opacity: 0.6; transition: var(--transition); position: relative; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; } .nav-item.active { opacity: 1; color: var(--primary); } .nav-item.active::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 25px; height: 3px; background: var(--primary); border-radius: 0 0 3px 3px; } .nav-icon { font-size: 1.2rem; margin-bottom: 3px; } .tab-content { display: none; } .tab-content.active { display: block; } .app-content { padding: 20px; } .search-bar { display: flex; align-items: center; background: var(--grey); border-radius: 10px; padding: 10px 15px; margin-bottom: 20px; } .search-icon { margin-right: 10px; color: var(--grey-dark); } .search-input { border: none; background: transparent; width: 100%; font-size: 1rem; color: var(--dark); } .search-input:focus { outline: none; } .section-title { font-weight: 600; margin-bottom: 15px; display: flex; align-items: center; gap: 10px; } .quick-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; margin-bottom: 25px; } .quick-action { text-align: center; cursor: pointer; transition: var(--transition); } .quick-action:hover { transform: translateY(-5px); } .action-icon { width: 50px; height: 50px; background: var(--light); border-radius: 15px; display: flex; align-items: center; justify-content: center; margin: 0 auto 10px; font-size: 1.2rem; color: var(--primary); } .action-name { font-size: 0.8rem; font-weight: 500; } .module-card { background: white; border-radius: 15px; padding: 20px; margin-bottom: 20px; box-shadow: var(--card-shadow); } [data-theme="dark"] .module-card { background: #2d333b; } .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; } .card-title { font-weight: 600; display: flex; align-items: center; gap: 10px; } .see-all { color: var(--primary); font-size: 0.8rem; font-weight: 500; cursor: pointer; } .job-card { background: var(--light); border-radius: 10px; padding: 15px; margin-bottom: 15px; transition: var(--transition); cursor: pointer; } [data-theme="dark"] .job-card { background: #353b44; } .job-title { font-weight: 600; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; } .job-poster { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 0.9rem; } .job-poster-img { width: 30px; height: 30px; background: var(--primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-size: 0.8rem; } .job-detail { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; margin-bottom: 5px; color: var(--dark); } .job-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; } .job-tag { background: var(--grey); padding: 3px 8px; border-radius: 5px; font-size: 0.7rem; font-weight: 500; } .job-tag.urgent { background: var(--emergency); color: white; } .btn { display: block; width: 100%; padding: 12px; border: none; border-radius: 10px; font-weight: 600; cursor: pointer; text-align: center; transition: var(--transition); font-size: 0.9rem; } .btn-primary { background: var(--primary); color: white; box-shadow: 0 4px 10px rgba(46, 134, 222, 0.3); } .btn-primary:hover { background: var(--primary-dark); } .btn-outline { background: transparent; border: 1px solid var(--primary); color: var(--primary); } .btn-sm { padding: 8px 12px; font-size: 0.75rem; } .btn-danger { background: var(--danger); color: white; } .warning-item { background: rgba(243, 156, 18, 0.1); border-radius: 10px; padding: 12px; margin-bottom: 12px; border-left: 4px solid var(--warning); } .warning-item.danger { background: rgba(231, 76, 60, 0.1); border-left-color: var(--danger); } .warning-header { display: flex; align-items: center; margin-bottom: 8px; } .warning-icon { color: var(--warning); margin-right: 10px; font-size: 1rem; } .warning-item.danger .warning-icon { color: var(--danger); } .warning-title { font-weight: 600; font-size: 0.85rem; } .warning-content { font-size: 0.8rem; } .ad-container { background: var(--light); border-radius: 10px; padding: 15px; margin: 20px 0; text-align: center; position: relative; } .ad-label { position: absolute; top: 5px; right: 5px; background: var(--grey); color: var(--dark); padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; } .ad-title { font-weight: 600; margin-bottom: 8px; } .ad-description { font-size: 0.8rem; margin-bottom: 10px; color: var(--grey-dark); } .ad-cta { background: var(--primary); color: white; border: none; border-radius: 20px; padding: 8px 15px; font-size: 0.8rem; cursor: pointer; } .loading-spinner { text-align: center; padding: 40px; color: var(--grey-dark); } .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); z-index: 1000; justify-content: center; align-items: center; } .modal-content { background: white; margin: 5% auto; padding: 20px; border-radius: 15px; width: 90%; max-width: 400px; max-height: 85vh; overflow-y: auto; } [data-theme="dark"] .modal-content { background: #2d333b; } .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid var(--grey); } .modal-title { font-weight: 600; font-size: 1.1rem; } .close-modal-btn { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--dark); } .form-group { margin-bottom: 15px; } .form-label { display: block; margin-bottom: 5px; font-size: 0.85rem; font-weight: 500; } .form-input { width: 100%; padding: 12px; border: 1px solid var(--grey); border-radius: 10px; font-size: 0.9rem; background: white; color: var(--dark); } [data-theme="dark"] .form-input { background: #353b44; border-color: #454c56; } .form-input:focus { outline: none; border-color: var(--primary); } .form-row { display: flex; gap: 15px; } .form-row .form-group { flex: 1; } .form-hint { font-size: 0.7rem; color: var(--grey-dark); margin-top: 5px; } .form-actions { display: flex; gap: 10px; margin-top: 20px; } .toast { position: fixed; bottom: 70px; left: 50%; transform: translateX(-50%) translateY(100px); background: white; border-radius: 12px; padding: 12px 20px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15); z-index: 10000; transition: transform 0.3s ease; display: flex; align-items: center; gap: 12px; min-width: 200px; max-width: 90%; pointer-events: auto; cursor: pointer; } [data-theme="dark"] .toast { background: #2d333b; } .toast.show { transform: translateX(-50%) translateY(0); } .toast-success { border-left: 4px solid #27ae60; } .toast-error { border-left: 4px solid #e74c3c; } .toast-warning { border-left: 4px solid #f39c12; } .toast-info { border-left: 4px solid #2E86DE; } .toast-icon { font-size: 1.1rem; flex-shrink: 0; } .toast-icon i { margin: 0; } .toast-message { font-size: 0.85rem; font-weight: 500; flex: 1; } @media (max-width: 480px) { .toast { bottom: 65px; padding: 10px 16px; max-width: 95%; } .toast-message { font-size: 0.8rem; } } .market-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; } .market-item { background: white; border-radius: 12px; overflow: hidden; box-shadow: var(--card-shadow); cursor: pointer; transition: transform 0.2s; } .market-item:hover { transform: translateY(-3px); } [data-theme="dark"] .market-item { background: #2d333b; } .market-item-img { height: 120px; background: var(--light); display: flex; align-items: center; justify-content: center; font-size: 2rem; color: var(--primary); } .market-item-info { padding: 12px; } .market-item-title { font-weight: 600; font-size: 0.85rem; margin-bottom: 5px; } .market-item-price { font-weight: 700; color: var(--primary); font-size: 0.9rem; } .market-item-location { font-size: 0.7rem; color: var(--grey-dark); margin-top: 5px; } .service-categories { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-bottom: 20px; } .service-category { background: white; border-radius: 12px; padding: 15px; text-align: center; box-shadow: var(--card-shadow); cursor: pointer; transition: transform 0.2s; } .service-category:hover { transform: translateY(-3px); } [data-theme="dark"] .service-category { background: #2d333b; } .service-category-icon { font-size: 1.5rem; margin-bottom: 8px; color: var(--primary); } .service-category-title { font-weight: 600; font-size: 0.85rem; margin-bottom: 3px; } .service-category-desc { font-size: 0.7rem; color: var(--grey-dark); } .market-filters { display: flex; gap: 10px; margin-bottom: 15px; overflow-x: auto; padding-bottom: 5px; } .filter-btn { padding: 6px 12px; background: var(--light); border: none; border-radius: 20px; font-size: 0.7rem; white-space: nowrap; cursor: pointer; } .filter-btn.active { background: var(--primary); color: white; } .promoted-badge { background: linear-gradient(135deg, #f1c40f, #e67e22); color: #2c3e50; padding: 2px 8px; border-radius: 12px; font-size: 0.6rem; font-weight: bold; display: inline-block; } .more-section { display: none; position: fixed; top: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; height: 100%; background: white; z-index: 2000; overflow-y: auto; } .more-section.active { display: block; } [data-theme="dark"] .more-section { background: #24282f; } .more-header { display: flex; justify-content: space-between; align-items: center; padding: 15px 20px; background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: white; position: sticky; top: 0; z-index: 10; } .more-title { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 1.1rem; } .more-close { background: none; border: none; color: white; font-size: 1.5rem; cursor: pointer; } .more-tab-nav { display: flex; background: white; border-bottom: 1px solid var(--grey); overflow-x: auto; position: sticky; top: 60px; z-index: 10; } [data-theme="dark"] .more-tab-nav { background: #2d333b; border-bottom-color: #3a3f47; } .more-tab-btn { flex: 1; text-align: center; padding: 12px 5px; cursor: pointer; transition: var(--transition); border-bottom: 3px solid transparent; font-size: 0.7rem; opacity: 0.6; min-width: 70px; } .more-tab-btn.active { border-bottom-color: var(--primary); color: var(--primary); opacity: 1; } .more-tab-icon { font-size: 1.1rem; margin-bottom: 5px; } .more-tab-content { display: none; padding: 20px; padding-bottom: 100px; } .more-tab-content.active { display: block; } .more-bottom-nav { display: none; position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 480px; background: white; z-index: 2001; border-top: 1px solid var(--grey); padding: 5px 0; } .more-bottom-nav .nav-item { flex: 1; text-align: center; padding: 8px 2px; cursor: pointer; } .more-section.active ~ .more-bottom-nav { display: flex; } .more-section.active ~ .bottom-nav { display: none; } .safety-tips-list { display: flex; flex-direction: column; gap: 10px; } .safety-tip { display: flex; align-items: flex-start; gap: 12px; font-size: 0.85rem; } .safety-tip-icon { color: var(--success); margin-top: 2px; } .settings-section { margin-bottom: 20px; } .settings-section-title { font-weight: 600; margin-bottom: 10px; padding-bottom: 5px; border-bottom: 1px solid var(--grey); } .settings-option { display: flex; align-items: center; padding: 12px; background: var(--light); border-radius: 10px; margin-bottom: 8px; cursor: pointer; } .settings-option-icon { width: 40px; color: var(--primary); } .settings-option-info { flex: 1; } .settings-option-title { font-weight: 500; font-size: 0.85rem; } .settings-option-desc { font-size: 0.7rem; color: var(--grey-dark); } .settings-option-arrow { color: var(--grey-dark); } .switch { position: relative; display: inline-block; width: 50px; height: 24px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 24px; } .slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: .4s; border-radius: 50%; } input:checked + .slider { background-color: var(--primary); } input:checked + .slider:before { transform: translateX(26px); } .empty-marketplace { text-align: center; padding: 60px 20px; color: var(--grey-dark); } .no-jobs { text-align: center; padding: 40px; color: var(--grey-dark); } .auth-providers { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; } .auth-provider-btn { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px; border: 1px solid var(--grey); border-radius: 10px; background: white; cursor: pointer; } [data-theme="dark"] .auth-provider-btn { background: #353b44; } .google-btn { color: #DB4437; } .facebook-btn { color: #4267B2; } .auth-divider { display: flex; align-items: center; margin: 20px 0; color: var(--grey-dark); } .auth-divider::before, .auth-divider::after { content: ''; flex: 1; height: 1px; background: var(--grey); } .auth-divider span { padding: 0 15px; font-size: 0.8rem; } .auth-footer { margin-top: 15px; text-align: center; font-size: 0.8rem; } .auth-link { color: var(--primary); cursor: pointer; text-decoration: none; } .role-error { color: var(--danger); font-size: 0.7rem; margin-top: 5px; display: none; } .password-container { position: relative; } .password-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: var(--grey-dark); } .image-preview-container { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; } .image-preview-item { position: relative; display: inline-block; } .remove-image-btn { position: absolute; top: -8px; right: -8px; background: var(--danger); color: white; border: none; border-radius: 50%; width: 20px; height: 20px; cursor: pointer; font-size: 12px; display: flex; align-items: center; justify-content: center; } .category-fields { margin-top: 15px; padding-top: 15px; border-top: 1px solid var(--grey); } .features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } .feature-checkbox { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; cursor: pointer; } .image-upload-area { border: 2px dashed var(--grey); border-radius: 10px; padding: 20px; text-align: center; cursor: pointer; transition: all 0.3s; } .image-upload-area:hover { border-color: var(--primary); background: rgba(46, 134, 222, 0.05); } #ad-packages-full-modal .modal-content { max-width: 480px !important; width: 95% !important; margin: 10px auto !important; max-height: 90vh !important; overflow-y: auto !important; border-radius: 20px !important; padding: 0 !important; } #ad-packages-full-modal .modal-header { position: sticky !important; top: 0 !important; background: white !important; z-index: 10 !important; padding: 12px 15px !important; margin-bottom: 0 !important; } [data-theme="dark"] #ad-packages-full-modal .modal-header { background: #2d333b !important; } #ad-packages-full-modal .promotion-steps { display: flex !important; flex-wrap: wrap !important; gap: 5px !important; margin-bottom: 15px !important; padding: 10px 0 !important; } #ad-packages-full-modal .step { flex: 1 !important; min-width: 50px !important; font-size: 0.6rem !important; } #ad-packages-full-modal .step div:first-child { width: 25px !important; height: 25px !important; font-size: 0.7rem !important; } #ad-packages-full-modal .packages-grid { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; } #ad-packages-full-modal .package-card { padding: 8px !important; margin: 0 !important; } #ad-packages-full-modal .package-card div[style*="font-size: 1.5rem"] { font-size: 1.1rem !important; } #ad-packages-full-modal .action-options { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; } #ad-packages-full-modal .action-option { padding: 8px !important; font-size: 0.7rem !important; } #ad-packages-full-modal .payment-methods-grid { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; } #ad-packages-full-modal .payment-method { padding: 8px !important; font-size: 0.7rem !important; } #ad-packages-full-modal .form-group { margin-bottom: 10px !important; } #ad-packages-full-modal .form-input { padding: 8px 10px !important; font-size: 0.85rem !important; } #ad-packages-full-modal .btn { padding: 8px !important; font-size: 0.8rem !important; } #ad-packages-full-modal h3 { font-size: 0.9rem !important; margin-bottom: 10px !important; } #ad-packages-full-modal #payment-summary { padding: 10px !important; margin-bottom: 12px !important; font-size: 0.8rem !important; } @media (max-width: 480px) { #ad-packages-full-modal .packages-grid, #ad-packages-full-modal .action-options, #ad-packages-full-modal .payment-methods-grid { grid-template-columns: 1fr !important; } #ad-packages-full-modal .form-row { flex-direction: column !important; gap: 8px !important; } }
Select Location
Sign In / Register
Settings
Quick Access
Boda Boda
Mjengo Work
Daily Hustle
Farm Help
Marketplace
Gas Refill
Water Delivery
Electrician
House Help
Phone Repair
Education
Alerts
VikeServe Connect
Coming Soon
0
Active Jobs
0
Verified Workers
Safety Warnings
Payment Safety
Do not send money before meeting in person. Verify services before payment.
Personal Safety
Do not hire unknown technicians at night. Always meet in public places first.
Urgent Jobs Near You
View All
Loading jobs...
Ad
Premium Advertising
Reach thousands of customers with our affordable ad packages
Loading services and jobs...
Loading marketplace items...
Ad
Sell Your Products
List your items on our marketplace and reach thousands of buyers

Sign In Required

Please sign in to view your profile, manage your ads, and access all features.

More Options
Education
Alerts
Messages
Safety
Settings