@@ -58,81 +58,88 @@ export function EuroCostCards({ yearlyCosts, selectedOffer, isLoading }: EuroCos
5858 { /* Stats Cards */ }
5959 < div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4" >
6060 { /* Total Cost Card */ }
61- < div className = "bg-gradient-to-br from-green- 50 to-emerald-100 dark:from-green-900/30 dark:to-emerald-900/30 rounded-xl p-4 border border-green-200 dark:border-green-800 " >
61+ < div className = "bg-gray- 50 dark:bg-gray-800/80 rounded-xl p-4 border-2 border-emerald-500 shadow-sm hover:shadow-md transition-all duration-200 " >
6262 < div className = "flex items-center justify-between mb-2" >
63- < span className = "text-sm font-medium text-green-700 dark:text-green -300" > Coût Total Annuel</ span >
64- < Euro className = "text-green-600 dark:text-green-400 " size = { 18 } />
63+ < span className = "text-sm font-medium text-gray-600 dark:text-gray -300" > Coût Total Annuel</ span >
64+ < Euro className = "text-emerald-500 " size = { 18 } />
6565 </ div >
66- < div className = "text-2xl font-bold text-green -900 dark:text-green-100 " >
66+ < div className = "text-2xl font-bold text-gray -900 dark:text-white " >
6767 { formatCurrency ( currentYear . totalCost ) }
6868 </ div >
69- < div className = "text-xs text-green-600 dark:text-green -400 mt-1" >
69+ < div className = "text-xs text-gray-500 dark:text-gray -400 mt-1" >
7070 { currentYear . periodLabel }
7171 </ div >
7272 { yoyChange !== null && (
73- < div className = { `flex items-center gap-1 mt-2 text-sm ${ yoyChange > 0 ? 'text-red-600 dark:text-red-400' : 'text-green-600 dark:text-green-400' } ` } >
74- { yoyChange > 0 ? < TrendingUp size = { 14 } /> : < TrendingDown size = { 14 } /> }
75- < span > { yoyChange > 0 ? '+' : '' } { yoyChange . toFixed ( 1 ) } % vs année précédente</ span >
73+ < div className = { `flex items-center gap-1.5 mt-2 text-sm` } >
74+ { yoyChange > 0 ? (
75+ < TrendingUp size = { 14 } className = "text-red-500" />
76+ ) : (
77+ < TrendingDown size = { 14 } className = "text-emerald-500" />
78+ ) }
79+ < span className = { `font-medium ${ yoyChange > 0 ? 'text-red-600 dark:text-red-400' : 'text-emerald-600 dark:text-emerald-400' } ` } >
80+ { yoyChange > 0 ? '+' : '' } { yoyChange . toFixed ( 1 ) } %
81+ </ span >
82+ < span className = "text-gray-500 dark:text-gray-400" > vs année précédente</ span >
7683 </ div >
7784 ) }
7885 </ div >
7986
8087 { /* Average Monthly Cost */ }
81- < div className = "bg-gradient-to-br from-blue- 50 to-indigo-100 dark:from-blue-900/30 dark:to-indigo-900/30 rounded-xl p-4 border border-blue-200 dark:border-blue-800 " >
88+ < div className = "bg-gray- 50 dark:bg-gray-800/80 rounded-xl p-4 border-2 border-blue-500 shadow-sm hover:shadow-md transition-all duration-200 " >
8289 < div className = "flex items-center justify-between mb-2" >
83- < span className = "text-sm font-medium text-blue-700 dark:text-blue -300" > Coût Moyen Mensuel</ span >
84- < Calendar className = "text-blue-600 dark:text-blue-400 " size = { 18 } />
90+ < span className = "text-sm font-medium text-gray-600 dark:text-gray -300" > Coût Moyen Mensuel</ span >
91+ < Calendar className = "text-blue-500 " size = { 18 } />
8592 </ div >
86- < div className = "text-2xl font-bold text-blue -900 dark:text-blue-100 " >
93+ < div className = "text-2xl font-bold text-gray -900 dark:text-white " >
8794 { formatCurrency ( currentYear . avgMonthlyCost ) }
8895 </ div >
89- < div className = "text-xs text-blue-600 dark:text-blue -400 mt-1" >
96+ < div className = "text-xs text-gray-500 dark:text-gray -400 mt-1" >
9097 Sur { currentYear . months . length } mois
9198 </ div >
92- < div className = "text-xs text-blue -500 dark:text-blue-500 mt-2" >
99+ < div className = "text-xs text-gray -500 dark:text-gray-400 mt-2" >
93100 ≈ { formatCurrency ( currentYear . avgMonthlyCost / 30 ) } /jour
94101 </ div >
95102 </ div >
96103
97104 { /* Consumption Cost Breakdown */ }
98- < div className = "bg-gradient-to-br from-amber- 50 to-orange-100 dark:from-amber-900/30 dark:to-orange-900/30 rounded-xl p-4 border border-amber-200 dark:border-amber-800 " >
105+ < div className = "bg-gray- 50 dark:bg-gray-800/80 rounded-xl p-4 border-2 border-amber-500 shadow-sm hover:shadow-md transition-all duration-200 " >
99106 < div className = "flex items-center justify-between mb-2" >
100- < span className = "text-sm font-medium text-amber-700 dark:text-amber -300" > Consommation</ span >
101- < Zap className = "text-amber-600 dark:text-amber-400 " size = { 18 } />
107+ < span className = "text-sm font-medium text-gray-600 dark:text-gray -300" > Consommation</ span >
108+ < Zap className = "text-amber-500 " size = { 18 } />
102109 </ div >
103- < div className = "text-2xl font-bold text-amber -900 dark:text-amber-100 " >
110+ < div className = "text-2xl font-bold text-gray -900 dark:text-white " >
104111 { formatCurrency ( currentYear . consumptionCost ) }
105112 </ div >
106- < div className = "text-xs text-amber-600 dark:text-amber -400 mt-1" >
113+ < div className = "text-xs text-gray-500 dark:text-gray -400 mt-1" >
107114 { formatKwh ( currentYear . totalKwh ) } consommés
108115 </ div >
109- < div className = "text-xs text-amber -500 dark:text-amber-500 mt-2" >
116+ < div className = "text-xs text-gray -500 dark:text-gray-400 mt-2" >
110117 Abonnement: { formatCurrency ( currentYear . subscriptionCost ) }
111118 </ div >
112119 </ div >
113120
114121 { /* HC/HP Split */ }
115- < div className = "bg-gradient-to-br from-purple- 50 to-violet-100 dark:from-purple-900/30 dark:to-violet-900/30 rounded-xl p-4 border border-purple-200 dark:border-purple-800 " >
122+ < div className = "bg-gray- 50 dark:bg-gray-800/80 rounded-xl p-4 border-2 border-purple-500 shadow-sm hover:shadow-md transition-all duration-200 " >
116123 < div className = "flex items-center justify-between mb-2" >
117- < span className = "text-sm font-medium text-purple-700 dark:text-purple -300" > Répartition HC/HP</ span >
124+ < span className = "text-sm font-medium text-gray-600 dark:text-gray -300" > Répartition HC/HP</ span >
118125 < div className = "flex gap-1" >
119- < Moon className = "text-purple-600 dark:text-purple-400 " size = { 14 } />
120- < Sun className = "text-purple-600 dark:text-purple-400 " size = { 14 } />
126+ < Moon className = "text-purple-500 " size = { 14 } />
127+ < Sun className = "text-purple-500 " size = { 14 } />
121128 </ div >
122129 </ div >
123- < div className = "text-2xl font-bold text-purple -900 dark:text-purple-100 " >
130+ < div className = "text-2xl font-bold text-gray -900 dark:text-white " >
124131 { hcPercent . toFixed ( 0 ) } % HC
125132 </ div >
126133 < div className = "flex gap-2 mt-2" >
127134 < div className = "flex-1" >
128- < div className = "text-xs text-purple-600 dark:text-purple -400" > Heures Creuses</ div >
129- < div className = "text-sm font-semibold text-purple-800 dark:text-purple -200" >
135+ < div className = "text-xs text-gray-500 dark:text-gray -400" > Heures Creuses</ div >
136+ < div className = "text-sm font-semibold text-gray-700 dark:text-gray -200" >
130137 { formatCurrency ( currentYear . hcCost ) }
131138 </ div >
132139 </ div >
133140 < div className = "flex-1" >
134- < div className = "text-xs text-purple-600 dark:text-purple -400" > Heures Pleines</ div >
135- < div className = "text-sm font-semibold text-purple-800 dark:text-purple -200" >
141+ < div className = "text-xs text-gray-500 dark:text-gray -400" > Heures Pleines</ div >
142+ < div className = "text-sm font-semibold text-gray-700 dark:text-gray -200" >
136143 { formatCurrency ( currentYear . hpCost ) }
137144 </ div >
138145 </ div >
@@ -143,7 +150,7 @@ export function EuroCostCards({ yearlyCosts, selectedOffer, isLoading }: EuroCos
143150 { /* Previous year comparison */ }
144151 { previousYear && (
145152 < div className = "grid grid-cols-1 md:grid-cols-3 gap-4 mt-4" >
146- < div className = "bg-gray-50 dark:bg-gray-800/50 rounded-lg p-3 border border-gray-200 dark:border-gray-700 " >
153+ < div className = "bg-gray-50 dark:bg-gray-800/80 rounded-xl p-3 border-2 border-gray-300 dark:border-gray-600 shadow-sm " >
147154 < div className = "text-xs text-gray-500 dark:text-gray-400 mb-1" > { previousYear . periodLabel } </ div >
148155 < div className = "text-lg font-semibold text-gray-900 dark:text-gray-100" >
149156 { formatCurrency ( previousYear . totalCost ) }
@@ -152,7 +159,7 @@ export function EuroCostCards({ yearlyCosts, selectedOffer, isLoading }: EuroCos
152159 { formatKwh ( previousYear . totalKwh ) }
153160 </ div >
154161 </ div >
155- < div className = "bg-gray-50 dark:bg-gray-800/50 rounded-lg p-3 border border-gray-200 dark:border-gray-700 " >
162+ < div className = "bg-gray-50 dark:bg-gray-800/80 rounded-xl p-3 border-2 border-gray-300 dark:border-gray-600 shadow-sm " >
156163 < div className = "text-xs text-gray-500 dark:text-gray-400 mb-1" > Économie/Surcoût</ div >
157164 < div className = { `text-lg font-semibold ${ currentYear . totalCost > previousYear . totalCost ? 'text-red-600 dark:text-red-400' : 'text-green-600 dark:text-green-400' } ` } >
158165 { currentYear . totalCost > previousYear . totalCost ? '+' : '' } { formatCurrency ( currentYear . totalCost - previousYear . totalCost ) }
@@ -161,7 +168,7 @@ export function EuroCostCards({ yearlyCosts, selectedOffer, isLoading }: EuroCos
161168 Par rapport à l'année précédente
162169 </ div >
163170 </ div >
164- < div className = "bg-gray-50 dark:bg-gray-800/50 rounded-lg p-3 border border-gray-200 dark:border-gray-700 " >
171+ < div className = "bg-gray-50 dark:bg-gray-800/80 rounded-xl p-3 border-2 border-gray-300 dark:border-gray-600 shadow-sm " >
165172 < div className = "text-xs text-gray-500 dark:text-gray-400 mb-1" > Variation Consommation</ div >
166173 < div className = { `text-lg font-semibold ${ currentYear . totalKwh > previousYear . totalKwh ? 'text-amber-600 dark:text-amber-400' : 'text-green-600 dark:text-green-400' } ` } >
167174 { currentYear . totalKwh > previousYear . totalKwh ? '+' : '' } { ( ( currentYear . totalKwh - previousYear . totalKwh ) / previousYear . totalKwh * 100 ) . toFixed ( 1 ) } %
0 commit comments