/* Custom Styles for FRA-INSIGHT Theme: "Predictive Power Grid" */ :root { --primary: #0047AB; /* Electric Blue */ --secondary: #00B386; /* Eco Green */ --accent: #FFD700; /* Energy Yellow */ --bg-light: #F7FAFC; /* Soft Gray White */ --text-primary: #1A1A1A; --text-secondary: #4A5568; --card-bg: #FFFFFF; --border-radius: 0.5rem; --shadow-sm: 0 4px 12px rgba(0,0,0,0.06); --shadow-md: 0 8px 20px rgba(0,0,0,0.1); } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif; background-color: var(--bg-light); color: var(--text-primary); } .navbar-custom { background-color: var(--card-bg); box-shadow: var(--shadow-sm); padding: 1rem 0; } .navbar-custom .navbar-brand { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 1.75rem; color: var(--primary); } .navbar-custom .navbar-brand i { margin-right: 0.5rem; } .navbar-custom .nav-link { font-family: 'Poppins', sans-serif; font-weight: 500; color: var(--text-secondary); margin: 0 0.5rem; border-radius: 0.25rem; transition: color 0.3s ease, background-color 0.3s ease; } .navbar-custom .nav-link:hover, .navbar-custom .nav-link.active { color: var(--primary); background-color: rgba(0, 71, 171, 0.05); } .body-content { padding: 2rem 0; } .page-title { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 2.5rem; color: var(--text-primary); margin-bottom: 2rem; } h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; font-weight: 600; } .card { border: none; border-radius: var(--border-radius); box-shadow: var(--shadow-sm); transition: transform 0.3s ease, box-shadow 0.3s ease; } .card:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); } .card-title { color: var(--primary); } .btn-primary { background-color: var(--primary); border-color: var(--primary); font-weight: 500; padding: 0.75rem 1.5rem; border-radius: 0.25rem; transition: background-color 0.3s ease, border-color 0.3s ease; } .btn-primary:hover { background-color: #003a8c; border-color: #003a8c; } .btn-secondary { background-color: var(--secondary); border-color: var(--secondary); font-weight: 500; padding: 0.75rem 1.5rem; border-radius: 0.25rem; transition: background-color 0.3s ease, border-color 0.3s ease; } .btn-secondary:hover { background-color: #009a72; border-color: #009a72; } .kpi-card { text-align: center; padding: 2rem; } .kpi-number { font-family: 'Roboto Mono', monospace; font-size: 3rem; font-weight: 700; color: var(--primary); } .kpi-label { font-size: 1.1rem; color: var(--text-secondary); margin-top: 0.5rem; } .footer { background-color: var(--card-bg); padding: 2rem 0; margin-top: 4rem; text-align: center; font-size: 0.9rem; color: var(--text-secondary); box-shadow: 0 -4px 12px rgba(0,0,0,0.04); } /* Plotly chart container */ .chart-container { min-height: 450px; width: 100%; }