/* ======================================== AgroVerse Neon Theme – Feature 3 (Future Crop Simulator) ======================================== */ /* ========== 1. ROOT VARIABLES ========== */ :root { --color-bg-primary: #0a0e0a; --color-bg-secondary: #141a14; --color-bg-tertiary: #1f2a1f; --color-text-primary: #f0ffe0; --color-text-secondary: #d4f7a6; --color-text-muted: #8fb569; --color-accent-yellow: #f4ff4e; --color-accent-lime: #bef22d; --color-accent-green: #34d399; --color-accent-chartreuse: #7fff00; --color-accent-neon: #ccff00; --color-accent-red: #ff6b6b; --color-border: #2d3d2d; --color-border-light: #3d5a3d; --gradient-primary: linear-gradient( 135deg, var(--color-accent-yellow), var(--color-accent-lime), var(--color-accent-green) ); --shadow-neon-sm: 0 0 8px rgba(244, 255, 78, 0.3), 0 0 16px rgba(190, 242, 45, 0.2); --shadow-neon-md: 0 2px 16px rgba(244, 255, 78, 0.4), 0 0 24px rgba(190, 242, 45, 0.3); --spacing-md: 1rem; --spacing-lg: 1.5rem; --border-radius-md: 0.75rem; } /* ---------- RESET & BASE ---------- */ * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; overflow-x: hidden; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif; background: radial-gradient(circle at top, #071308 0, #020604 55%, #010203 100%); color: var(--color-text-secondary); line-height: 1.55; overflow-x: hidden; position: relative; } /* Neon Grid Motion */ body::before { content: ""; position: fixed; inset: -40px; pointer-events: none; background-image: linear-gradient(90deg, rgba(190, 242, 45, 0.08) 1px, transparent 1px), linear-gradient(180deg, rgba(190, 242, 45, 0.06) 1px, transparent 1px); background-size: 42px 42px; opacity: 0.7; mix-blend-mode: screen; animation: neonGrid 32s linear infinite; z-index: -1; } @keyframes neonGrid { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-40px, -40px, 0); } } /* ---------- NAVBAR ---------- */ .navbar { background: rgba(5, 12, 6, 0.92) !important; backdrop-filter: blur(14px); border-bottom: 1px solid rgba(190, 242, 45, 0.45); box-shadow: var(--shadow-neon-md); } .navbar-brand { font-weight: 700; color: var(--color-accent-yellow) !important; text-shadow: 0 0 10px rgba(244,255,78,0.8); } /* ---------- BACK TO PORTAL ---------- */ .back-to-portal { background-image: var(--gradient-primary); border-radius: 999px; padding: 0.4rem 1rem; font-size: 0.78rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; text-decoration: none; white-space: nowrap; color: #081205 !important; box-shadow: var(--shadow-neon-sm); } .back-to-portal:hover { transform: translateY(-2px); box-shadow: var(--shadow-neon-md); } /* ---------- CARDS ---------- */ .card { background: radial-gradient(circle at top left, #1f2a1f 0, #050806 55%); border: 1px solid var(--color-border); border-radius: var(--border-radius-md); box-shadow: var(--shadow-neon-sm); backdrop-filter: blur(16px); } .card-header { background: transparent; border-bottom: 1px solid var(--color-border-light); color: var(--color-accent-lime); text-shadow: 0 0 8px rgba(204, 255, 0, 0.7); } /* ---------- TYPOGRAPHY ---------- */ h6, h5, h4 { color: var(--color-text-primary); } .text-muted { color: var(--color-text-muted) !important; } strong { color: var(--color-text-primary); } /* ---------- FORM ELEMENTS ---------- */ .form-label { text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.8rem; color: var(--color-text-muted); } .form-select, .form-control { background: rgba(3, 6, 3, 0.92); border: 1px solid var(--color-border-light); border-radius: 0.7rem; color: var(--color-text-primary); } .form-control:focus, .form-select:focus { border-color: var(--color-accent-lime); box-shadow: 0 0 4px rgba(190,242,45,0.6); } /* ---------- BUTTONS ---------- */ .btn-success { background-image: var(--gradient-primary); border: none; border-radius: 999px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; color: #062000; padding: 0.55rem 1.8rem; } .btn-success:hover { transform: translateY(-1px); box-shadow: var(--shadow-neon-md); } /* ---------- TABLES ---------- */ .table { color: var(--color-text-secondary); border-color: var(--color-border); } .table thead th { color: var(--color-text-muted); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.75rem; } /* ---------- BADGE ---------- */ .bg-success-subtle { background-color: rgba(34, 197, 94, 0.18) !important; } .text-success-emphasis { color: var(--color-accent-lime) !important; } /* ---------- METRIC PILLS ---------- */ .metric-pill { padding: 0.4rem 0.8rem; border-radius: 999px; background: rgba(190, 242, 45, 0.08); border: 1px solid var(--color-border); margin-bottom: 0.45rem; } .metric-pill .label { font-size: 0.8rem; color: var(--color-text-muted); } .metric-pill .value { font-weight: 700; color: var(--color-text-primary); } /* ---------- GROWTH TIMELINE ---------- */ .growth-timeline { max-height: 240px; overflow-y: auto; border: 1px solid var(--color-border-light); border-radius: 0.6rem; padding: 0.4rem 0.75rem; } .growth-item { display: flex; justify-content: space-between; padding: 0.22rem 0; font-size: 0.8rem; border-bottom: 1px dashed rgba(180, 220, 120, 0.15); } .growth-item:last-child { border-bottom: none; } .growth-item .date { width: 32%; color: var(--color-text-muted); } .growth-item .stage { width: 42%; font-weight: 600; color: var(--color-text-primary); } .growth-item .score { width: 16%; text-align: right; color: var(--color-accent-lime); } /* ---------- IMAGE ---------- */ .img-fluid.rounded.border { border-color: rgba(190,242,45,0.4) !important; box-shadow: 0 12px 32px rgba(0,0,0,0.75); } /* ---------- RESPONSIVE ---------- */ @media (max-width: 767.98px) { .navbar .container-fluid { padding-inline: 0.6rem; } .back-to-portal { padding: 0.35rem 0.8rem; font-size: 0.7rem; } .card-body { padding: var(--spacing-md); } } /* ============================================ RESULT PAGE VISIBILITY FIX Force all result text to bright & readable ============================================ */ /* Default text in cards and results */ .card-body, .card-body p, .card-body span, .card-body strong, .card-body li, .card-body td, .card-body th, .card-body div, .metric-pill .label, .metric-pill .value, .rotation-plan, .result-text, .small, .text-muted { color: var(--color-text-primary) !important; } /* Table body text */ .table td, .table th { color: var(--color-text-primary) !important; } /* Timeline text */ .growth-item span, .growth-item .date, .growth-item .stage, .growth-item .score { color: var(--color-text-primary) !important; } /* Muted captions — lighter but still readable */ .text-muted, .form-text, .small.text-muted { color: var(--color-accent-lime) !important; opacity: 0.85; } /* Card header title highlight */ .card-header, .card-header h6, .card-header h5, .card-header strong { color: var(--color-accent-yellow) !important; text-shadow: var(--text-shadow-neon); } /* Metric value highlight */ .metric-pill .value { color: var(--color-accent-lime) !important; } /* Badge text more readable */ .badge, .text-success-emphasis { color: var(--color-accent-lime) !important; } /* ALERT boxes readable */ .alert-warning, .alert-warning div, .alert-warning span { color: var(--color-accent-yellow) !important; } .alert-info, .alert-info div { color: var(--color-accent-lime) !important; } /* Table header styling */ .table thead th { color: var(--color-accent-lime) !important; font-weight: 600; } /* Ensuring card title always bright */ .card-title { color: var(--color-accent-yellow) !important; text-shadow: var(--text-shadow-neon); } /* New: RL / metric summary numbers */ [data-number], .result-number, .metric-value, .value { color: var(--color-accent-lime) !important; font-weight: 700; } /* ============================================ DARK MODE FOR "Optimized Crop Rotation Plan" ============================================ */ .rotation-dark-table, .rotation-dark-table td, .rotation-dark-table th, .rotation-dark-table tbody tr, .rotation-dark-table tbody td, .rotation-dark-table .badge { color: #1a1a1a !important; /* dark charcoal */ } /* Keep the badge background subtle green */ .rotation-dark-table .badge { background-color: rgba(34,197,94,0.16) !important; border: 1px solid rgba(34,197,94,0.4) !important; } /* Header text slightly darker muted green */ .rotation-dark-table thead th { color: #2b462b !important; } /* Optional softer border */ .rotation-dark-table td, .rotation-dark-table th { border-color: #d6e5d6 !important; }