← Back
Editing: admin.css
/** * SeedProd Admin CSS * * DESIGN PHILOSOPHY: * 1. WordPress Native First - Leverage WordPress admin styles as the foundation * 2. Minimal Overrides - Only customize what's necessary for brand identity * 3. CSS Variables - Use variables for all repeated values (colors, spacing, typography) * 4. DRY Principle - Avoid repetition through variables and utility classes * 5. Specificity Control - Avoid !important unless overriding WordPress core styles * 6. Semantic Naming - Variables follow a clear, predictable naming convention * 7. Progressive Enhancement - Build on top of WordPress, don't fight against it * * VARIABLE NAMING CONVENTIONS: * - Colors: --seedprod-{color}-{shade} (e.g., gray-100 to gray-1000) * - Typography: --seedprod-font-{size} (xs, sm, base, md, lg, xl, 2xl, 3xl, 4xl) * - Spacing: --seedprod-spacing-{size} (xs: 4px to 4xl: 40px) * - Shadows: --seedprod-shadow-{size} (xs, sm, md, lg) * - Radius: --seedprod-radius-{size} (sm, md, lg, xl, full) * * WORDPRESS INTEGRATION: * - Use .postbox for cards/widgets (enhanced with .seedprod-card) * - Use .button classes as base (enhanced with .seedprod-button-primary) * - Use .notice classes for messages where possible * - Use dashicons for icons throughout * * BROWSER SUPPORT: * - CSS Variables (Custom Properties) supported in all modern browsers * - Fallbacks included where necessary for older browsers * * MAINTENANCE NOTES: * - When adding new styles, check if a variable already exists * - Create new utility classes for patterns used 3+ times * - Document any WordPress core overrides with reason * * TABLE OF CONTENTS: * 1. CSS Variables & Design Tokens * 2. Reusable Card Styles * 3. Reusable Button Styles * 4. Utility Classes * 5. Lite Upgrade Bar * 6. Header Component * 7. License Activation Page * 8. Dashboard Widgets */ /* Override body background for SeedProd pages */ body.seedprod-body { background-color: #f0f0f1 !important; } /* ========================================================================== 1. CSS VARIABLES & DESIGN TOKENS ========================================================================== */ :root { /* Brand Colors */ --seedprod-orange: #E14E1B; --seedprod-orange-hover: #C43E0B; --seedprod-orange-light: #FFF5F1; --seedprod-success: #1da867; --seedprod-success-light: #d4f4dd; --seedprod-success-dark: #0a4f22; --seedprod-success-border: #8ed1a0; --seedprod-error: #dc3545; --seedprod-error-hover: #c82333; --seedprod-error-light: #fce4e4; --seedprod-error-dark: #8c1919; --seedprod-error-border: #f0b5b5; /* Neutral Colors (WordPress Grays) */ --seedprod-gray-100: #f6f7f7; --seedprod-gray-200: #f0f0f1; --seedprod-gray-300: #e5e7eb; --seedprod-gray-400: #dcdcde; --seedprod-gray-500: #c3c4c7; --seedprod-gray-600: #8c8f94; --seedprod-gray-700: #646970; --seedprod-gray-800: #50575e; --seedprod-gray-900: #2c3338; --seedprod-gray-1000: #1e1e1e; /* WordPress Blues */ --seedprod-link: #2271b1; --seedprod-link-hover: #135e96; /* Typography */ --seedprod-font-xs: 11px; --seedprod-font-sm: 12px; --seedprod-font-base: 13px; --seedprod-font-md: 14px; --seedprod-font-lg: 15px; --seedprod-font-xl: 18px; --seedprod-font-2xl: 20px; --seedprod-font-3xl: 24px; --seedprod-font-4xl: 42px; --seedprod-font-weight-normal: 400; --seedprod-font-weight-medium: 500; --seedprod-font-weight-semibold: 600; --seedprod-font-weight-bold: 700; /* Spacing */ --seedprod-spacing-xs: 4px; --seedprod-spacing-sm: 8px; --seedprod-spacing-md: 12px; --seedprod-spacing-lg: 16px; --seedprod-spacing-xl: 20px; --seedprod-spacing-2xl: 24px; --seedprod-spacing-3xl: 30px; --seedprod-spacing-4xl: 40px; /* Border Radius */ --seedprod-radius-sm: 4px; --seedprod-radius-md: 6px; --seedprod-radius-lg: 8px; --seedprod-radius-xl: 12px; --seedprod-radius-full: 50%; /* Shadows */ --seedprod-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.05); --seedprod-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.08); --seedprod-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08); --seedprod-shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.1); --seedprod-shadow-orange: 0 4px 12px rgba(225, 78, 27, 0.4); /* Transitions */ --seedprod-transition-fast: 0.2s; --seedprod-transition-base: 0.3s; --seedprod-transition-slow: 0.5s; /* Breakpoints */ --seedprod-breakpoint-sm: 782px; --seedprod-breakpoint-md: 1200px; --seedprod-breakpoint-lg: 1280px; /* Card Styles */ --seedprod-card-shadow: var(--seedprod-shadow-md); --seedprod-card-radius: var(--seedprod-radius-sm); --seedprod-card-padding: var(--seedprod-spacing-3xl); --seedprod-card-header-bg: var(--seedprod-gray-100); --seedprod-card-header-padding: var(--seedprod-spacing-md) var(--seedprod-spacing-xl); --seedprod-card-border-color: var(--seedprod-gray-300); /* Button Styles */ /* Button variables removed - using WordPress defaults */ /* Legacy - To maintain compatibility */ --seedprod-spacing-header: 32px; } /* ========================================================================== 2. REUSABLE CARD STYLES - Consistent card styling ========================================================================== */ /* Base card style - extends WordPress postbox */ .seedprod-card, .postbox.seedprod-card { box-shadow: var(--seedprod-card-shadow); border: none; border-radius: var(--seedprod-card-radius); margin-bottom: 0; } .seedprod-card .inside, .postbox.seedprod-card .inside { padding: var(--seedprod-card-padding); } /* Card with header */ .seedprod-card .hndle, .postbox.seedprod-card .hndle { background: var(--seedprod-card-header-bg); border-bottom: 1px solid var(--seedprod-card-border-color); border-radius: var(--seedprod-card-radius) var(--seedprod-card-radius) 0 0; cursor: default; padding: var(--seedprod-card-header-padding); font-size: var(--seedprod-font-lg); font-weight: var(--seedprod-font-weight-semibold); margin: 0; line-height: 1.4; } .seedprod-card h2.hndle, .postbox.seedprod-card h2.hndle { margin: 0; padding: var(--seedprod-card-header-padding); } /* ========================================================================== 3. BUTTON STYLES - Minimal brand modifiers only ========================================================================== */ /* Primary button modifier - Just changes color to SeedProd orange */ .button-primary.seedprod-button-primary { background: var(--seedprod-orange) !important; border-color: var(--seedprod-orange) !important; display: inline-flex; align-items: center; justify-content: center; gap: 6px; } .button-primary.seedprod-button-primary:hover { background: var(--seedprod-orange-hover) !important; border-color: var(--seedprod-orange-hover) !important; } .button-primary.seedprod-button-primary:disabled, .button-primary.seedprod-button-primary[disabled] { background: #c3c4c7 !important; border-color: #c3c4c7 !important; color: #646970 !important; cursor: not-allowed !important; } /* Ensure proper text alignment in buttons */ .button-primary.seedprod-button-primary .button-text { line-height: 1; display: inline-block; } /* Secondary button modifier - Orange border and text */ .button.seedprod-button-secondary { border-color: var(--seedprod-orange) !important; color: var(--seedprod-orange) !important; background: transparent !important; /* Override any primary button background */ display: inline-flex; align-items: center; gap: 6px; } .button.seedprod-button-secondary:hover { border-color: var(--seedprod-orange-hover) !important; color: var(--seedprod-orange-hover) !important; background: rgba(225, 78, 27, 0.05) !important; } .button.seedprod-button-secondary:disabled, .button.seedprod-button-secondary[disabled] { border-color: #c3c4c7 !important; color: #646970 !important; background: transparent !important; cursor: not-allowed !important; } /* Fix WordPress core .button-primary conflicts with secondary buttons */ .button-primary.seedprod-button-secondary { background: transparent !important; /* Force transparent background */ border-color: var(--seedprod-orange) !important; color: var(--seedprod-orange) !important; } .button-primary.seedprod-button-secondary:hover { background: rgba(225, 78, 27, 0.05) !important; border-color: var(--seedprod-orange-hover) !important; color: var(--seedprod-orange-hover) !important; } /* Upgrade button modifier - Green background with white text for upgrade CTAs */ .button.seedprod-upgrade-button { background: var(--seedprod-success) !important; border-color: var(--seedprod-success) !important; color: #fff !important; display: inline-flex; align-items: center; gap: 6px; } .button.seedprod-upgrade-button:hover { background: #178a51 !important; /* Darker green for hover */ border-color: #178a51 !important; color: #fff !important; } .button.seedprod-upgrade-button:disabled, .button.seedprod-upgrade-button[disabled] { background: #c3c4c7 !important; border-color: #c3c4c7 !important; color: #fff !important; cursor: not-allowed !important; opacity: 0.5; } /* Fix WordPress core .button-primary conflicts with upgrade buttons */ .button-primary.seedprod-upgrade-button { background: var(--seedprod-success) !important; border-color: var(--seedprod-success) !important; color: #fff !important; display: inline-flex; align-items: center; gap: 6px; } .button-primary.seedprod-upgrade-button:hover { background: #178a51 !important; border-color: #178a51 !important; color: #fff !important; } /* Style the star icon in upgrade buttons - flex parent handles alignment */ .seedprod-upgrade-button .seedprod-upgrade-icon { color: inherit; flex-shrink: 0; } /* Product Education Page Styles */ .seedprod-product-education-page { max-width: 1200px; margin: 20px auto; } .seedprod-product-education-page .postbox { border: 1px solid #c3c4c7; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); } .seedprod-product-education-page .inside { padding: 40px; } /* Main 50-50 Layout */ .seedprod-education-main { display: flex; gap: 60px; align-items: center; margin-bottom: 50px; } /* Left Column */ .seedprod-education-left { flex: 1; padding-right: 20px; } /* Right Column */ .seedprod-education-right { flex: 1; display: flex; align-items: center; justify-content: center; } /* PRO Feature Badge */ .seedprod-pro-feature-badge { display: inline-flex; align-items: center; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; padding: 8px 16px; border-radius: 20px; font-size: 13px; margin-bottom: 20px; } .seedprod-pro-feature-badge .dashicons { font-size: 16px; width: 16px; height: 16px; margin-right: 8px; } .seedprod-pro-feature-badge-text strong { font-weight: 600; } .seedprod-badge-separator { margin: 0 8px; opacity: 0.5; } /* Headlines and Text */ .seedprod-education-left h1 { font-size: 36px; line-height: 1.2; color: #1e1e1e; margin: 0 0 15px 0; font-weight: 700; } .seedprod-subtitle { font-size: 20px; color: #646970; line-height: 1.5; margin: 0 0 20px 0; } .seedprod-description { font-size: 16px; color: #50575e; line-height: 1.6; margin: 0 0 30px 0; } /* Benefits List */ .seedprod-benefit-points { margin: 30px 0; } .seedprod-benefit-points ul { list-style: none; margin: 0; padding: 0; } .seedprod-benefit-points li { display: flex; align-items: flex-start; margin-bottom: 15px; font-size: 15px; line-height: 1.6; color: #1e1e1e; } .seedprod-benefit-points .dashicons-yes-alt { color: var(--seedprod-success); font-size: 20px; margin-right: 12px; flex-shrink: 0; margin-top: 2px; } /* CTA Section */ .seedprod-education-cta { margin-top: 35px; } .seedprod-education-cta .button-hero { font-size: 18px; padding: 15px 30px; height: auto; line-height: 1.2; } .seedprod-cta-guarantee { display: flex; align-items: center; font-size: 14px; color: #646970; margin-top: 15px; } .seedprod-cta-guarantee .dashicons { margin-right: 8px; color: var(--seedprod-success); } /* Right Column - Image/Video */ .seedprod-feature-screenshot { max-width: 100%; height: auto; border-radius: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15); } .seedprod-video-wrapper { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; border-radius: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15); } .seedprod-video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; } /* Bottom Section */ .seedprod-education-bottom { padding-top: 40px; border-top: 1px solid #e0e0e0; text-align: center; } /* Testimonial */ .seedprod-testimonial-section { margin-bottom: 30px; } .seedprod-testimonial-section blockquote { margin: 0; padding: 0; border: none; background: none; } .seedprod-testimonial-section blockquote p { font-size: 18px; font-style: italic; color: #50575e; line-height: 1.6; margin: 0 0 20px 0; } .seedprod-testimonial-section cite { display: block; font-style: normal; font-size: 14px; color: #646970; } .seedprod-testimonial-section cite strong { color: #1e1e1e; font-weight: 600; } /* Social Proof */ .seedprod-cta-users { font-size: 14px; color: #646970; margin: 0; } /* Responsive Design */ @media (max-width: 960px) { .seedprod-education-main { flex-direction: column; gap: 40px; } .seedprod-education-left { padding-right: 0; } .seedprod-education-left h1 { font-size: 28px; } .seedprod-subtitle { font-size: 18px; } } /* Black button modifier - For upgrade bar */ .button-primary.seedprod-button-black { background: #ffffff !important; border-color: #ffffff !important; color: #1e1e1e !important; } .button-primary.seedprod-button-black:hover { background: #f0f0f0 !important; border-color: #f0f0f0 !important; color: #000 !important; } /* Fix dashicon alignment in buttons - WP6 fallback (inline-block context) */ .button .dashicons { vertical-align: middle; margin-top: -2px; margin-right: 4px; } /* * WP7 changed .wp-core-ui .button .dashicons to use vertical-align: top + line-height: 1.9 * (specificity 0,0,3,0), overriding our lower-specificity rule above. * Fix: use inline-flex + align-items on SeedProd buttons so icon centering * is layout-driven rather than relying on vertical-align. * .wp-core-ui prefix raises specificity to 0,0,4,0 to override WP7's display: inline-block. */ .wp-core-ui .button.seedprod-upgrade-button, .wp-core-ui .button-primary.seedprod-upgrade-button, .wp-core-ui .button.seedprod-button-secondary, .wp-core-ui .button-primary.seedprod-button-secondary { display: inline-flex; align-items: center; gap: 6px; } /* Reset WP7's line-height: 1.9 on dashicons within SeedProd flex buttons. * WP7 calculates line-height for 20px dashicons, but our icons use 16px, * so the inherited line-height creates extra box height. Reset to 1 for * accurate flex centering. Specificity 0,0,4,0 beats WP7's 0,0,3,0. */ .wp-core-ui .button.seedprod-upgrade-button .dashicons, .wp-core-ui .button.seedprod-button-secondary .dashicons { line-height: 1; margin-right: 0; margin-top: 0; flex-shrink: 0; } /* Center the loading spinner's dashicon. WP core's * .wp-core-ui .button .dashicons (vertical-align: top, specificity 0,0,3,0) * otherwise pins it to the top of the button; the .wp-core-ui prefix here * reaches 0,0,4,0 to win. margin: 0 drops the icon-beside-text offsets that * the standalone spinner does not need. line-height: 1 centers the glyph in * its box so it rotates on its own axis instead of orbiting the box center * (WP7's inherited line-height pushes the glyph off the rotation origin). */ .wp-core-ui .button .button-spinner .dashicons { vertical-align: middle; margin: 0; line-height: 1; } /* Center dashicon glyphs in modal action buttons (e.g. import/export * Select File / Import / Export). WP7's .wp-core-ui .button .dashicons sets * line-height: 1.9 (0,0,3,0), which drops the glyph below the button's * flex-centered icon box. The .wp-core-ui prefix reaches 0,0,4,0 to reset it. */ .wp-core-ui .seedprod-modal .button .dashicons { line-height: 1; vertical-align: middle; } /* ========================================================================== 4. UTILITY CLASSES - Reusable patterns ========================================================================== */ /* Flexbox utilities */ .seedprod-flex-center { display: flex; align-items: center; justify-content: center; } .seedprod-flex-between { display: flex; justify-content: space-between; align-items: center; } /* Text utilities */ .seedprod-text-center { text-align: center; } .seedprod-text-muted { color: var(--seedprod-gray-700); } /* Spacing utilities */ .seedprod-mt-sm { margin-top: var(--seedprod-spacing-sm); } .seedprod-mt-md { margin-top: var(--seedprod-spacing-md); } .seedprod-mt-lg { margin-top: var(--seedprod-spacing-lg); } .seedprod-mt-xl { margin-top: var(--seedprod-spacing-xl); } /* ========================================================================== 5. LITE UPGRADE BAR ========================================================================== */ @keyframes slideDown { from { transform: translateY(-100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .seedprod-lite-upgrade-bar { background: linear-gradient(135deg, var(--seedprod-success) 0%, #3A9D56 100%); color: #fff; padding: 8px 20px; margin: -20px -20px 0 -20px; position: relative; font-size: 13px; text-shadow: 0 1px 2px rgba(0,0,0,0.15); animation: slideDown 0.3s ease-out; } .seedprod-upgrade-bar-content { display: flex; justify-content: center; align-items: center; gap: 20px; max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; } .seedprod-upgrade-bar-message { display: flex; align-items: center; gap: 10px; } .seedprod-upgrade-icon { font-size: 16px; line-height: 1; } .seedprod-upgrade-text { font-size: 13px; line-height: 1.2; } .seedprod-upgrade-text strong { font-weight: 600; margin-right: 6px; } /* Adjust header margin when upgrade bar is present */ .seedprod-lite-upgrade-bar + .seedprod-dashboard-header { margin-top: 0; } /* License Warning Bar - Pro version with invalid/missing license */ .seedprod-license-warning-bar { background: var(--seedprod-error); color: #fff; padding: 12px 20px; margin: -20px -20px 0 -20px; position: relative; font-size: var(--seedprod-font-md); font-weight: var(--seedprod-font-weight-medium); text-align: center; animation: slideDown 0.3s ease-out; } .seedprod-license-bar-content { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; } .seedprod-license-warning-text { display: inline-block; } .seedprod-license-separator { margin: 0 10px; opacity: 0.7; } .seedprod-license-link { color: #fff !important; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px; margin-left: 8px; transition: opacity 0.2s ease; } .seedprod-license-link:hover { color: #fff !important; opacity: 0.9; text-decoration: underline; } .seedprod-license-link:focus { color: #fff !important; box-shadow: none; outline: 2px solid rgba(255,255,255,0.5); outline-offset: 2px; } .seedprod-license-warning-bar + .seedprod-dashboard-header { margin-top: 0; } /* Inline notice for license messages */ #seedprod-license-message { margin-bottom: 10px; margin-top: 10px; } #seedprod-license-message .notice.inline { margin: 0; padding: 8px 12px; border-left-width: 4px; display: inline-block; } #seedprod-license-message .notice.inline p { margin: 0; padding: 0; } /* ========================================================================== NOTIFICATION BAR - System notifications from S3 feed ========================================================================== */ .seedprod-notification-bar { background: linear-gradient(135deg, #FFF8F5 0%, #FFFFFF 100%); border-left: 4px solid #E14E1B; padding: 16px 20px; margin: 20px 0; box-shadow: 0 2px 8px rgba(225, 78, 27, 0.15); position: relative; display: flex; align-items: flex-start; border-radius: 0 8px 8px 0; animation: slideInFromTop 0.5s ease-out; } @keyframes slideInFromTop { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } } .seedprod-notification-bar.notice { margin-left: 0; margin-right: 0; } .seedprod-notification-content { display: flex; align-items: center; gap: 15px; width: 100%; flex-wrap: wrap; } .seedprod-notification-icon { flex-shrink: 0; color: #E14E1B; font-size: 20px; line-height: 1; margin-top: 2px; animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } } .seedprod-notification-icon img { width: 40px; height: 40px; object-fit: contain; } .seedprod-notification-icon .dashicons { width: 24px; height: 24px; font-size: 24px; } .seedprod-notification-message { flex: 1; min-width: 0; } .seedprod-notification-message strong { display: block; font-size: 14px; color: #1D2327; margin-bottom: 5px; } .seedprod-notification-text { font-size: 13px; line-height: 1.5; color: #50575E; } .seedprod-notification-text p { margin: 0 0 8px 0; } .seedprod-notification-text p:last-child { margin-bottom: 0; } .seedprod-notification-actions { display: flex; gap: 8px; align-items: center; flex-shrink: 0; margin-left: auto; padding-right: 35px; /* Space for dismiss button */ } .seedprod-notification-actions .button { white-space: nowrap; font-weight: 600; transition: all 0.2s ease; } .seedprod-notification-actions .button-primary { background: #E14E1B; border-color: #E14E1B; color: #fff; box-shadow: 0 2px 4px rgba(225, 78, 27, 0.2); } .seedprod-notification-actions .button-primary:hover { background: #C73F0F; border-color: #C73F0F; transform: translateY(-1px); box-shadow: 0 3px 6px rgba(225, 78, 27, 0.3); } .seedprod-notification-actions .button-small { padding: 6px 14px; font-size: 13px; min-height: 30px; } .seedprod-notification-dismiss { position: absolute; top: 50%; transform: translateY(-50%); right: 12px; background: none; border: none; padding: 4px; cursor: pointer; color: #787C82; transition: color 0.2s; z-index: 10; } .seedprod-notification-dismiss:hover { color: #1D2327; } .seedprod-notification-dismiss .dashicons { font-size: 16px; width: 16px; height: 16px; } /* Responsive adjustments */ @media (max-width: 782px) { .seedprod-notification-content { flex-direction: column; } .seedprod-notification-actions { margin-left: 0; margin-top: 10px; padding-right: 35px; /* Keep space for dismiss button */ } .seedprod-notification-dismiss { top: 12px; right: 12px; transform: none; } } /* ========================================================================== 6. HEADER COMPONENT - Custom SeedProd header ========================================================================== */ .seedprod-dashboard-header { background: #fff; padding: var(--seedprod-spacing-2xl) var(--seedprod-spacing-header) var(--seedprod-spacing-header) var(--seedprod-spacing-header); margin: -20px -20px var(--seedprod-spacing-3xl) -20px; box-shadow: var(--seedprod-shadow-xs); } .seedprod-header-content { display: flex; justify-content: space-between; align-items: flex-end; } .seedprod-header-left { display: flex; align-items: flex-end; gap: var(--seedprod-spacing-2xl); } .seedprod-logo { height: 29px; width: auto; } .seedprod-header-separator { font-size: 29px; font-weight: 100; line-height: 0.8; margin: 0 -6px; } .seedprod-page-title { font-size: var(--seedprod-font-3xl); font-weight: var(--seedprod-font-weight-semibold); margin: 0; line-height: 1; } /* Help button */ .seedprod-help-link { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--seedprod-radius-full); background: var(--seedprod-gray-100); border: 1px solid var(--seedprod-gray-300); color: var(--seedprod-gray-800); text-decoration: none; transition: all var(--seedprod-transition-fast); position: relative; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .seedprod-help-link:hover { background: var(--seedprod-orange); border-color: var(--seedprod-orange); color: #fff; transform: translateY(-1px); box-shadow: 0 3px 6px rgba(225, 78, 27, 0.3); } .seedprod-help-link:focus { background: var(--seedprod-orange); border-color: var(--seedprod-orange); color: #fff; outline: 2px solid var(--seedprod-orange-light); outline-offset: 2px; box-shadow: 0 3px 6px rgba(225, 78, 27, 0.3); } .seedprod-help-link .dashicons { font-size: var(--seedprod-font-2xl); width: var(--seedprod-font-2xl); height: var(--seedprod-font-2xl); } /* Tooltip - Keep custom styling for brand consistency */ body:not(.admin_page_seedprod_pro_builder) .seedprod-tooltip { position: absolute; top: 100%; right: 0; margin-top: 10px; padding: 8px 14px; background: var(--seedprod-gray-900); color: #fff; font-size: var(--seedprod-font-sm); font-weight: var(--seedprod-font-weight-medium); border-radius: var(--seedprod-radius-md); white-space: nowrap; opacity: 0; visibility: hidden; transition: all var(--seedprod-transition-fast); pointer-events: none; z-index: 1000; box-shadow: var(--seedprod-shadow-md); } body .seedprod-dashboard-row .seedprod-tooltip{ white-space: normal; } .seedprod-tooltip::before { content: ''; position: absolute; bottom: 100%; right: 12px; border: 6px solid transparent; border-bottom-color: var(--seedprod-gray-900); } .seedprod-help-link:hover .seedprod-tooltip { opacity: 1; visibility: visible; margin-top: 12px; } /* Responsive adjustments for header */ @media (max-width: 782px) { .seedprod-dashboard-header { padding: var(--seedprod-spacing-lg) var(--seedprod-spacing-lg) var(--seedprod-spacing-lg) var(--seedprod-spacing-lg); margin: -12px -12px var(--seedprod-spacing-xl) -12px; } .seedprod-header-content { align-items: center; } .seedprod-header-left { gap: var(--seedprod-spacing-md); } .seedprod-logo { height: 24px; } .seedprod-header-separator { font-size: 24px; } .seedprod-page-title { font-size: var(--seedprod-font-xl); } .seedprod-help-link { width: 36px; height: 36px; } .seedprod-help-link .dashicons { font-size: var(--seedprod-font-xl); width: var(--seedprod-font-xl); height: var(--seedprod-font-xl); } } @media (max-width: 600px) { .seedprod-header-separator { display: none; } .seedprod-header-left { flex-direction: column; align-items: flex-start; gap: var(--seedprod-spacing-sm); } .seedprod-page-title { font-size: var(--seedprod-font-lg); } } /* ========================================================================== 7. LICENSE ACTIVATION PAGE ========================================================================== */ /* Page wrapper adjustments */ .seedprod-dashboard-page { /* Let WordPress handle the base styles */ padding: var(--seedprod-spacing-xl); margin-left: -20px !important; } /* License activation specific */ .seedprod-license-activation-view .seedprod-dashboard-header { margin-bottom: 0; } /* Background watermark */ .seedprod-license-activation-view .seedprod-dashboard-container { position: relative; background-image: url('../images/bg-leaf.svg'); background-repeat: no-repeat; background-position: center top; background-size: 500px auto; padding-top: 60px; max-width: 1200px; margin: 0 auto; opacity: 1; animation: fadeIn 0.5s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Welcome section */ .seedprod-welcome-section { text-align: center; padding: 40px 20px 20px; max-width: 800px; margin: 0 auto; } .seedprod-welcome-logo { width: 180px; height: auto; margin-bottom: var(--seedprod-spacing-xl); } .seedprod-welcome-title { font-size: 42px; font-weight: var(--seedprod-font-weight-bold); margin: 0 0 15px 0; line-height: 1.2; background: linear-gradient(135deg, #1e1e1e 0%, #50575e 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .seedprod-welcome-subtitle { font-size: 20px; font-weight: var(--seedprod-font-weight-semibold); color: var(--seedprod-orange); margin: 0 0 10px 0; } .seedprod-welcome-message { font-size: 17px; line-height: 1.6; margin: 0 auto 30px; max-width: 600px; } /* License card - Uses shared card styles with specific overrides */ .postbox.seedprod-license-notice { max-width: 700px; margin: 0 auto 30px; } .postbox.seedprod-license-notice .inside { padding: var(--seedprod-spacing-4xl); /* Slightly more padding for emphasis */ } .postbox.seedprod-license-notice h2 { font-size: var(--seedprod-font-xl); font-weight: var(--seedprod-font-weight-semibold); margin: 0 0 25px; text-align: center; line-height: 1.4; } /* Integrated License Activation Card */ .seedprod-license-activation-focused { padding: 30px !important; } .seedprod-license-activation-focused .inside { max-width: 700px; margin: 0 auto; } .seedprod-activation-steps { margin-bottom: 25px; } .seedprod-activation-steps h2 { font-size: 24px; margin-bottom: 20px; color: var(--seedprod-text-dark); font-weight: 600; } .seedprod-step-indicator { display: flex; align-items: center; gap: 12px; padding: 16px 20px; background: linear-gradient(135deg, rgba(225, 78, 27, 0.05) 0%, rgba(225, 78, 27, 0.02) 100%); border-left: 3px solid var(--seedprod-orange); border-radius: 4px; margin-bottom: 12px; } .seedprod-step-indicator.seedprod-step-upcoming { opacity: 0.4; background: #f9f9f9; border-left-color: #ddd; } .seedprod-step-upcoming .seedprod-step-number { background: #ccc; } .seedprod-step-number { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: var(--seedprod-orange); color: white; border-radius: 50%; font-weight: 600; font-size: 14px; flex-shrink: 0; } .seedprod-step-label { font-size: 15px; color: var(--seedprod-text-dark); font-weight: 500; } .seedprod-license-activation-focused .seedprod-license-form { margin-top: 0; } .seedprod-license-activation-focused .seedprod-license-input-group { justify-content: center; gap: 12px; } .seedprod-license-activation-focused .seedprod-license-input { font-size: 16px; padding: 14px 18px; min-width: 380px; height: auto; line-height: 1.4; } /* Feature list - kept for reference but can be removed if not used */ .seedprod-feature-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--seedprod-spacing-xl); margin: 30px 0; padding: 30px; background: linear-gradient(135deg, rgba(225, 78, 27, 0.03) 0%, rgba(225, 78, 27, 0.01) 100%); border-radius: 8px; border: 1px solid rgba(225, 78, 27, 0.1); } .seedprod-feature-item { display: flex; align-items: center; font-size: var(--seedprod-font-lg); font-weight: var(--seedprod-font-weight-medium); } .seedprod-feature-item .dashicons-yes { color: var(--seedprod-success); margin-right: 10px; font-size: 22px; filter: drop-shadow(0 1px 2px rgba(74, 184, 102, 0.3)); } /* License form */ .seedprod-license-form { margin: 30px 0; } .seedprod-license-input-group { display: flex; gap: 10px; margin-bottom: 15px; } input[type="password"].seedprod-license-input { flex: 1; border-color: var(--seedprod-gray-500); /* Softer border - matches WP specificity */ } /* Button styles defined in section 3 - Reusable Button Styles */ /* Messages - Use WordPress notice styles where possible */ .seedprod-license-message { margin-top: 15px; } .seedprod-message-success, .seedprod-message-error { padding: var(--seedprod-spacing-md) var(--seedprod-spacing-lg); border-radius: var(--seedprod-radius-sm); display: flex; align-items: center; gap: var(--seedprod-spacing-sm); } .seedprod-message-success { background: var(--seedprod-success-light); color: var(--seedprod-success-dark); border: 1px solid var(--seedprod-success-border); } .seedprod-message-error { background: var(--seedprod-error-light); color: var(--seedprod-error-dark); border: 1px solid var(--seedprod-error-border); } /* Help text */ .seedprod-license-help { text-align: center; font-size: 13px; margin-top: 12px; color: var(--seedprod-gray-600); } .seedprod-license-help a { color: var(--seedprod-orange); text-decoration: none; font-weight: 500; } .seedprod-license-help a:hover { text-decoration: underline; } /* Quick actions */ .seedprod-quick-actions { display: flex; justify-content: center; gap: 40px; margin-top: 40px; padding-top: 30px; border-top: 1px solid rgba(0, 0, 0, 0.08); } .seedprod-quick-action { text-align: center; text-decoration: none; font-size: var(--seedprod-font-md); color: #50575e; transition: all var(--seedprod-transition-fast); } .seedprod-quick-action:hover { color: #1e1e1e; transform: translateY(-2px); } .seedprod-quick-action .dashicons { display: block; width: 48px; height: 48px; margin: 0 auto 10px; background: #f6f7f7; border: 1px solid var(--seedprod-gray-300); color: #50575e; border-radius: 50%; line-height: 46px; /* Adjusted for border */ font-size: 22px; transition: all var(--seedprod-transition-fast); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .seedprod-quick-action:hover .dashicons { background: var(--seedprod-orange); border-color: var(--seedprod-orange); color: #fff; transform: scale(1.05); box-shadow: 0 4px 8px rgba(225, 78, 27, 0.3); } /* ========================================================================== 8. DASHBOARD WIDGETS (Post-activation) ========================================================================== */ .seedprod-dashboard-content { max-width: 1600px; margin: 20px 0; } /* Two-column grid layout - force side by side */ .seedprod-dashboard-row { display: flex; gap: var(--seedprod-spacing-xl); margin-bottom: var(--seedprod-spacing-xl); } .seedprod-dashboard-row .postbox { flex: 1; min-width: 0; /* Allow flex items to shrink */ } /* Make responsive - stack on smaller screens */ @media (max-width: 900px) { .seedprod-dashboard-row { flex-direction: column; } .seedprod-dashboard-row .postbox { width: 100%; } } /* Dashboard widgets use seedprod-card class for consistency */ /* ========================================================================== 9. WELCOME PAGE ========================================================================== */ .seedprod-welcome-page { background: #fff; min-height: 100vh; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 99999; overflow: auto; margin-left: -20px; /* Compensate for WordPress admin padding */ margin-top: -32px; /* Remove admin notices space */ } /* Container with watermark background */ .seedprod-welcome-top { background: url('../images/bg-leaf.svg'); background-position: top center; background-repeat: no-repeat; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 40px 20px; } .seedprod-welcome-container { max-width: 580px; width: 100%; text-align: center; z-index: 1; position: relative; } .seedprod-welcome-header { margin-bottom: 30px; } .seedprod-welcome-logo { width: auto; height: 50px; margin-bottom: 25px; margin-top: 0; } .seedprod-welcome-subtitle { font-size: 15px; font-weight: 600; color: #50575e; line-height: 1.6; max-width: 460px; margin: 0 auto 30px; letter-spacing: -0.01em; } .seedprod-welcome-box { background: #fff; border: 1px solid #dcdcde; border-radius: 4px; padding: 40px; box-shadow: 0 10px 40px rgba(0,0,0,0.08); z-index: 20; position: relative; margin-bottom: 60px; } .seedprod-welcome-box h2 { font-size: 16px; font-weight: 700; color: #1e1e1e; margin: 0 0 32px 0; line-height: 1.5; } .seedprod-welcome-actions { margin: 0; } /* Welcome button removed - using WordPress native styles */ /* Footer section below the card */ .seedprod-welcome-footer { text-align: center; margin-top: 40px; } .seedprod-skip-link { color: #646970; font-size: 14px; text-decoration: none; display: inline-block; margin-bottom: 10px; } .seedprod-skip-link:hover { color: #2271b1; text-decoration: none; } .seedprod-welcome-note { font-size: 12px; color: #646970; margin-top: 10px; line-height: 1.5; } /* Dashboard card icon styling */ .seedprod-dashboard-content .hndle .dashicons { color: var(--seedprod-orange); margin-right: 8px; vertical-align: middle; margin-top: -2px; font-size: var(--seedprod-font-xl); width: 18px; height: 18px; } /* Stats grid - WordPress native with enhancements */ .seedprod-stats-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin: 0; } @media (min-width: 1200px) { .seedprod-stats-grid { grid-template-columns: repeat(4, 1fr); } } /* Stat cards - enhance WordPress defaults */ .seedprod-stat-card { background: var(--seedprod-gray-200); border: 1px solid #ddd; border-radius: 6px; padding: 16px; display: flex; align-items: center; gap: 12px; transition: all 0.2s ease; min-height: 80px; } .seedprod-stat-card:hover { transform: translateY(-1px); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); border-color: #8c8f94; } .seedprod-stat-icon { width: 40px; height: 40px; border-radius: 8px; background: #f6f7f7; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.2s ease; } .seedprod-stat-card:hover .seedprod-stat-icon { background: var(--seedprod-orange-light); transform: scale(1.05); } .seedprod-stat-icon .dashicons { font-size: 20px; color: #50575e; transition: color 0.2s ease; } .seedprod-stat-card:hover .seedprod-stat-icon .dashicons { color: var(--seedprod-orange); } .seedprod-stat-number { font-size: 28px; font-weight: var(--seedprod-font-weight-bold); line-height: 1.1; margin-bottom: 4px; color: var(--seedprod-orange); } .seedprod-stat-label { font-size: var(--seedprod-font-base); font-weight: var(--seedprod-font-weight-semibold); /* WordPress handles base text colors */ margin-bottom: 4px; } .seedprod-stat-breakdown { font-size: var(--seedprod-font-sm); opacity: 0.7; line-height: 1.3; } .seedprod-stat-breakdown span { display: inline-block; margin-right: 8px; margin-bottom: 2px; } /* Responsive design for stats grid */ @media (max-width: 782px) { .seedprod-stats-grid { grid-template-columns: 1fr; gap: 12px; } .seedprod-stat-card { gap: 10px; } .seedprod-stat-icon { width: 36px; height: 36px; } .seedprod-stat-icon .dashicons { font-size: var(--seedprod-font-xl); } .seedprod-stat-number { font-size: 24px; } } /* Success state for license */ .seedprod-license-stat .seedprod-stat-icon { background: #d4f4dd; } .seedprod-license-stat .dashicons { color: var(--seedprod-success); } /* Quick Actions Grid */ .seedprod-quick-actions-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; padding: 10px 0; } .seedprod-action-card { display: flex; align-items: center; gap: 10px; padding: 15px; background: rgba(0, 0, 0, 0.03); border-radius: 4px; text-decoration: none; transition: all var(--seedprod-transition-fast); } .seedprod-action-card:hover { background: var(--seedprod-orange-light); color: var(--seedprod-orange); transform: translateX(2px); } .seedprod-action-card .dashicons { font-size: var(--seedprod-font-2xl); width: var(--seedprod-font-2xl); height: var(--seedprod-font-2xl); } /* Quick Actions List Style */ .seedprod-quick-actions-list { display: flex; flex-direction: column; gap: var(--seedprod-spacing-xs); } .seedprod-action-item { display: flex; align-items: center; gap: var(--seedprod-spacing-lg); padding: var(--seedprod-spacing-sm) var(--seedprod-spacing-xs); background: transparent; border: 1px solid transparent; border-radius: var(--seedprod-radius-sm); text-decoration: none; color: var(--seedprod-gray-900); transition: all var(--seedprod-transition-fast); position: relative; } .seedprod-action-item:hover { background: var(--seedprod-orange-light); border-color: var(--seedprod-orange-light); padding-left: var(--seedprod-spacing-md); } .seedprod-action-item .dashicons { font-size: 24px; width: 24px; height: 24px; color: var(--seedprod-gray-600); flex-shrink: 0; transition: color var(--seedprod-transition-fast); } .seedprod-action-item:hover .dashicons { color: var(--seedprod-orange); transform: scale(1.1); } .seedprod-action-content { flex: 1; display: flex; align-items: center; justify-content: space-between; } .seedprod-action-label { font-weight: var(--seedprod-font-weight-semibold); font-size: var(--seedprod-font-md); } .seedprod-action-count { background: var(--seedprod-gray-100); border: 1px solid var(--seedprod-gray-300); padding: 1px 8px; border-radius: var(--seedprod-radius-xl); font-size: var(--seedprod-font-xs); color: var(--seedprod-gray-600); font-weight: var(--seedprod-font-weight-normal); } .seedprod-action-badge { background: var(--seedprod-orange); color: white; padding: 2px 8px; border-radius: var(--seedprod-radius-xl); font-size: var(--seedprod-font-xs); font-weight: var(--seedprod-font-weight-semibold); text-transform: uppercase; letter-spacing: 0.5px; } .seedprod-action-stat { display: flex; align-items: center; gap: var(--seedprod-spacing-lg); padding: var(--seedprod-spacing-lg) var(--seedprod-spacing-lg); background: linear-gradient(135deg, rgba(225, 78, 27, 0.05) 0%, rgba(225, 78, 27, 0.01) 100%); border: 1px solid rgba(225, 78, 27, 0.15); border-radius: var(--seedprod-radius-lg); margin-top: var(--seedprod-spacing-xl); position: relative; } .seedprod-action-stat .dashicons { color: var(--seedprod-orange); font-size: 28px; width: 28px; height: 28px; } .seedprod-stat-trend { color: var(--seedprod-success); font-size: var(--seedprod-font-xs); margin-left: var(--seedprod-spacing-sm); font-weight: var(--seedprod-font-weight-medium); } /* What's New / News Items */ .seedprod-news-items { display: flex; flex-direction: column; gap: 0; } .seedprod-news-item { display: flex; gap: 15px; padding: 20px 0; border-bottom: 1px solid #e5e7eb; } .seedprod-news-item:first-child { padding-top: 0; } .seedprod-news-item:last-child { border-bottom: none; padding-bottom: 0; } .seedprod-news-item.has-thumbnail { align-items: flex-start; } .seedprod-news-thumbnail { flex-shrink: 0; width: 100px; height: 65px; overflow: hidden; border-radius: 4px; background: #f0f0f0; display: flex; align-items: center; justify-content: center; } .seedprod-news-thumbnail img { width: 100%; height: 100%; object-fit: contain; object-position: center; } .seedprod-news-content { flex: 1; min-width: 0; } .seedprod-news-item h4 { margin: 0 0 8px 0; font-size: 15px; font-weight: var(--seedprod-font-weight-semibold); line-height: 1.4; color: #1d2327; } .seedprod-news-excerpt { margin: 0 0 10px 0; color: #646970; font-size: 13px; line-height: 1.5; } .seedprod-news-meta { display: flex; align-items: center; gap: 10px; font-size: 13px; } .seedprod-news-date { color: #8c8f94; font-style: italic; } .seedprod-news-item a { color: var(--seedprod-orange); text-decoration: none; font-weight: var(--seedprod-font-weight-medium); } .seedprod-news-item a:hover { text-decoration: underline; } .seedprod-news-footer { margin-top: 20px; padding-top: 15px; border-top: 1px solid #e5e7eb; text-align: right; } .seedprod-view-all-link { color: var(--seedprod-orange); text-decoration: none; font-size: var(--seedprod-font-md); font-weight: var(--seedprod-font-weight-medium); } .seedprod-view-all-link:hover { text-decoration: underline; } /* Help & Resources List - Matching Setup & Status style */ .seedprod-resources-list { display: flex; flex-direction: column; gap: 12px; } .seedprod-resource-item { display: flex; align-items: center; gap: 12px; padding: 0; } .seedprod-resource-icon { flex-shrink: 0; font-size: 20px; width: 20px; height: 20px; color: #646970; } .seedprod-resource-content { display: flex; align-items: center; justify-content: space-between; flex: 1; min-width: 0; } .seedprod-resource-title { font-size: 14px; color: #1d2327; font-weight: 400; } .seedprod-resource-action { color: var(--seedprod-orange); text-decoration: none; font-size: 13px; white-space: nowrap; transition: opacity var(--seedprod-transition-fast); } .seedprod-resource-action:hover, .seedprod-resource-action:focus { color: var(--seedprod-orange); opacity: 0.8; text-decoration: none; } /* Recommended Plugins Widget - Dashboard 2x2 Grid Style */ .seedprod-dashboard-page .seedprod-plugins-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: -5px; /* Remove extra top spacing to align with other widgets */ margin-bottom: 0; } .seedprod-dashboard-page .seedprod-plugin-card { background: #ffffff; border: 1px solid #e0e0e0; border-radius: 4px; padding: 10px; transition: all 0.2s ease; display: flex; flex-direction: column; min-height: 120px; } .seedprod-dashboard-page .seedprod-plugin-card:hover { border-color: var(--seedprod-orange); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } /* Dashboard plugin card action area */ .seedprod-dashboard-page .seedprod-plugin-action { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; } .seedprod-dashboard-page .seedprod-plugin-status-badge { flex-shrink: 0; } .seedprod-dashboard-page .seedprod-plugin-card-header { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; } .seedprod-dashboard-page .seedprod-plugin-icon { width: 32px; height: 32px; object-fit: contain; flex-shrink: 0; } .seedprod-dashboard-page .seedprod-plugin-name { margin: 0; font-size: 13px; font-weight: 600; color: var(--seedprod-gray-900); line-height: 1.2; } .seedprod-dashboard-page .seedprod-plugin-desc { margin: 0; font-size: 12px; color: #646970; line-height: 1.3; flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .seedprod-dashboard-page .seedprod-plugin-action { margin-top: 4px; } .seedprod-dashboard-page .seedprod-plugin-status { display: block; text-align: center; font-size: 11px; color: #646970; } /* Responsive: Stack plugins vertically on smaller screens */ @media (max-width: 600px) { .seedprod-dashboard-page .seedprod-plugins-grid { grid-template-columns: 1fr; } } /* Old list style for other pages */ .seedprod-plugins-list { display: flex; flex-direction: column; gap: 20px; } .seedprod-plugin-item { display: flex; align-items: center; gap: 15px; padding-bottom: 20px; border-bottom: 1px solid #e0e0e0; } .seedprod-plugin-item:last-child { padding-bottom: 0; border-bottom: none; } /* Fun Fact Box */ .seedprod-fun-fact { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e0e0e0; } .seedprod-fun-fact-content { display: flex; align-items: flex-start; gap: 12px; padding: 15px; background-color: #f6f7f7; border-radius: 4px; border-left: 3px solid #E14E1B; } .seedprod-fun-fact-content .dashicons { flex-shrink: 0; margin-top: 2px; color: #E14E1B; font-size: 20px; } .seedprod-fun-fact-content p { margin: 0; color: #646970; font-size: 13px; line-height: 1.5; } .seedprod-fun-fact-content strong { color: #2c3338; display: block; margin-bottom: 4px; } /* Plugin Thumbnail */ .seedprod-plugin-thumbnail { flex-shrink: 0; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; } .seedprod-plugin-thumbnail img { width: 100%; height: 100%; object-fit: contain; } /* Plugin Content - Middle section */ .seedprod-plugin-content { flex: 1; min-width: 0; } .seedprod-plugin-name { margin: 0 0 3px 0; font-size: 14px; font-weight: 600; color: #1e1e1e; line-height: 1.4; } .seedprod-plugin-desc { margin: 0; font-size: 13px; color: #646970; line-height: 1.5; } /* Plugin Action - Right aligned */ .seedprod-plugin-action { flex-shrink: 0; text-align: right; } /* Loading Spinner */ .seedprod-button-spinner { display: inline-block; animation: spin 1s linear infinite; } .seedprod-button-spinner .dashicons { width: 16px; height: 16px; font-size: 16px; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Button Loading States - True WordPress Native */ .button.updating-message, .button.button-working { color: #646970 !important; pointer-events: none; } /* Attention-grabbing indicator for activate button after install */ .seedprod-plugin-button.seedprod-needs-activation { position: relative; animation: pulse-glow 2s infinite; } .seedprod-plugin-button.seedprod-needs-activation:after { content: "👆"; position: absolute; right: -25px; top: 50%; transform: translateY(-50%); font-size: 16px; animation: bounce-arrow 1.5s infinite; } @keyframes pulse-glow { 0% { box-shadow: 0 0 0 0 rgba(225, 78, 27, 0.4); } 50% { box-shadow: 0 0 0 8px rgba(225, 78, 27, 0.1); } 100% { box-shadow: 0 0 0 0 rgba(225, 78, 27, 0); } } @keyframes bounce-arrow { 0%, 100% { transform: translateY(-50%) translateX(0); } 50% { transform: translateY(-50%) translateX(3px); } } /* Pro Status */ .seedprod-plugin-status { display: inline-block; padding: 4px 10px; font-size: 12px; font-weight: 600; border-radius: 3px; text-transform: uppercase; } .seedprod-status-pro { background: #f0f0f0; color: var(--seedprod-orange); border: 1px solid var(--seedprod-orange); } /* Plugins Footer */ .seedprod-plugins-footer { margin-top: 15px; padding-top: 0; text-align: right; } .seedprod-view-all-plugins { color: var(--seedprod-orange); text-decoration: none; font-size: 14px; font-weight: 500; } .seedprod-view-all-plugins:hover { color: #c13a12; text-decoration: underline; } /* Setup & Status Widget - Setup Items */ .seedprod-setup-intro { margin: 0 0 15px 0; color: var(--seedprod-text-secondary); } /* Welcome message after activation */ .seedprod-welcome-activated { background: linear-gradient(135deg, rgba(225, 78, 27, 0.08) 0%, rgba(225, 78, 27, 0.03) 100%); border: 1px solid rgba(225, 78, 27, 0.15); border-radius: 6px; padding: 15px 20px; margin: -10px -12px 20px -12px; } .seedprod-welcome-activated h3 { margin: 0 0 8px 0; font-size: 18px; color: var(--seedprod-text-dark); font-weight: 600; } .seedprod-welcome-activated p { margin: 0; font-size: 14px; color: var(--seedprod-text-secondary); } /* Highlight Setup & Status when just activated */ .seedprod-just-activated .postbox:first-child { background: linear-gradient(135deg, rgba(225, 78, 27, 0.04) 0%, rgba(225, 78, 27, 0.01) 100%); border: 1px solid rgba(225, 78, 27, 0.12); } .seedprod-setup-item { display: flex; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--seedprod-gray-100); } .seedprod-setup-item:last-of-type { border-bottom: none; } .seedprod-setup-more .seedprod-setup-item:last-of-type { border-bottom: none; padding-bottom: 0; } .seedprod-setup-icon { flex-shrink: 0; font-size: 24px; width: 24px; height: 24px; color: var(--seedprod-gray-600); margin-right: 12px; transition: color 0.3s ease; } .seedprod-setup-icon.active { color: var(--seedprod-orange); } .seedprod-setup-item-content { flex-grow: 1; display: flex; align-items: center; } .seedprod-setup-item-header { display: flex; align-items: center; justify-content: space-between; width: 100%; } .seedprod-setup-item-title { margin: 0; font-size: 14px; font-weight: 600; color: var(--seedprod-text-dark); display: flex; align-items: center; } .seedprod-setup-title-text { display: inline-flex; align-items: center; gap: 6px; position: relative; } .seedprod-info-icon { font-size: 14px; width: 14px; height: 14px; color: var(--seedprod-gray-500); opacity: 0; transition: opacity 0.2s ease; cursor: help; } .seedprod-setup-title-text:hover .seedprod-info-icon { opacity: 1; } /* Tooltip for setup items */ .seedprod-setup-title-text .seedprod-tooltip { position: absolute; top: calc(100% + 8px); left: 0; z-index: 1000; padding: 8px 12px; background: #2c3338; color: #fff; font-size: 12px; font-weight: normal; border-radius: 4px; white-space: normal; width: 250px; line-height: 1.4; opacity: 0; visibility: hidden; transition: all 0.2s ease; pointer-events: none; } .seedprod-setup-title-text .seedprod-tooltip::before { content: ''; position: absolute; top: -5px; left: 20px; border: 5px transparent; border-bottom-color: #2c3338; } .seedprod-setup-title-text:hover .seedprod-tooltip { opacity: 1; visibility: visible; } .seedprod-setup-item-controls { display: flex; align-items: center; gap: 12px; } /* Toggle Switch */ .seedprod-switch { position: relative; display: inline-block; width: 40px; height: 20px; } .seedprod-switch input { opacity: 0; width: 0; height: 0; } .seedprod-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--seedprod-gray-300); transition: .3s; border-radius: 20px; } .seedprod-slider:before { position: absolute; content: ""; height: 14px; width: 14px; left: 3px; bottom: 3px; background-color: white; transition: .3s; border-radius: 50%; } input:checked + .seedprod-slider { background-color: var(--seedprod-success); } input:checked + .seedprod-slider:before { transform: translateX(20px); } /* Small toggle switch for tables */ .seedprod-switch-sm { width: 32px; height: 16px; } .seedprod-switch-sm .seedprod-slider { height: 16px; } .seedprod-switch-sm .seedprod-slider:before { height: 12px; width: 12px; left: 2px; bottom: 2px; } .seedprod-switch-sm input:checked + .seedprod-slider:before { transform: translateX(16px); } /* Status Badges */ .seedprod-status-badge { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; padding: 3px 6px; border-radius: 3px; } .seedprod-status-active { color: var(--seedprod-success); background-color: rgba(74, 184, 102, 0.1); } .seedprod-status-inactive { color: var(--seedprod-text-secondary); background-color: var(--seedprod-gray-100); } .seedprod-status-not-installed { color: #8b5e3c; background-color: #fef5e7; } .seedprod-count-badge { font-size: 12px; color: var(--seedprod-text-secondary); background: var(--seedprod-gray-100); padding: 4px 8px; border-radius: 10px; } /* Finish Setup Pulse Animation */ .seedprod-pulse { animation: pulse 1.5s infinite; } .seedprod-pulse .dashicons { animation: slide 1.5s infinite; vertical-align: middle; margin-right: 4px; margin-top: -2px; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(225, 78, 27, 0.7); } 70% { box-shadow: 0 0 0 6px rgba(225, 78, 27, 0); } 100% { box-shadow: 0 0 0 0 rgba(225, 78, 27, 0); } } @keyframes slide { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(3px); } } /* Show More/Less Toggle */ .seedprod-setup-toggle { text-align: center; padding: 16px 0 8px; border-top: 1px solid var(--seedprod-gray-100); margin-top: 16px; } .seedprod-show-more, .seedprod-show-less { color: var(--seedprod-orange); text-decoration: none; font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; } .seedprod-show-more:hover, .seedprod-show-less:hover { color: var(--seedprod-orange-hover); text-decoration: underline; } .seedprod-show-more .dashicons, .seedprod-show-less .dashicons { font-size: 16px; width: 16px; height: 16px; transition: transform 0.3s ease; } .seedprod-show-less .dashicons { transform: rotate(180deg); } /* Subscribers Item - uses standard setup-item styles */ .seedprod-subscriber-count { font-size: 14px; color: var(--seedprod-text-secondary); } .seedprod-subscriber-count strong { color: var(--seedprod-text-dark); font-size: 16px; margin-right: 4px; } .seedprod-stat-trend { display: inline-block; font-size: 12px; color: var(--seedprod-success); margin-left: 8px; padding: 2px 6px; background: rgba(74, 184, 102, 0.1); border-radius: 10px; } /* ========================================================================== Product Education Components for Lite Version ========================================================================== */ /* Pro Badge */ .seedprod-pro-badge { display: inline-block; background: linear-gradient(135deg, #E14E1B 0%, #F47E3C 100%); color: white; padding: 2px 6px; border-radius: 3px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-left: 6px; vertical-align: middle; line-height: 1; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } /* Pro feature value text - inline */ .seedprod-pro-value { font-size: 13px; color: var(--seedprod-gray-600); margin-left: 8px; font-weight: normal; font-style: italic; } /* Pro Overlay Badge (for cards) */ .seedprod-pro-overlay-badge { position: absolute; top: 12px; right: 12px; background: var(--seedprod-success); border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; z-index: 10; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); } .seedprod-pro-overlay-badge .seedprod-lock-icon { width: 14px; height: 14px; fill: white; } /* Education Card */ .seedprod-education-card { background: linear-gradient(135deg, rgba(225, 78, 27, 0.03) 0%, rgba(225, 78, 27, 0.01) 100%); border: 2px solid rgba(225, 78, 27, 0.15); border-radius: 8px; padding: 24px; position: relative; overflow: hidden; transition: all 0.3s ease; } .seedprod-education-card:hover { border-color: var(--seedprod-orange); box-shadow: 0 4px 12px rgba(225, 78, 27, 0.15); transform: translateY(-2px); } .seedprod-education-content { position: relative; z-index: 1; } .seedprod-education-icon { font-size: 48px !important; width: 48px !important; height: 48px !important; color: var(--seedprod-orange) !important; margin-bottom: 16px !important; display: block !important; } .seedprod-education-title { font-size: 20px !important; font-weight: 600 !important; color: var(--seedprod-gray-900) !important; margin: 0 0 12px 0 !important; display: flex; align-items: center; } .seedprod-education-description { color: var(--seedprod-gray-600); font-size: 14px; line-height: 1.6; margin: 0 0 16px 0; } .seedprod-education-benefits { list-style: none !important; margin: 0 0 20px 0 !important; padding: 0 !important; } .seedprod-education-benefits li { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; color: var(--seedprod-gray-700); font-size: 14px; } .seedprod-education-benefits .dashicons-yes-alt { color: var(--seedprod-success) !important; font-size: 16px !important; width: 16px !important; height: 16px !important; flex-shrink: 0; } .seedprod-education-action { margin-top: 20px; } /* Setup Item Upgrade (inline in dashboard) */ .seedprod-setup-item-upgrade { display: flex; align-items: center; gap: 8px; } .seedprod-setup-item.seedprod-pro-feature .seedprod-setup-icon { opacity: 0.6; } .seedprod-setup-item.seedprod-pro-feature:hover .seedprod-setup-icon { color: var(--seedprod-orange); opacity: 1; } /* Blurred Overlay Container */ .seedprod-blurred-overlay-container { position: relative; overflow: hidden; border-radius: 8px; } .seedprod-blurred-content { filter: blur(3px); pointer-events: none; user-select: none; } .seedprod-blurred-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.95); display: flex; align-items: center; justify-content: center; z-index: 10; backdrop-filter: blur(5px); } .seedprod-overlay-content { text-align: center; padding: 32px; max-width: 400px; } .seedprod-overlay-content h2 { font-size: 24px !important; font-weight: 600 !important; color: var(--seedprod-gray-900) !important; margin: 0 0 12px 0 !important; } .seedprod-overlay-content p { color: var(--seedprod-gray-600); font-size: 14px; line-height: 1.6; margin: 0 0 24px 0; } .seedprod-overlay-button { font-size: 16px !important; padding: 12px 24px !important; } /* Lite Version Specific Styles */ .seedprod-lite .seedprod-pro-feature { position: relative; } .seedprod-lite .seedprod-pro-feature .seedprod-switch, .seedprod-lite .seedprod-pro-feature .seedprod-button-secondary { display: none !important; } .seedprod-lite .seedprod-pro-feature .seedprod-setup-item-upgrade { display: flex !important; } /* ========================================================================== 9. DEBUG PAGE ========================================================================== */ /* Compact notice modifier - Use with .notice for less padding */ .seedprod-dashboard-page .notice.seedprod-notice-compact { margin: 20px 0; } /* ========================================================================== 10. SETTINGS PAGE ========================================================================== */ /* Settings page uses WordPress native nav-tab styles */ /* Additional customizations for settings page if needed */ /* Tab panel content styling */ .seedprod-tab-panel h2 { margin: 0 0 var(--seedprod-spacing-lg); color: var(--seedprod-gray-900); font-size: var(--seedprod-font-lg); font-weight: 600; } .seedprod-tab-panel p { /* Let WordPress handle default text color for better readability */ margin: 0 0 var(--seedprod-spacing-md); } /* Debug Information section */ .seedprod-debug-section { margin-top: 20px; /* Space between heading and buttons */ margin-bottom: 40px; /* Add breathing room below debug section */ } /* About Tab - Minimal styling, leverage WordPress defaults */ .seedprod-about-main { display: flex; gap: 40px; } .seedprod-about-text { flex: 1; max-width: 600px; } .seedprod-about-text p { font-size: 14px; line-height: 1.6; /* WordPress handles base text color */ } .seedprod-about-image { flex-shrink: 0; text-align: center; } .seedprod-team-photo { max-width: 500px; width: 100%; height: auto; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.05); display: block; margin: 0 auto; } .seedprod-team-caption { margin-top: 12px; font-size: 13px; color: var(--seedprod-gray-600); font-style: italic; text-align: center; } /* About CTA for Lite version */ .seedprod-about-cta { margin-top: 40px; padding: 30px; background: linear-gradient(135deg, rgba(225, 78, 27, 0.03) 0%, rgba(225, 78, 27, 0.01) 100%); border: 1px solid rgba(225, 78, 27, 0.15); border-radius: 4px; text-align: center; } .seedprod-about-cta h3 { margin: 0 0 10px; font-size: 20px; } .seedprod-about-cta p { margin: 0 0 20px; } /* Responsive */ @media (max-width: 782px) { .seedprod-about-main { flex-direction: column; } .seedprod-about-text { max-width: 100%; } } /* ========================================================================== 11. MODALS ========================================================================== */ /* Modal Overlay */ .seedprod-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100000; display: none; } .seedprod-modal-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); } /* Modal Content */ .seedprod-modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; border-radius: 4px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2); width: 90%; max-width: 500px; max-height: auto !important; display: flex; flex-direction: column; } /* Modal Header */ #seedprod-customizer-wrapper .seedprod-modal-header{ display: none; } /* Fix modal height issue - prevent modals from taking 90% height */ .seedprod-modal:not(#seedprod-template-preview-modal) .seedprod-modal-content { height: auto !important; max-height: 90vh !important; } .seedprod-modal:not(#seedprod-template-preview-modal) .seedprod-modal-body { max-height: calc(90vh - 140px) !important; height: auto !important; flex: 0 1 auto !important; } /* Ensure import/export modals also fit content */ #seedprod-import-export-modal .seedprod-modal-content, #seedprod-landing-import-export-modal .seedprod-modal-content, #seedprod-conditions-modal .seedprod-modal-content, #seedprod-template-modal .seedprod-modal-content { height: auto !important; max-height: 90vh !important; } .seedprod-modal-header { padding: 15px 20px !important; border-bottom: 1px solid #e0e0e0; display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; } .seedprod-modal-header h2 { margin: 0; font-size: 18px; font-weight: 600; color: var(--seedprod-gray-900); } .seedprod-modal-close { background: none; border: none; padding: 0; cursor: pointer; color: var(--seedprod-gray-600); font-size: 20px; line-height: 1; transition: color 0.2s; } .seedprod-modal-close:hover { color: var(--seedprod-gray-900); } /* Modal Body */ .seedprod-modal-body { padding: 20px !important; overflow-y: auto; max-height: 60vh !important; height: auto !important; /* Override any fixed height */ flex: 0 1 auto !important; } /* Modal Footer */ .seedprod-modal-footer { padding: 15px 20px !important; border-top: 1px solid #e0e0e0; display: flex; justify-content: flex-end; gap: 10px; flex-shrink: 0; } /* Modal Form Elements */ .seedprod-form-group { margin-bottom: 18px; } .seedprod-form-group:last-of-type { margin-bottom: 15px; } .seedprod-form-group label { display: block; margin-bottom: 5px; font-weight: 600; color: var(--seedprod-gray-900); font-size: 14px; } .seedprod-form-group label .required { color: #d63638; margin-left: 2px; } .seedprod-form-control { width: 100%; padding: 8px 12px; border: 1px solid #dcdcde; border-radius: 4px; font-size: 14px; transition: border-color 0.2s; } .seedprod-form-control:focus { border-color: var(--seedprod-orange); outline: none; box-shadow: 0 0 0 1px var(--seedprod-orange); } .seedprod-form-control.error { border-color: #d63638; } .seedprod-field-error { display: block; margin-top: 5px; color: #d63638; font-size: 13px; } .seedprod-modal-error { background: #fcf0f1; border-left: 4px solid #d63638; padding: 12px; margin-bottom: 15px; display: flex; align-items: center; gap: 10px; color: #50575e; font-size: 14px; } .seedprod-modal-error .dashicons { color: #d63638; flex-shrink: 0; } .seedprod-form-note { margin-top: -8px; margin-bottom: 0; } .seedprod-form-note .description { margin: 0; font-size: 13px; color: var(--seedprod-gray-600); font-style: italic; } /* Modal open body class */ body.seedprod-modal-open { overflow: hidden; } /* Button spinner in modal */ .seedprod-modal-footer .spinner { float: none; margin: 0; display: inline-block; vertical-align: middle; } /* Large modal variant */ .seedprod-modal-content-large { max-width: 700px; } /* Conditions Editor Styles */ .seedprod-conditions-info { margin-bottom: 20px; padding: 12px; background: #f0f6fc; border-left: 4px solid #2271b1; border-radius: 2px; } .seedprod-conditions-info p { margin: 0; color: #50575e; font-size: 14px; } .seedprod-conditions-list { margin-bottom: 20px; } .seedprod-condition-row { display: flex; gap: 10px; align-items: center; margin-bottom: 15px; padding: 12px; background: #f9f9f9; border: 1px solid #dcdcde; border-radius: 4px; transition: opacity 0.2s; } .seedprod-condition-row.is-excluded { opacity: 0.6; background: #fef7f1; } .seedprod-condition-mode { width: 100px; padding: 6px 10px; border: 1px solid #dcdcde; border-radius: 4px; font-size: 14px; } .seedprod-condition-type { flex: 1; min-width: 200px; padding: 6px 10px; border: 1px solid #dcdcde; border-radius: 4px; font-size: 14px; } .seedprod-condition-value { flex: 1; padding: 6px 10px; border: 1px solid #dcdcde; border-radius: 4px; font-size: 14px; } .seedprod-remove-condition { background: none; border: none; padding: 5px; cursor: pointer; color: #b32d2e; font-size: 18px; line-height: 1; transition: color 0.2s; } .seedprod-remove-condition:hover { color: #8a2424; } .seedprod-add-condition { margin-top: 10px; } .seedprod-add-condition .dashicons { margin-right: 5px; vertical-align: middle; } /* Small form control variant for priority */ .seedprod-form-control-small { width: 80px !important; } /* Compact conditions list for template modal */ .seedprod-conditions-list-compact .seedprod-condition-row { padding: 8px; margin-bottom: 10px; } .seedprod-conditions-list-compact .seedprod-condition-mode { width: 90px; padding: 4px 8px; font-size: 13px; } .seedprod-conditions-list-compact .seedprod-condition-type { padding: 4px 8px; font-size: 13px; } .seedprod-conditions-list-compact .seedprod-condition-value { padding: 4px 8px; font-size: 13px; } .seedprod-add-template-condition { font-size: 13px !important; padding: 4px 12px !important; height: 30px !important; line-height: 1 !important; } /* Recommended Plugins Tab - Compact Grid Layout */ .seedprod-plugins-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; margin-top: 20px; } @media (min-width: 1400px) { .seedprod-plugins-grid { grid-template-columns: repeat(3, 1fr); } } @media (min-width: 1600px) { .seedprod-plugins-grid { grid-template-columns: repeat(4, 1fr); } } .seedprod-plugin-card { background: #fff; border: 1px solid var(--seedprod-gray-300); border-radius: 4px; padding: 12px; transition: all 0.2s ease; } .seedprod-plugin-card:hover { border-color: var(--seedprod-gray-400); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .seedprod-plugin-card-content { display: flex; flex-direction: column; height: 100%; min-height: 120px; /* Restored original height */ } /* Settings page specific - compact plugin cards */ .seedprod-settings-page .seedprod-plugin-card-content { min-height: 80px; /* Compact height for settings page only */ } .seedprod-plugin-header { display: flex; gap: 10px; margin-bottom: 10px; /* Removed flex: 1 to prevent excessive stretching */ } .seedprod-plugin-icon { width: 40px; height: 40px; object-fit: contain; flex-shrink: 0; } .seedprod-plugin-info { flex: 1; min-width: 0; } .seedprod-plugin-info h4 { margin: 0 0 4px 0; font-size: 14px; font-weight: 600; color: var(--seedprod-gray-900); line-height: 1.2; } .seedprod-plugin-description { margin: 0; font-size: 12px; line-height: 1.3; color: var(--seedprod-gray-700); display: -webkit-box; -webkit-line-clamp: 2; /* Reduced to 2 lines */ line-clamp: 2; /* Standard property for future compatibility */ -webkit-box-orient: vertical; overflow: hidden; } .seedprod-plugin-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 10px; border-top: 1px solid var(--seedprod-gray-200); margin-top: auto; /* Restored to original */ gap: 8px; flex-wrap: nowrap; } /* Settings page specific - compact plugin cards */ .seedprod-settings-page .seedprod-plugin-footer { margin-top: 8px; /* Compact spacing for settings page only */ } /* Settings page - override dashboard grid layout */ .seedprod-settings-page .seedprod-plugins-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important; gap: 20px !important; margin-top: 20px !important; } /* Settings page - use proper plugin card styles, not dashboard 2x2 styles */ .seedprod-settings-page .seedprod-plugin-card { background: #fff !important; border: 1px solid var(--seedprod-gray-300) !important; border-radius: 4px !important; padding: 12px 12px 8px 12px !important; transition: all 0.2s ease !important; display: block !important; /* Override dashboard flex */ min-height: auto !important; /* Remove dashboard min-height */ } /* Fix button alignment in plugin cards - buttons should not stretch */ .seedprod-plugin-footer .seedprod-plugin-button { width: auto !important; flex: 0 0 auto; /* Don't grow or shrink */ } /* License Certificate Badge */ .seedprod-license-badge { display: flex; /* Changed from inline-flex to flex to take full width */ align-items: center; gap: 15px; margin-top: 12px; padding: 14px 18px; background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%); border: 2px solid #e2e8f0; border-radius: 10px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.07), 0 1px 3px rgba(0, 0, 0, 0.04); position: relative; overflow: hidden; max-width: 350px; /* Add max-width to prevent it from being too wide */ clear: both; /* Ensure it appears on a new line */ } .seedprod-license-badge::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: linear-gradient(180deg, #10b981 0%, #059669 100%); } .seedprod-license-badge-icon { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%); border-radius: 50%; flex-shrink: 0; } .seedprod-license-badge-icon .dashicons { font-size: 24px; width: 24px; height: 24px; color: #d97706; } .seedprod-license-badge-content { display: flex; flex-direction: column; gap: 2px; } .seedprod-license-badge-label { font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #64748b; } .seedprod-license-badge-type { font-size: 16px; font-weight: 600; color: #1e293b; } .seedprod-license-badge-check { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: #10b981; border-radius: 50%; margin-left: auto; flex-shrink: 0; } .seedprod-license-badge-check .dashicons { font-size: 20px; width: 20px; height: 20px; color: white; } /* Inactive License Badge Styles */ .seedprod-license-badge-inactive { background: #fef2f2; border-color: #fecaca; } .seedprod-license-badge-inactive::before { background: var(--seedprod-error); } .seedprod-license-badge-inactive .seedprod-license-badge-icon { background: #fee2e2; } .seedprod-license-badge-inactive .seedprod-license-badge-icon .dashicons { color: var(--seedprod-error); } .seedprod-license-badge-inactive .seedprod-license-badge-label { color: #991b1b; margin-bottom: 4px; } .seedprod-license-badge-help { font-size: 13px; color: var(--seedprod-gray-700); } .seedprod-license-badge-help a { color: var(--seedprod-link); text-decoration: none; border-bottom: 1px dotted var(--seedprod-link); margin-left: 4px; } .seedprod-license-badge-help a:hover { color: var(--seedprod-link-hover); border-bottom-style: solid; } .seedprod-license-badge-action { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--seedprod-error); border-radius: 50%; margin-left: auto; } .seedprod-license-badge-action .dashicons { font-size: 20px; width: 20px; height: 20px; color: white; } .seedprod-plugin-status { font-size: 11px; color: var(--seedprod-gray-600); white-space: nowrap; flex-shrink: 0; } .seedprod-plugin-status strong { color: var(--seedprod-gray-800); font-weight: 600; } /* Ensure buttons don't get cut off */ .seedprod-plugin-card .seedprod-button-small { flex-shrink: 0; } /* Responsive adjustments */ @media (max-width: 782px) { .seedprod-plugins-grid { grid-template-columns: 1fr; } } /* ========================================================================== 11. SUBSCRIBERS TAB STYLES ========================================================================== */ /* Subscribers header controls */ .seedprod-subscribers-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: var(--seedprod-spacing-xl); gap: var(--seedprod-spacing-lg); } .seedprod-subscribers-header h2 { margin: 0; font-size: var(--seedprod-font-lg); font-weight: 600; } .seedprod-subscribers-controls { display: flex; align-items: center; gap: var(--seedprod-spacing-md); flex-shrink: 0; } /* Select elements */ .seedprod-select { min-width: 120px; height: 32px; padding: 4px 8px; font-size: var(--seedprod-font-base); border: 1px solid var(--seedprod-gray-400); border-radius: var(--seedprod-radius-sm); background: #fff; } /* Chart container */ .seedprod-subscribers-chart-container { background: #fff; border: 1px solid var(--seedprod-gray-300); border-radius: var(--seedprod-radius-sm); padding: var(--seedprod-spacing-lg); margin-bottom: var(--seedprod-spacing-xl); box-shadow: var(--seedprod-shadow-xs); } #seedprod-subscribers-chart { width: 100%; height: 150px; display: block; } /* Search box */ .seedprod-subscribers-search-box { margin-bottom: var(--seedprod-spacing-lg); display: flex; align-items: center; gap: var(--seedprod-spacing-sm); } #seedprod-subscriber-search { flex: 1; max-width: 400px; } /* OptinMonster Cross-sell Table Row */ .seedprod-optinmonster-row { background: #f0f6fc !important; } .seedprod-optinmonster-row:hover { background: #e6f2fc !important; } .seedprod-optinmonster-row td { padding: 12px 15px; vertical-align: middle; } /* Loading and error states */ .seedprod-loading-message, .seedprod-error-message, .seedprod-no-results { text-align: center; padding: 40px 20px; font-style: italic; } .seedprod-loading-message .dashicons { animation: spin 1s linear infinite; margin-right: 8px; color: var(--seedprod-orange); } .seedprod-error-message { color: #d63638; } /* Delete buttons in table */ .seedprod-delete-subscriber { font-size: 12px; padding: 4px 8px; height: auto; line-height: 1.4; } /* SeedProd custom pagination - for subscribers tab only */ .seedprod-pagination-links a, .seedprod-pagination-links span { display: inline-block; padding: 4px 8px; margin: 0 2px; text-decoration: none; border: 1px solid var(--seedprod-gray-300); border-radius: var(--seedprod-radius-sm); background: #fff; color: var(--seedprod-link); font-size: var(--seedprod-font-sm); } .seedprod-pagination-links a:hover { background: var(--seedprod-gray-100); border-color: var(--seedprod-gray-400); } .seedprod-pagination-links .current { background: var(--seedprod-orange); color: #fff; border-color: var(--seedprod-orange); } .seedprod-pagination-links .disabled { color: var(--seedprod-gray-400); background: var(--seedprod-gray-100); cursor: not-allowed; } .seedprod-pagination-links .dots { border: none; background: none; } /* Override old admin-style.css pagination positioning */ .seedprod-dashboard-page .tablenav-pages, .seedprod-landing-pages .tablenav-pages, .seedprod-website-builder .tablenav-pages, .seedprod-settings-page .tablenav-pages { margin: 15px 0 !important; /* Override old CSS with proper spacing */ } .seedprod-dashboard-page .tablenav.top .tablenav-pages, .seedprod-landing-pages .tablenav.top .tablenav-pages, .seedprod-website-builder .tablenav.top .tablenav-pages, .seedprod-settings-page .tablenav.top .tablenav-pages { float: right; margin: 0 !important; padding: 0; height: 28px; display: flex; align-items: center; } .seedprod-dashboard-page .tablenav.bottom, .seedprod-landing-pages .tablenav.bottom, .seedprod-website-builder .tablenav.bottom, .seedprod-settings-page .tablenav.bottom { margin-top: 15px !important; /* Override old CSS */ } /* Empty state */ .seedprod-no-subscribers { text-align: center; padding: 60px 20px; } .seedprod-empty-state h3 { margin: 0 0 15px; font-size: var(--seedprod-font-xl); } .seedprod-empty-state p { margin: 0 0 30px; font-size: var(--seedprod-font-md); max-width: 500px; margin-left: auto; margin-right: auto; } /* Responsive design for subscribers tab */ @media (max-width: 782px) { .seedprod-subscribers-header { flex-direction: column; align-items: stretch; } .seedprod-subscribers-controls { flex-wrap: wrap; justify-content: space-between; } .seedprod-subscribers-search-box { flex-direction: column; align-items: stretch; } #seedprod-subscriber-search { max-width: none; margin-bottom: var(--seedprod-spacing-sm); } } /* ========================================================================== 9. LANDING PAGES - Mode cards and page management ========================================================================== */ /* Section titles - minimal overrides, let WordPress handle defaults */ .seedprod-section-title { font-size: 1.3em; margin-bottom: 5px; } /* Ensure consistent top margin for first section title */ .seedprod-dashboard-container > .seedprod-section-title:first-child { margin-top: 0; } .seedprod-section-description { margin-bottom: 20px; } /* Mode Cards Grid - Match Vue.js flex behavior exactly */ .seedprod-mode-cards-grid { display: flex; margin-top: 32px; /* Match sp-mt-8 */ overflow-x: scroll; /* Match sp-overflow-x-scroll */ padding-bottom: 8px; /* Match sp-pb-2 */ gap: 16px; /* Cards have margin in Vue */ margin-bottom: 40px; } /* Individual mode card */ .seedprod-mode-card { text-align: center; position: relative; width: 275px; /* Match Vue sp-w-275 */ flex-shrink: 0; /* Match Vue sp-flex-shrink-0 - prevents cards from shrinking */ } .seedprod-mode-card .inside { padding: 25px 20px 20px; margin-bottom: 0; } /* Pro feature styling for lite version */ .seedprod-lite .seedprod-mode-card.seedprod-pro-feature .seedprod-mode-card-toggle { display: none; } .seedprod-lite .seedprod-mode-card.seedprod-pro-feature { opacity: 0.95; } /* Mode card icon */ .seedprod-mode-card-icon { height: 100px; margin-bottom: 20px; } .seedprod-mode-card-icon img { height: 100%; } /* Title */ .seedprod-mode-card-title { font-size: 18px; font-weight: 600; margin: 0 0 12px; } /* Description */ .seedprod-mode-card-description { font-size: 13px; color: #646970; margin-bottom: 20px; padding: 0 10px; } /* Buttons container */ .seedprod-mode-card-actions { display: flex; gap: 10px; margin-bottom: 20px; } /* Equal width buttons - ensure they respect flex sizing */ .seedprod-mode-card-actions .button { flex: 1 1 0; /* grow, shrink, basis 0 for true equal width */ min-width: 0 !important; width: auto; /* Let flex handle width */ margin: 0; text-align: center; } /* Toggle section */ .seedprod-mode-card-toggle { display: flex; align-items: center; justify-content: center; padding-top: 15px; border-top: 1px solid #e2e4e7; } .seedprod-mode-card-toggle .seedprod-switch { margin-right: 10px; } /* Toggle label styles moved to shared location below for consistency */ /* ========================================================================== 16. LANDING PAGES TABLE - Minimal overrides for landing pages table ========================================================================== */ /* Section header with add button */ .seedprod-section-header { margin-bottom: 20px; } /* Status badges - use WordPress colors but add font weight */ .seedprod-status-publish { color: #46b450; /* WordPress green for publish */ font-weight: 500; } .seedprod-status-draft { color: #f0b849; /* WordPress yellow for draft */ font-weight: 500; } .seedprod-status-trash { color: #dc3232; /* WordPress red for trash */ font-weight: 500; } .seedprod-status-private { color: #826eb4; /* WordPress purple for private */ font-weight: 500; } /* ========================================================================== 17. TEMPLATE SELECTION PAGE ========================================================================== */ /* Template selection specific styles */ .seedprod-template-selection-page { /* Full width - no max-width restriction */ } .seedprod-template-page-info { background: #f0f0f1; padding: 10px 15px; border-left: 4px solid var(--seedprod-orange); margin-bottom: 20px; } /* Filter Pills */ .seedprod-template-filters { display: flex; justify-content: space-between; align-items: center; margin: 20px 0; flex-wrap: wrap; gap: 15px; } .seedprod-filter-pills { display: flex; gap: 8px; flex-wrap: wrap; } .seedprod-filter-pill { background: #f6f7f7; border: 1px solid #ddd; color: #50575e; padding: 6px 12px; border-radius: 16px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; text-decoration: none; } .seedprod-filter-pill:hover, .seedprod-filter-pill.active { background: var(--seedprod-orange); border-color: var(--seedprod-orange); color: white; } /* Template Search */ .seedprod-template-search { position: relative; display: inline-block; margin-right: 20px; } .seedprod-search-input { width: 250px; padding-right: 35px; } .seedprod-template-search .dashicons { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: #666; } /* Filters Section */ .seedprod-filters-section { display: flex; align-items: center; gap: 10px; flex: 1; } .seedprod-filters-label { font-weight: 600; color: #50575e; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap; } /* Template Grid */ .seedprod-templates-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 30px; margin-top: 30px; } /* Responsive grid - matches Vue.js implementation */ @media (max-width: 1500px) { .seedprod-templates-grid { grid-template-columns: repeat(4, 1fr); } } @media (max-width: 1000px) { .seedprod-templates-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; } } @media (max-width: 700px) { .seedprod-templates-grid { grid-template-columns: repeat(2, 1fr); gap: 15px; } } @media (max-width: 400px) { .seedprod-templates-grid { grid-template-columns: 1fr; } } .seedprod-template-favorite.is-favorite { background: #e91e63; border-color: #e91e63 !important; } /* Template Name */ .seedprod-template-name { padding: 12px 8px; min-height: 48px; font-size: 12px; font-weight: 600; color: #666; text-align: left; display: flex; align-items: center; justify-content: space-between; } .seedprod-template-name .seedprod-template-favorite { background: none !important; border: none !important; cursor: pointer; padding: 0; margin: 0; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; transition: color 0.2s ease; outline: none; box-shadow: none !important; } .seedprod-template-name .seedprod-template-favorite .dashicons { width: 16px; height: 16px; font-size: 16px; } .seedprod-template-name .seedprod-template-favorite:hover { color: #e91e63 !important; } /* Loading State */ .seedprod-templates-loading { grid-column: 1 / -1; text-align: center; padding: 40px; } /* Preview Modal - Removed duplicate, see line 3325 for main styles */ .seedprod-modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; height: 90%; background: #fff; border-radius: 4px; overflow: hidden; } .seedprod-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 15px 20px; border-bottom: 1px solid #ddd; } .seedprod-modal-body { height: calc(100% - 60px); } .seedprod-modal-body iframe { width: 100%; height: 100%; } .seedprod-modal-close { background: none; border: none; font-size: 20px; cursor: pointer; } /* ========================================================================== 18. NEW LANDING PAGE FORM - Inline form styling ========================================================================== */ /* Inline form container */ #seedprod-new-page-inline { display: none; margin-top: 20px; } /* Use WordPress native form-table styles - minimal overrides */ #seedprod-new-page-inline .form-table { margin-top: 0; } #seedprod-new-page-inline .form-table th { width: 150px; } /* URL input styling */ #seedprod-new-page-inline code { background: transparent; padding: 0; margin-right: 5px; } /* ========================================================================== 19. TEMPLATE SELECTION PAGE - Template grid and interactions ========================================================================== */ /* Template grid - JavaScript-controlled masonry layout */ .seedprod-templates-grid { margin-top: 20px; position: relative; } /* Theme Kits Grid - Fixed height grid layout */ .seedprod-theme-kits-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; margin-top: 30px; padding: 0 20px; } /* Responsive grid for theme kits */ @media (max-width: 1400px) { .seedprod-theme-kits-grid { grid-template-columns: repeat(3, 1fr); } } @media (max-width: 1000px) { .seedprod-theme-kits-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; } } @media (max-width: 600px) { .seedprod-theme-kits-grid { grid-template-columns: 1fr; gap: 15px; } } /* Theme card styling - uses same styling as template cards */ .seedprod-theme-image { position: relative; width: 100%; height: 300px; max-height: 300px; overflow: hidden; background: #f6f7f7; } .seedprod-theme-image img { position: absolute; top: 0; left: 0; width: 100%; height: auto; min-width: 100%; object-fit: cover; object-position: top center; } /* Theme overlay and buttons use template overlay styles */ /* Theme kits pagination */ .seedprod-themes-pagination { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 30px; padding: 20px; } .seedprod-pagination-btn { display: flex; align-items: center; gap: 5px; } .seedprod-pagination-btn:disabled { opacity: 0.5; cursor: not-allowed; } .seedprod-page-info { font-size: 14px; color: #666; margin: 0 10px; } /* Sort dropdown */ .seedprod-sort-label { margin-left: 20px; font-weight: 500; color: #666; } .seedprod-sort-select { margin-left: 10px; padding: 5px 10px; border: 1px solid #ddd; border-radius: 4px; background: white; } /* Template card styling */ .seedprod-template-card { background: white; border: 1px solid #e0e0e0; border-radius: 8px; overflow: hidden; transition: all 0.2s ease; position: relative; } .seedprod-template-card:hover:not(.seedprod-processing) { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); border-color: #c3c4c7; } /* Processing state styling - takes precedence over hover */ .seedprod-template-card.seedprod-processing { transform: translateY(-2px); box-shadow: var(--seedprod-shadow-orange); border-color: var(--seedprod-orange); border-width: 2px; } .seedprod-template-thumbnail { position: relative; width: 100%; height: auto; overflow: hidden; background: #f6f7f7; } .seedprod-template-image { width: 100%; height: auto; display: block; border: none; background: #f6f7f7; } /* Blank template special styling */ .seedprod-template-card.blank-template .seedprod-template-thumbnail { height: 200px; background: #f6f7f7; display: flex; align-items: center; justify-content: center; } .blank-template-icon .dashicons { font-size: 48px; color: #8c8f94; } /* Template overlay with action buttons */ .seedprod-template-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(35, 40, 45, 0.8); display: flex; align-items: center; justify-content: center; gap: 10px; opacity: 0; transition: opacity 0.2s ease; } .seedprod-template-card:hover .seedprod-template-overlay, .seedprod-template-card.seedprod-processing .seedprod-template-overlay, .seedprod-template-overlay.seedprod-processing-active { opacity: 1; } /* Ensure overlay is visible during processing even if JavaScript hide() was called */ .seedprod-template-card.seedprod-processing .seedprod-template-overlay, .seedprod-template-overlay.seedprod-processing-active { display: flex !important; } /* Action buttons in overlay */ .seedprod-template-overlay button { width: 44px; height: 44px; border-radius: 50%; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; } .seedprod-template-select { background: var(--seedprod-orange); color: white; } .seedprod-template-select:hover { background: var(--seedprod-orange-hover); transform: scale(1.05); } .seedprod-template-preview { background: #50575e; color: white; } .seedprod-template-preview:hover { background: #32373c; transform: scale(1.05); } .seedprod-template-overlay .dashicons { font-size: 18px; } .seedprod-template-select .dashicons, .seedprod-theme-kits-grid .seedprod-template-select .dashicons { line-height: normal; } /* Template name text */ .seedprod-template-name .template-name { font-weight: 600; font-size: 13px; color: #1d2327; flex: 1; margin-right: 8px; } /* Favorite toggle */ .seedprod-favorite-toggle { cursor: pointer; color: #8c8f94; transition: color 0.2s ease; flex-shrink: 0; } .seedprod-favorite-toggle:hover { color: var(--seedprod-orange); } .seedprod-favorite-toggle.seedprod-favorited { color: var(--seedprod-orange); } .seedprod-favorite-toggle .dashicons { font-size: 16px; } /* Heart icon colors and display */ .seedprod-favorite-toggle.seedprod-favorited .dashicons-heart { color: #e91e63 !important; } .seedprod-favorite-toggle:not(.seedprod-favorited) .dashicons-heart { color: #8c8f94 !important; } .seedprod-favorite-toggle:not(.seedprod-favorited):hover .dashicons-heart { color: #e91e63 !important; } /* Ensure dashicons font loads and displays properly */ .seedprod-favorite-toggle .dashicons:before { font-family: dashicons !important; display: inline-block !important; speak: never; } /* Dashicon heart content - explicit fallback */ .seedprod-favorite-toggle .dashicons-heart:before { content: "\f487" !important; } /* Ensure dashicons display properly */ .seedprod-template-favorite .dashicons { font-family: dashicons !important; display: inline-block; line-height: 1; font-weight: 400; font-style: normal; text-decoration: inherit; text-transform: none; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; width: 20px; height: 20px; font-size: 20px; vertical-align: top; } /* Filter pills styling */ .seedprod-filters-section { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } /* Filter styles are defined above - removed duplicates */ /* Search input styling */ .seedprod-template-search { position: relative; width: 280px; max-width: 100%; } .seedprod-search-input { width: 100%; padding: 8px 36px 8px 12px; border: 1px solid #ddd; border-radius: 6px; font-size: 14px; } .seedprod-template-search .dashicons-search { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); color: #8c8f94; font-size: 16px; pointer-events: none; } /* Loading and error states */ .seedprod-templates-loading { width: 100%; text-align: center; padding: 60px 20px; color: #50575e; } /* Theme kits specific loading state */ .seedprod-theme-kits-grid .seedprod-templates-loading { grid-column: 1 / -1; } .seedprod-templates-loading .spinner { float: none; margin: 0 auto 16px; } .seedprod-no-templates { grid-column: 1 / -1; text-align: center; padding: 60px 20px; color: #50575e; } .seedprod-no-templates p { font-size: 16px; margin: 0; } /* Enhanced error message with fallback */ .seedprod-error-message { width: calc(100% - 40px); text-align: center; padding: 60px 40px; background: #fff; border: 2px solid #f0f0f1; border-radius: 8px; margin: 20px; position: relative; box-shadow: 0 1px 3px rgba(0,0,0,0.05); } .seedprod-error-icon { margin-bottom: 20px; } .seedprod-error-icon .dashicons { font-size: 48px; width: 48px; height: 48px; color: #dba617; } .seedprod-error-message h3 { margin: 0 0 10px 0; font-size: 24px; font-weight: 600; color: #2c3338; } .seedprod-error-message p { color: #646970; font-size: 14px; margin: 0 0 20px 0; line-height: 1.5; } .seedprod-error-actions { margin-top: 30px; } .seedprod-error-actions .button { margin: 0 5px; } .seedprod-error-actions .button .dashicons { vertical-align: text-bottom; margin-right: 5px; font-size: 16px; width: 16px; height: 16px; } .seedprod-blank-template-fallback { font-size: 14px !important; padding: 8px 20px !important; height: auto !important; line-height: 1.5 !important; } .seedprod-error-note { margin-top: 15px !important; font-size: 13px !important; color: #8c8f94 !important; font-style: italic; } /* Template filters layout */ .seedprod-template-filters { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 20px; padding: 20px 0; flex-wrap: wrap; } @media (max-width: 782px) { .seedprod-template-filters { flex-direction: column; align-items: stretch; gap: 16px; } .seedprod-template-search { width: 100%; } .seedprod-filters-section { justify-content: flex-start; } } /* Spinning animation for loading states */ .seedprod-spin { animation: seedprod-spin 1s linear infinite; } @keyframes seedprod-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Preview modal styling */ #seedprod-template-preview-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 100000; margin: 0; padding: 0; } #seedprod-template-preview-modal .seedprod-modal-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); z-index: 1; } #seedprod-template-preview-modal .seedprod-modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90vw; height: 90vh; max-width: 100%; background: white; border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); z-index: 2; } #seedprod-template-preview-modal .seedprod-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #ddd; background: white; flex-shrink: 0; } #seedprod-template-preview-modal .seedprod-modal-header-left { flex: 1; } #seedprod-template-preview-modal .seedprod-modal-header-center { flex: 0 0 auto; padding: 0 20px; } #seedprod-template-preview-modal .seedprod-modal-header-right { flex: 0 0 auto; } /* Device Switcher - For Phase 2 Implementation */ .seedprod-device-switcher { display: inline-flex; gap: 8px; background: #f0f0f1; padding: 4px; border-radius: 4px; } .seedprod-device-btn { background: transparent; border: none; padding: 8px 12px; cursor: pointer; color: #646970; border-radius: 3px; transition: all 0.2s; } .seedprod-device-btn:hover { background: rgba(0, 0, 0, 0.05); color: #2c3338; } .seedprod-device-btn.active { background: white; color: var(--seedprod-orange); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .seedprod-device-btn .dashicons { font-size: 18px; width: 18px; height: 18px; } #seedprod-template-preview-modal .seedprod-modal-body { flex: 1; padding: 0 !important; max-height: none !important; height: calc(90vh - 60px) !important; overflow: hidden !important; } #seedprod-template-preview-modal .seedprod-modal-body iframe { width: 100%; height: 100%; border: none; } .seedprod-modal-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); cursor: pointer; } /* ========================================================================== WEBSITE BUILDER PAGE ========================================================================== */ /* Admin notices in dashboard container */ .seedprod-dashboard-container .notice.seedprod-admin-notice { margin: 0 0 20px 0; margin-left: 0 !important; margin-right: 0 !important; } /* Theme Control Card - using standard seedprod-card class */ .seedprod-theme-control-card { margin-bottom: 25px; } /* Reduce padding for better visual balance */ .seedprod-theme-control-card .inside { padding: 20px; } /* Toggle Section */ .seedprod-theme-toggle-section { margin-bottom: 20px; } .seedprod-theme-toggle-header { display: flex; align-items: center; gap: 20px; margin-bottom: 12px; } .seedprod-theme-toggle-header h3 { margin: 0; font-size: 16px; font-weight: 600; color: #1e1e1e; } .seedprod-theme-toggle-control { display: flex; align-items: center; gap: 12px; } .seedprod-theme-toggle-section > p { margin: 0 0 15px 0; color: #646970; font-size: 14px; line-height: 1.5; } .seedprod-toggle-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; } .seedprod-toggle-label .active { color: var(--seedprod-success); background-color: rgba(74, 184, 102, 0.1); padding: 3px 8px; border-radius: 3px; } .seedprod-toggle-label .inactive { color: var(--seedprod-text-secondary); background-color: var(--seedprod-gray-100); padding: 3px 8px; border-radius: 3px; } /* Theme Stats */ .seedprod-theme-stats { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; background: #f6f7f7; border-radius: 4px; font-size: 13px; color: #646970; } .seedprod-stat { white-space: nowrap; } .seedprod-stat-separator { color: #ddd; } /* Divider */ .seedprod-divider { margin: 20px 0; border: 0; border-top: 1px solid #e5e7eb; } /* Quick Actions Section */ .seedprod-quick-actions-section h4 { margin: 0 0 15px 0; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: #787c82; } .seedprod-quick-actions-buttons { display: flex; gap: 10px; flex-wrap: wrap; } /* Buttons use standard seedprod-button-small class, icons need proper alignment */ .seedprod-quick-actions-buttons .button { display: inline-flex; align-items: center; } .seedprod-quick-actions-buttons .button .dashicons { font-size: 16px; width: 16px; height: 16px; line-height: 16px; margin-right: 5px; vertical-align: middle; } /* Secondary button style */ .seedprod-theme-card-actions .seedprod-button-secondary { background: #fff; border: 1px solid #c3c4c7; color: #2c3338; } .seedprod-theme-card-actions .seedprod-button-secondary:hover { background: #f6f7f7; border-color: #8c8f94; } /* Theme Templates Section */ .seedprod-theme-templates-section { margin-top: 30px; } /* Theme Templates Section uses standard section styles */ /* Spinning animation for loading */ @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .dashicons.spin, .button-spinner .dashicons { animation: spin 1s linear infinite; } /* Responsive adjustments */ @media (max-width: 1200px) { .seedprod-theme-card-row { flex-direction: column; gap: 30px; } .seedprod-theme-card-right { flex: 1; width: 100%; padding-left: 0; padding-top: 30px; border-left: none; border-top: 1px solid #e2e4e7; } .seedprod-theme-card-actions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } } @media (max-width: 782px) { .seedprod-theme-card-content { padding: 20px; } .seedprod-theme-card-actions { display: flex; flex-direction: column; } .seedprod-theme-card-actions .button { width: 100%; justify-content: flex-start; } .seedprod-theme-stats { flex-direction: column; align-items: flex-start; gap: 4px; } .seedprod-theme-stats .seedprod-stat-separator { display: none; } } /* Import/Export Modal Styles */ #seedprod-import-export-modal, #seedprod-landing-import-export-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 100050; display: none; background: rgba(0, 0, 0, 0.5); } #seedprod-import-export-modal .seedprod-modal-content, #seedprod-landing-import-export-modal .seedprod-modal-content { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 600px; max-height: 80vh; background: white; border-radius: 4px; box-shadow: 0 3px 30px rgba(0, 0, 0, 0.2); display: flex; flex-direction: column; } #seedprod-import-export-modal .seedprod-modal-header, #seedprod-landing-import-export-modal .seedprod-modal-header { padding: 20px; border-bottom: 1px solid #dcdcde; display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; } #seedprod-import-export-modal .seedprod-modal-header h2, #seedprod-landing-import-export-modal .seedprod-modal-header h2 { margin: 0; font-size: 20px; font-weight: 600; color: #1e1e1e; } #seedprod-import-export-modal .seedprod-modal-body, #seedprod-landing-import-export-modal .seedprod-modal-body { padding: 20px; overflow-y: auto; flex: 1; } #seedprod-import-export-modal .seedprod-modal-footer, #seedprod-landing-import-export-modal .seedprod-modal-footer { padding: 15px 20px; border-top: 1px solid #dcdcde; text-align: right; flex-shrink: 0; } .seedprod-import-export-tabs { display: flex; gap: 0; border-bottom: 1px solid #dcdcde; margin: -20px -20px 20px -20px; } .seedprod-tab-button { background: transparent; border: none; border-bottom: 2px solid transparent; padding: 15px 20px; font-size: 14px; font-weight: 500; color: #646970; cursor: pointer; transition: all 0.2s ease; } .seedprod-tab-button:hover { color: #2c3338; background: #f6f7f7; } .seedprod-tab-button.active { color: var(--seedprod-orange); border-bottom-color: var(--seedprod-orange); background: white; } .seedprod-tab-content { padding: 20px 0; } .seedprod-export-section h3, .seedprod-import-section h3 { margin: 0 0 10px 0; font-size: 16px; font-weight: 600; color: #1e1e1e; } .seedprod-export-section .description, .seedprod-import-section .description { margin: 0 0 20px 0; color: #646970; font-size: 14px; line-height: 1.5; } .seedprod-import-options { margin: 20px 0; } .seedprod-export-actions, .seedprod-import-actions { margin: 25px 0 20px 0; } .seedprod-export-status, .seedprod-import-status { margin: 20px 0 0 0; } .seedprod-export-status .notice, .seedprod-import-status .notice { margin: 0 !important; padding: 12px; box-shadow: none; } #seedprod-import-export-modal .notice { margin-left: 0 !important; margin-right: 0 !important; } .seedprod-import-file-section, .seedprod-import-url-section { margin-bottom: 25px; } .seedprod-import-file-section h4, .seedprod-import-url-section h4 { margin: 0 0 10px 0; font-size: 14px; font-weight: 600; color: #2c3338; } .seedprod-file-upload { display: flex; align-items: center; gap: 15px; } .seedprod-file-upload .button { display: inline-flex; align-items: center; } .seedprod-file-upload .button .dashicons { margin-right: 5px; font-size: 16px; width: 16px; height: 16px; } .seedprod-file-name { color: #2c3338; font-size: 14px; font-style: italic; } .seedprod-file-name:empty { display: none; } #seedprod-import-url { width: 100%; max-width: 400px; } .seedprod-import-warning { margin: 20px 0; } .seedprod-import-warning .notice { margin: 0; } /* Button states */ #seedprod-export-theme-btn, #seedprod-import-theme-btn { display: inline-flex; align-items: center; gap: 8px; } #seedprod-export-theme-btn .dashicons, #seedprod-import-theme-btn .dashicons { font-size: 16px; width: 16px; height: 16px; line-height: 16px; } #seedprod-export-theme-btn .spinner, #seedprod-import-theme-btn .spinner { float: none; margin: 0; } #seedprod-export-theme-btn:disabled, #seedprod-import-theme-btn:disabled { opacity: 0.6; cursor: not-allowed; } /* Landing Pages Section Header */ .seedprod-section-header-buttons { display: flex; gap: 10px; align-items: center; margin-bottom: 20px; } .seedprod-section-header-buttons .button .dashicons { margin-right: 5px; font-size: 16px; width: 16px; height: 16px; vertical-align: middle; } /* Landing Pages Table Fixes */ .seedprod-landing-pages-page .wp-list-table .row-actions .preview { float: none !important; display: inline; } /* Wizard Completion Modal */ #seedprod-wizard-completion-modal { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.7); z-index: 100000; /* Override WordPress admin positioning */ margin-left: 0 !important; } #seedprod-wizard-completion-modal .seedprod-modal-content { background: #fff; border-radius: 8px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); max-width: 500px; width: 90%; max-height: 80vh; overflow-y: auto; /* Use absolute positioning with transform for reliable centering */ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .seedprod-wizard-state { padding: 40px; text-align: center; } .seedprod-wizard-state h2 { font-size: 24px; margin: 0 0 15px 0; color: #333; font-weight: 600; } .seedprod-wizard-state p { font-size: 14px; color: #666; margin: 0 0 25px 0; line-height: 1.6; } .seedprod-spinner-wrapper { margin: 30px 0; } .seedprod-spinner-wrapper .spinner { float: none; margin: 0 auto; display: block; } #seedprod-recommended-plugins-list { text-align: left; margin: 20px 0; } #seedprod-recommended-plugins-list ul { margin: 0; padding: 0; list-style: none; } #seedprod-recommended-plugins-list li { padding: 10px 15px; background: #f5f5f5; margin-bottom: 8px; border-radius: 4px; display: flex; align-items: center; } #seedprod-recommended-plugins-list li:before { content: "✓"; color: #1da867; font-weight: bold; margin-right: 10px; font-size: 18px; } .seedprod-modal-buttons { display: flex; gap: 10px; justify-content: center; margin-top: 25px; } .seedprod-modal-buttons .button { padding: 10px 25px; font-size: 14px; height: auto; line-height: normal; } .seedprod-modal-buttons .button-primary { background: #E14E1B; border-color: #E14E1B; } .seedprod-modal-buttons .button-primary:hover { background: #C94015; border-color: #C94015; } /* Success state specific */ #seedprod-wizard-success h2 { color: #1da867; } #seedprod-success-message { font-size: 16px; margin: 20px 0; } /* Error state specific */ #seedprod-wizard-error h2 { color: #dc3545; } #seedprod-error-message { color: #dc3545; font-size: 14px; } /* ===================================================== Product Education Pages ===================================================== */ /* Main 50-50 Layout */ .seedprod-product-education-main { display: flex; gap: 60px; align-items: center; margin-bottom: 50px; } .seedprod-product-education-left, .seedprod-product-education-right { flex: 1; } /* PRO Feature Badge */ .seedprod-product-education-badge { display: inline-flex; align-items: center; gap: 8px; background: linear-gradient(135deg, #E14E1B 0%, #F47E3C 100%); color: #fff; padding: 6px 12px; border-radius: 20px; font-size: 12px; margin-bottom: 20px; } .seedprod-product-education-badge .dashicons { font-size: 14px; width: 14px; height: 14px; } .seedprod-product-education-badge-text { display: flex; align-items: center; gap: 8px; } .seedprod-product-education-badge-separator { opacity: 0.7; } /* Typography */ .seedprod-product-education-page h1 { font-size: 32px; line-height: 1.2; margin: 0 0 15px 0; color: #1e293b; } .seedprod-product-education-subtitle { font-size: 18px; color: #64748b; margin: 0 0 20px 0; line-height: 1.4; } .seedprod-product-education-description { font-size: 14px; color: #475569; line-height: 1.6; margin-bottom: 25px; } /* Benefits List */ .seedprod-product-education-benefits ul { list-style: none; padding: 0; margin: 0 0 30px 0; } .seedprod-product-education-benefits li { display: flex; align-items: flex-start; margin-bottom: 12px; font-size: 14px; color: #334155; line-height: 1.5; } .seedprod-product-education-benefits .dashicons { color: var(--seedprod-success); margin-right: 10px; flex-shrink: 0; margin-top: 2px; } /* CTA Section */ .seedprod-product-education-cta { margin-top: 35px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; } .seedprod-product-education-cta .button-hero { font-size: 16px; padding: 12px 30px; height: auto; display: inline-flex; align-items: center; gap: 8px; } .seedprod-upgrade-icon { font-size: 18px; } /* ========================================================================== 19. REVIEW NOTICE STYLES ========================================================================== */ /* Review notice styling - minimal, uses WordPress native styles */ .seedprod-v2-review-notice .seedprod-review-step { padding: 5px 0; } .seedprod-v2-review-notice .seedprod-review-step p:first-child { margin-top: 0; } .seedprod-v2-review-notice .seedprod-review-step p:last-child { margin-bottom: 5px; } .seedprod-v2-review-notice .button { margin-right: 5px; } .seedprod-v2-review-notice .seedprod-review-dismiss-link, .seedprod-v2-review-notice .seedprod-dismiss-review-notice-permanent { text-decoration: none; } .seedprod-v2-review-notice .seedprod-review-dismiss-link:hover, .seedprod-v2-review-notice .seedprod-dismiss-review-notice-permanent:hover { text-decoration: underline; } /* ========================================================================== 20. UPGRADE/UPSELL ROWS IN TABLES ========================================================================== */ /* Upgrade row in tables (subscribers, landing pages) */ .seedprod-optinmonster-row, .seedprod-upgrade-row { background-color: #fef7f1; border-left: 4px solid var(--seedprod-orange); } .seedprod-optinmonster-row td, .seedprod-upgrade-row td { padding: 12px 10px; vertical-align: middle; } .seedprod-optinmonster-row .button, .seedprod-upgrade-row .button { white-space: nowrap; } .seedprod-optinmonster-row .dashicons, .seedprod-upgrade-row .dashicons { vertical-align: middle; } .seedprod-product-education-guarantee { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #64748b; flex-basis: 100%; margin: 0; } .seedprod-product-education-guarantee .dashicons { font-size: 16px; color: var(--seedprod-success); } /* Right Column - Media */ .seedprod-product-education-screenshot { width: 100%; height: auto; border-radius: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1); } .seedprod-product-education-video { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; border-radius: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1); } .seedprod-product-education-video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } /* Bottom Section */ .seedprod-product-education-bottom { padding-top: 40px; border-top: 1px solid #e2e8f0; text-align: center; } /* Testimonial */ .seedprod-product-education-testimonial { max-width: 700px; margin: 0 auto 30px; } .seedprod-product-education-testimonial blockquote { margin: 0; padding: 0; } .seedprod-product-education-testimonial p { font-size: 16px; font-style: italic; color: #475569; margin-bottom: 15px; line-height: 1.6; } .seedprod-product-education-testimonial cite { font-style: normal; font-size: 14px; color: #64748b; } .seedprod-product-education-testimonial cite strong { color: #334155; } /* Social Proof */ .seedprod-product-education-users { font-size: 14px; color: #64748b; margin: 0; } /* Responsive Design */ @media (max-width: 768px) { .seedprod-product-education-main { flex-direction: column; gap: 40px; } .seedprod-product-education-page h1 { font-size: 24px; } .seedprod-product-education-subtitle { font-size: 16px; } } /* ===================================================== Free Templates Subscription Banner ===================================================== */ .seedprod-free-templates-banner { background: var(--seedprod-orange); color: #fff; padding: 15px 20px; margin: -20px -20px 20px -20px; border-radius: 0; } .seedprod-banner-content { display: flex; align-items: center; justify-content: center; gap: 20px; } .seedprod-banner-content strong { font-size: 14px; } .seedprod-subscribe-form { display: flex; align-items: center; gap: 10px; } .seedprod-subscribe-input { padding: 6px 12px; border: none; border-radius: 4px; min-width: 250px; } #seedprod-subscribe-button { background: #fff; color: var(--seedprod-orange); border: none; font-weight: 600; } #seedprod-subscribe-button:hover { background: #f0f0f0; } /* ===================================================== Template PRO Badges for Lite View ===================================================== */ .seedprod-template-pro-badge { position: absolute; top: 10px; right: 10px; background: linear-gradient(135deg, #E14E1B 0%, #F47E3C 100%); color: #fff; padding: 4px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; z-index: 10; text-transform: uppercase; letter-spacing: 0.5px; } .seedprod-template-free-badge { position: absolute; top: 10px; right: 10px; background: linear-gradient(135deg, #4AB866 0%, #3d9e56 100%); color: #fff; padding: 4px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; z-index: 10; text-transform: uppercase; letter-spacing: 0.5px; } .seedprod-highlight { animation: highlight-pulse 1s ease-out 2; box-shadow: 0 0 20px rgba(74, 184, 102, 0.5); } @keyframes highlight-pulse { 0% { box-shadow: 0 0 20px rgba(74, 184, 102, 0.5); } 50% { box-shadow: 0 0 40px rgba(74, 184, 102, 0.8); } 100% { box-shadow: 0 0 20px rgba(74, 184, 102, 0.5); } } .seedprod-pro-template .seedprod-template-thumbnail { position: relative; } .seedprod-pro-template .seedprod-template-image { opacity: 0.9; } .seedprod-pro-template:hover .seedprod-template-image { opacity: 1; } /* Lock overlay for Pro templates */ .seedprod-pro-template .seedprod-template-overlay button.seedprod-template-select { position: relative; } .seedprod-pro-template .seedprod-template-overlay button.seedprod-template-select::after { content: '\f160'; /* Dashicons lock */ font-family: dashicons; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 20px; color: #fff; background: rgba(0, 0, 0, 0.7); width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; } /* Edit Conditions Modal - Form Layout */ .seedprod-form-row { display: flex; gap: 15px; } .seedprod-form-group { margin-bottom: 15px; } .seedprod-form-group-half { flex: 1; min-width: 0; } .seedprod-form-group label { display: block; margin-bottom: 5px; font-weight: 600; font-size: 14px; } .seedprod-form-group label .required { color: #dc3232; font-weight: 400; } .seedprod-form-group .description { font-size: 13px; color: #646970; font-style: normal; margin: 5px 0 0 0; } .seedprod-form-control { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; line-height: 1.4; } .seedprod-form-control:focus { border-color: #2271b1; outline: none; box-shadow: 0 0 0 1px #2271b1; } .seedprod-template-type-display { padding: 8px 12px; background-color: #f6f7f7; border: 1px solid #dcdcde; border-radius: 4px; font-size: 14px; color: #2c3338; text-transform: capitalize; line-height: 1.4; } /* Custom Condition Row Styling */ .seedprod-condition-row.is-custom .seedprod-condition-select, .seedprod-condition-row.is-custom .seedprod-condition-value { display: none; } .seedprod-condition-row.is-custom .seedprod-condition-custom-php { display: block !important; }
Save File
Cancel