/* Noval Ride — Client portal shell (matches admin UI) */ :root { --cp-bg: #d9dbf1; --cp-sidebar: #ffffff; --cp-text: #1e293b; --cp-muted: #94a3b8; --cp-border: #f1f5f9; --cp-primary: var(--primary, #5b5cf5); --cp-radius: 16px; --cp-radius-lg: 24px; --cp-shadow: 0 4px 20px rgba(0, 0, 0, 0.04); } * { box-sizing: border-box; } body.cp-body { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; background: var(--cp-bg); color: var(--cp-text); min-height: 100vh; margin: 0; overflow-x: hidden; } /* Sidebar */ .cp-sidebar { position: fixed; top: 0; left: 0; width: 200px; height: 100vh; background: var(--cp-sidebar); border-right: 1px solid #f0f0f5; display: flex; flex-direction: column; padding: 1.5rem 0.85rem; z-index: 1040; transition: transform 0.28s ease; overflow-y: auto; } .cp-sidebar-header { margin-bottom: 1.5rem; padding-left: 0.35rem; } .cp-logo-area { display: flex; align-items: center; gap: 10px; text-decoration: none; color: #1a1c24; } .cp-logo-icon { width: 38px; height: 38px; background: var(--cp-primary); color: #fff; border-radius: 10px; display: grid; place-items: center; font-weight: 800; font-size: 0.95rem; flex-shrink: 0; } .cp-logo-text { font-size: 0.82rem; font-weight: 800; line-height: 1.15; } .cp-sidebar-nav { flex: 1; display: flex; flex-direction: column; gap: 0.35rem; } .cp-sidebar-nav .nav-link { display: flex; align-items: center; gap: 11px; padding: 10px 14px; color: #9ba3af; text-decoration: none; font-weight: 600; font-size: 0.8rem; border-radius: 12px; transition: background 0.15s, color 0.15s; } .cp-sidebar-nav .nav-link i { width: 18px; text-align: center; font-size: 0.95rem; } .cp-sidebar-nav .nav-link:hover, .cp-sidebar-nav .nav-link.active { background: var(--cp-primary); color: #fff; } .cp-sidebar-foot { margin-top: auto; background: #f9f9fb; border: 1px solid #f0f0f5; border-radius: 14px; padding: 0.7rem; } .cp-profile-row { display: flex; align-items: center; gap: 10px; } .cp-profile-avatar { width: 34px; height: 34px; border-radius: 10px; background: var(--cp-primary); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 0.78rem; flex-shrink: 0; } .cp-profile-name { font-size: 0.76rem; font-weight: 800; color: #1a1c24; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cp-profile-email { font-size: 0.65rem; color: var(--cp-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cp-sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(15, 23, 42, 0.45); z-index: 1035; } /* Main shell */ .cp-shell { margin-left: 200px; min-height: 100vh; width: calc(100% - 200px); display: flex; flex-direction: column; } .cp-mobile-header { display: none; padding: 0.85rem 1rem; background: #fff; border-bottom: 1px solid var(--cp-border); align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 1020; } .cp-sidebar-toggle { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--cp-border); background: #f8fafc; color: var(--cp-text); display: grid; place-items: center; cursor: pointer; } /* Topbar (navbar override) */ .cp-shell .client-navbar { position: sticky; top: 0; background: linear-gradient(180deg, rgba(255,255,255,.99), rgba(248,250,252,.96)) !important; backdrop-filter: blur(12px); border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important; box-shadow: 0 4px 20px rgba(15, 23, 42, 0.05); } .cp-shell .navbar-container { height: 56px; max-width: 100%; } .cp-shell .navbar-brand, .cp-shell .desktop-menu { display: none !important; } .cp-shell .navbar-left { flex: 0; min-width: 0; } .cp-shell .navbar-actions { margin-left: auto; } .cp-content { flex: 1; padding: 1.25rem 1.5rem 2rem; } .cp-page-wrap { background: transparent; border-radius: var(--cp-radius-lg); padding: 0; min-height: auto; } /* Dashboard — matches admin dashboard layout */ .cp-dashboard-wrap { display: flex; flex-direction: column; gap: 14px; } .cp-dashboard-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 4px 2px 0; } .cp-dashboard-top h1 { margin: 0; font-size: 1.15rem; font-weight: 800; color: var(--cp-text); } .cp-dashboard-top p { margin: 4px 0 0; font-size: 0.82rem; color: var(--cp-muted); } .cp-metric-pill { background: #fff; border: 1px solid var(--cp-border); color: var(--cp-text); border-radius: 999px; padding: 6px 12px; font-size: 0.72rem; font-weight: 700; } .cp-dashboard-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } .cp-dashboard-mid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; align-items: stretch; } .cp-dashboard-grid.cp-dashboard-grid--legacy { display: none; } .cp-dashboard-grid:not(.cp-dashboard-grid--legacy) { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } .cp-dashboard-hero { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 16px 18px; } .cp-hero-pill { display: none; } .cp-stat-card { display: flex; align-items: center; gap: 14px; min-height: 96px; padding: 16px 18px; } .cp-stat-icon { width: 38px; height: 38px; border-radius: 50%; background: #1a1c24; color: #fff; display: grid; place-items: center; flex-shrink: 0; font-size: 0.85rem; } .cp-hero-pill { display: none; } .cp-map-card, .cp-dashboard-chart { min-height: 280px; padding: 16px 18px; } .cp-orders-card { padding: 16px 18px; } .cp-chart-wrap { height: 220px; } .summary-card { padding: 16px 18px; min-height: auto; } @media (max-width: 1200px) { .cp-dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cp-dashboard-mid { grid-template-columns: 1fr; } } @media (max-width: 575.98px) { .cp-dashboard-stats { grid-template-columns: 1fr; } } /* Impersonation */ .cp-impersonation { background: linear-gradient(135deg, #6f42c1, #5a32a3); color: #fff; padding: 0.65rem 1.25rem; font-size: 0.85rem; } .cp-impersonation .btn-light { background: #fff; color: #6f42c1; font-weight: 700; border: none; border-radius: 10px; } /* Cards & sections — unify page inline styles */ .cp-body .card, .cp-body .content-section, .cp-body .table-card, .cp-body .inventory-header-card, .cp-body .cardx { background: #fff !important; border: 1px solid var(--cp-border) !important; border-radius: var(--cp-radius-lg) !important; box-shadow: var(--cp-shadow) !important; } .cp-body .content-section { padding: 1.35rem 1.5rem; margin-bottom: 1rem; } .cp-body .section-title { font-size: 1.05rem; font-weight: 800; color: var(--cp-text); margin: 0; } .cp-body .section-subtitle { font-size: 0.82rem; color: var(--cp-muted); margin: 0.15rem 0 0; } .cp-body .section-header { display: flex; align-items: flex-start; gap: 0.85rem; margin-bottom: 1.1rem; } .cp-body .section-icon { width: 42px; height: 42px; border-radius: 12px; background: rgba(91, 92, 245, 0.1); color: var(--cp-primary); display: grid; place-items: center; flex-shrink: 0; } /* Buttons */ .cp-body .btn-primary, .cp-body .btn-primary-custom { background: var(--cp-primary) !important; border-color: var(--cp-primary) !important; border-radius: 12px !important; font-weight: 700; } .cp-body .btn-primary:hover, .cp-body .btn-primary-custom:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(91, 92, 245, 0.28); } .cp-body .btn-outline-primary { border-color: var(--cp-primary) !important; color: var(--cp-primary) !important; border-radius: 12px !important; font-weight: 700; } .cp-body .btn-secondary, .cp-body .btn-outline-secondary { border-radius: 12px !important; font-weight: 600; } /* Tables */ .cp-body .premier-table thead, .cp-body .table thead { background: var(--cp-primary) !important; } .cp-body .premier-table thead th, .cp-body .table thead th { color: #fff !important; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; border: none !important; padding: 0.75rem 0.85rem !important; } .cp-body .premier-table tbody td, .cp-body .table tbody td { padding: 0.7rem 0.85rem !important; font-size: 0.84rem; vertical-align: middle; border-color: var(--cp-border) !important; } .cp-body .premier-table tbody tr:hover, .cp-body .table tbody tr:hover { background: #f8fafc !important; } /* Modals — must sit above sidebar (1040) and mobile nav (1030) */ body.cp-body .modal { z-index: 1060 !important; } body.cp-body .modal-backdrop { z-index: 1055 !important; } @media screen { body.cp-body .modal.show { display: block !important; } } .cp-body .modal-content { border: none; border-radius: 20px; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.18); overflow: hidden; } .cp-body .modal-header { background: linear-gradient(180deg, #fff, #f8fafc); border-bottom: 1px solid var(--cp-border); padding: 1.1rem 1.35rem; } .cp-body .modal-title { font-weight: 800; font-size: 1.05rem; color: var(--cp-text); } .cp-body .modal-body { padding: 1.25rem 1.35rem; } .cp-body .modal-footer { border-top: 1px solid var(--cp-border); padding: 0.9rem 1.35rem; background: #fafbff; } .cp-body .modal .form-control, .cp-body .modal .form-select { border-radius: 12px; border-color: var(--cp-border); padding: 0.55rem 0.85rem; } .cp-body .modal .form-control:focus, .cp-body .modal .form-select:focus { border-color: var(--cp-primary); box-shadow: 0 0 0 3px rgba(91, 92, 245, 0.12); } /* Custom reason modal (notifications) */ .cp-body .reason-modal { border-radius: 20px; border: none; box-shadow: 0 24px 60px rgba(15, 23, 42, 0.2); } /* Dropdowns in topbar */ .cp-shell .dropdown-menu { border: 1px solid var(--cp-border); border-radius: 14px; padding: 0.35rem; box-shadow: 0 12px 40px rgba(15, 23, 42, 0.1); } .cp-shell .dropdown-item { border-radius: 10px; font-size: 0.82rem; font-weight: 600; padding: 0.5rem 0.85rem; } .cp-shell .notification-menu { width: min(360px, 92vw); max-height: 420px; overflow: hidden; display: flex; flex-direction: column; } .cp-shell .notification-list { overflow-y: auto; max-height: 320px; } /* Mobile bottom nav — hidden on desktop; fixed bar on small screens */ .cp-shell .client-mobile-bottom-nav { display: none; background: #fff; border-top: 1px solid var(--cp-border); box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.06); } .cp-shell .cmb-item.active { color: var(--cp-primary); } /* Dropify wrap on dashboard */ .cp-body .dropify-wrap { background: transparent !important; padding: 0 !important; min-height: auto !important; } @media (max-width: 991.98px) { .cp-sidebar { transform: translateX(-100%); } .cp-sidebar.open { transform: translateX(0); } .cp-sidebar-overlay.open { display: block; } .cp-shell { margin-left: 0; width: 100%; } .cp-mobile-header { display: flex; } .cp-content { padding: 1rem 1rem 5.5rem; } } /* ─── Page layout overrides (legacy inline styles) ─── */ .cp-body .inventory-container, .cp-body .sales-container, .cp-body .reports-container { background: transparent !important; padding: 0 !important; min-height: auto !important; } .cp-body .inventory-header-card, .cp-body .sales-header, .cp-body .filters-card { border-radius: var(--cp-radius-lg) !important; margin-bottom: 1rem !important; } .cp-body .stat-item { background: #f8fafc !important; border-radius: 12px !important; border: 1px solid var(--cp-border); } .cp-body .stat-item strong, .cp-body .mark-all-read, .cp-body .notification-icon, .cp-body .unread-dot { color: var(--cp-primary) !important; } .cp-body .notification-icon { background: rgba(91, 92, 245, 0.12) !important; } .cp-body .notification-item.unread { background: rgba(91, 92, 245, 0.06) !important; } .cp-body .premier-table tbody tr:hover { background: #f8fafc !important; } .cp-body .form-control:focus, .cp-body .form-select:focus { border-color: var(--cp-primary); box-shadow: 0 0 0 3px rgba(91, 92, 245, 0.12); } .cp-body .sales-header h1, .cp-body .page-title { font-weight: 800 !important; color: var(--cp-text) !important; } /* Dashboard stat typography */ .cp-stat-cap { margin: 0 0 6px; color: var(--cp-muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 700; } .cp-stat-num { font-size: clamp(1.1rem, 2vw, 1.35rem); font-weight: 800; line-height: 1.2; } .cp-map-card { grid-column: span 2; min-height: 320px; } .cp-orders-card { grid-column: 1 / -1; } .cp-table-clean { width: 100%; border-collapse: collapse; font-size: 12px; } .cp-table-clean th, .cp-table-clean td { padding: 8px 6px; border-bottom: 1px solid #eef2f7; } .cp-table-clean th { color: #64748b; font-weight: 700; font-size: 0.72rem; text-transform: uppercase; } .cp-status-pill { border-radius: 999px; padding: 4px 9px; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; } .status-pending { background: #fff7ed; color: #c2410c; } .status-assigned { background: #eff6ff; color: #1d4ed8; } .status-delivered { background: #ecfdf3; color: #047857; } .status-cancelled { background: #fef2f2; color: #b91c1c; } .cp-panel-title { font-size: 13px; font-weight: 800; margin: 0 0 8px; color: var(--cp-text); } .summary-card { min-height: auto; } /* ─── Topbar / navbar (inside cp-shell) ─── */ .cp-shell .client-navbar { z-index: 1010; } .cp-shell .navbar-container { width: 100%; padding: 0 1.25rem; display: flex; align-items: center; justify-content: space-between; } .cp-shell .navbar-actions { display: flex; align-items: center; gap: 0.35rem; } .cp-shell .navbar-action-btn { position: relative; background: #f8fafc; border: 1px solid var(--cp-border); width: 38px; height: 38px; padding: 0; color: #64748b; cursor: pointer; border-radius: 10px; transition: all 0.15s; font-size: 1rem; display: inline-grid; place-items: center; } .cp-shell .navbar-action-btn:hover { background: #fff; color: var(--cp-primary); border-color: rgba(91, 92, 245, 0.25); } .cp-shell .btn-impersonate-stop { background: linear-gradient(135deg, #6f42c1, #5a32a3) !important; color: #fff !important; border: none !important; width: auto !important; padding: 0 0.65rem !important; } .cp-shell .notification-badge { position: absolute; top: -2px; right: -2px; background: #ef4444; color: #fff; border-radius: 999px; min-width: 17px; height: 17px; font-size: 0.58rem; font-weight: 800; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; } .cp-shell .navbar-dropdown { position: relative; } .cp-shell .dropdown-menu { position: absolute; top: calc(100% + 6px); right: 0; background: #fff; min-width: 300px; display: none; z-index: 1050; } .cp-shell .dropdown-menu.show { display: block; } .cp-shell .dropdown-header { padding: 0.85rem 1rem; border-bottom: 1px solid var(--cp-border); display: flex; justify-content: space-between; align-items: center; } .cp-shell .dropdown-header h6 { margin: 0; font-weight: 800; font-size: 0.88rem; } .cp-shell .mark-all-read { font-size: 0.78rem; text-decoration: none; font-weight: 600; } .cp-shell .notification-item { padding: 0.85rem 1rem; border-bottom: 1px solid var(--cp-border); display: flex; gap: 0.75rem; text-decoration: none; color: inherit; transition: background 0.15s; } .cp-shell .notification-item:hover { background: #f8fafc; } .cp-shell .notification-icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex-shrink: 0; } .cp-shell .notification-text { margin: 0 0 0.2rem; font-size: 0.82rem; font-weight: 600; } .cp-shell .notification-time { color: var(--cp-muted); font-size: 0.72rem; } .cp-shell .notification-empty { padding: 2rem; text-align: center; color: var(--cp-muted); font-size: 0.85rem; } .cp-shell .dropdown-footer { padding: 0.65rem 1rem; border-top: 1px solid var(--cp-border); text-align: center; } .cp-shell .dropdown-footer a { font-size: 0.8rem; font-weight: 700; text-decoration: none; color: var(--cp-primary); } .cp-shell .profile-menu { min-width: 220px; } .cp-shell .profile-header { padding: 0.85rem 1rem; } .cp-shell .profile-info strong { display: block; font-size: 0.85rem; } .cp-shell .profile-info small { color: var(--cp-muted); font-size: 0.72rem; } .cp-shell .dropdown-item { display: flex; align-items: center; gap: 0.65rem; padding: 0.55rem 0.85rem; color: var(--cp-text); text-decoration: none; border: none; background: none; width: 100%; cursor: pointer; } .cp-shell .dropdown-item:hover { background: #f8fafc; } .cp-shell .dropdown-item.logout-btn { color: #ef4444; } .cp-shell .dropdown-divider { height: 1px; background: var(--cp-border); margin: 0.35rem 0; } .cp-shell .dropdown-item-form { margin: 0; } .cp-shell .mobile-menu, .cp-shell .mobile-menu-toggle { display: none !important; } @media (max-width: 991.98px) { .cp-shell .navbar-actions > .navbar-dropdown, .cp-shell .navbar-actions #soundToggle, .cp-shell .navbar-actions #darkModeToggle, .cp-shell .navbar-actions .btn-impersonate-stop { display: none; } .cp-shell .client-mobile-bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; display: grid; grid-template-columns: repeat(4, 1fr); padding-bottom: env(safe-area-inset-bottom); } .cp-shell .cmb-item { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.2rem; text-decoration: none; color: #94a3b8; font-size: 0.66rem; font-weight: 700; min-height: 58px; } .cp-shell .cmb-item i { font-size: 1rem; } .cp-shell .cmb-badge { position: absolute; top: 7px; right: 24%; background: #ef4444; color: #fff; border-radius: 999px; min-width: 16px; height: 16px; font-size: 0.58rem; font-style: normal; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; } body.cp-body { padding-bottom: calc(66px + env(safe-area-inset-bottom)); } } /* SweetAlert */ .cp-swal-popup { border-radius: 20px !important; font-family: 'Plus Jakarta Sans', system-ui, sans-serif !important; padding: 1.25rem !important; } .swal2-styled.swal2-confirm { border-radius: 12px !important; font-weight: 700 !important; padding: 0.55rem 1.25rem !important; } .swal2-styled.swal2-cancel { border-radius: 12px !important; font-weight: 600 !important; } /* ─── Auth pages ─── */ body.cp-auth-body { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; background: var(--cp-bg); color: var(--cp-text); min-height: 100vh; margin: 0; } .cp-auth-shell { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1.5rem; } .cp-auth-brand { display: none !important; } .cp-auth-card-brand { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid var(--cp-border); } .cp-auth-logo { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #1a1c24; } .cp-auth-logo-icon { width: 38px; height: 38px; border-radius: 10px; background: var(--cp-primary); color: #fff; display: grid; place-items: center; font-size: 0.95rem; } .cp-auth-logo-img { width: 38px; height: 38px; border-radius: 10px; object-fit: contain; } .cp-auth-logo-text { font-size: 0.95rem; font-weight: 800; line-height: 1.1; } .cp-auth-badge { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--cp-muted); background: #f8fafc; border: 1px solid var(--cp-border); border-radius: 999px; padding: 0.3rem 0.65rem; white-space: nowrap; } .cp-auth-main { display: none !important; } .cp-auth-card { width: 100%; max-width: 420px; background: #fff; border-radius: var(--cp-radius-lg); border: 1px solid var(--cp-border); box-shadow: var(--cp-shadow); padding: 1.75rem 1.85rem; } .cp-auth-card-wide { max-width: 460px; } .cp-auth-card-head h1 { margin: 0; font-size: 1.35rem; font-weight: 800; color: var(--cp-text); } .cp-auth-card-head p { margin: 0.35rem 0 0; color: var(--cp-muted); font-size: 0.88rem; } .cp-auth-card-body { margin-top: 1.25rem; } .cp-auth-card-foot { margin-top: 1.25rem; padding-top: 1.15rem; border-top: 1px solid var(--cp-border); } .cp-auth-form .form-label { font-size: 0.78rem; font-weight: 700; color: #475569; margin-bottom: 0.35rem; } .cp-auth-form .form-control { border-radius: 12px; border-color: var(--cp-border); padding: 0.65rem 0.9rem; font-size: 0.9rem; } .cp-auth-input-wrap { position: relative; } .cp-auth-input-wrap .form-control { padding-right: 2.75rem; } .cp-auth-eye { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); border: none; background: none; color: var(--cp-muted); cursor: pointer; padding: 0.25rem; } .cp-auth-submit { border-radius: 12px !important; font-weight: 800 !important; padding: 0.7rem 1rem !important; background: var(--cp-primary) !important; border-color: var(--cp-primary) !important; } .cp-auth-submit-outline { border-radius: 12px !important; font-weight: 700 !important; padding: 0.65rem 1rem !important; } .cp-auth-link { color: var(--cp-primary); text-decoration: none; font-weight: 600; } .cp-auth-link:hover { text-decoration: underline; } .cp-auth-muted { color: var(--cp-muted); font-size: 0.88rem; } .cp-auth-alert { border-radius: 12px; padding: 0.85rem 1rem; margin-bottom: 1rem; font-size: 0.85rem; display: flex; gap: 0.5rem; align-items: flex-start; } .cp-auth-alert-danger { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; } .cp-auth-alert-success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; } .cp-auth-info { background: #f8fafc; border: 1px solid var(--cp-border); border-radius: 12px; padding: 0.85rem 1rem; margin-bottom: 1rem; font-size: 0.85rem; color: #475569; display: flex; gap: 0.5rem; align-items: flex-start; } .cp-auth-info i { color: var(--cp-primary); margin-top: 2px; } .cp-auth-email-pill { display: inline-flex; align-items: center; gap: 0.5rem; background: #f8fafc; border: 1px solid var(--cp-border); border-radius: 999px; padding: 0.45rem 0.9rem; font-size: 0.82rem; font-weight: 600; margin-bottom: 1rem; } .cp-auth-otp { text-align: center; letter-spacing: 0.35em; font-size: 1.35rem !important; font-weight: 800 !important; } @media (max-width: 575.98px) { .cp-auth-shell { padding: 1rem; } .cp-auth-card { padding: 1.35rem 1.25rem; border-radius: 20px; } } /* Public landing (client home) */ body.cp-home-body { font-family: 'Plus Jakarta Sans', system-ui, sans-serif; background: var(--cp-bg); color: var(--cp-text); } .cp-home-nav { background: #fff; border-bottom: 1px solid var(--cp-border); padding: 0.85rem 0; position: sticky; top: 0; z-index: 100; } .cp-home-hero { padding: 4rem 0 3rem; } .cp-home-hero h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 800; line-height: 1.15; } .cp-home-hero p { color: #64748b; font-size: 1.05rem; max-width: 32rem; } .cp-home-card { background: #fff; border: 1px solid var(--cp-border); border-radius: 20px; padding: 1.75rem; height: 100%; box-shadow: var(--cp-shadow); transition: transform 0.2s, box-shadow 0.2s; } .cp-home-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08); } .cp-home-icon { width: 52px; height: 52px; border-radius: 14px; background: rgba(91, 92, 245, 0.12); color: var(--cp-primary); display: grid; place-items: center; font-size: 1.25rem; margin-bottom: 1rem; } .cp-home-cta { background: var(--cp-primary); color: #fff; padding: 3.5rem 0; margin-top: 2rem; } .cp-home-cta h2 { font-weight: 800; margin-bottom: 0.75rem; } .cp-home-btn { border-radius: 12px; font-weight: 700; padding: 0.65rem 1.35rem; } .cp-home-btn-primary { background: var(--cp-primary); border-color: var(--cp-primary); color: #fff; } .cp-home-btn-outline { border: 2px solid #fff; color: #fff; background: transparent; } .cp-home-btn-outline:hover { background: #fff; color: var(--cp-primary); }