.stats-chart-container{position:relative;width:100%;height:100%;min-height:16rem}.stats-chart-container canvas{display:block;width:100%!important;height:100%!important}.stats .stat{transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.stats .stat:hover{transform:translateY(-2px);box-shadow:0 10px 25px -3px #0000001a,0 4px 6px -2px #0000000d}.stats-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr;gap:1rem}}.chart-card{background:hsl(var(--b1));border-radius:var(--rounded-box, 1rem);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:box-shadow .3s ease-in-out}.chart-card:hover{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.date-range-selector{background:hsl(var(--b1));border-radius:var(--rounded-box, 1rem);padding:1.5rem;margin-bottom:1.5rem}.date-preset-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}@media (max-width: 640px){.date-preset-buttons{flex-direction:column}.date-preset-buttons .btn{justify-content:center}}.custom-date-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}@media (max-width: 640px){.custom-date-grid{grid-template-columns:1fr}}.stat-value{transition:color .3s ease-in-out}.stat-value:hover{transform:scale(1.05);transition:transform .2s ease-in-out}.chart-loading{display:flex;align-items:center;justify-content:center;height:16rem;color:hsl(var(--bc) / .5)}.chart-loading:after{content:"";width:2rem;height:2rem;border:2px solid hsl(var(--bc) / .3);border-top:2px solid hsl(var(--p));border-radius:50%;animation:spin 1s linear infinite;margin-left:.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-data-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:16rem;color:hsl(var(--bc) / .5);text-align:center;padding:2rem}.no-data-state svg{margin-bottom:1rem;opacity:.3}@media (max-width: 1024px){.stats-responsive{grid-template-columns:1fr}}@media (max-width: 768px){.stats.stats-vertical.lg\:stats-horizontal{grid-template-columns:1fr}.stat{padding:1rem}.stat-value{font-size:1.5rem!important}}.chartjs-tooltip{background-color:hsl(var(--b1))!important;border:1px solid hsl(var(--bc) / .2)!important;border-radius:var(--rounded-btn, .5rem)!important;color:hsl(var(--bc))!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f!important}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}@media (max-width: 640px){.summary-grid{grid-template-columns:repeat(2,1fr)}}.period-summary .stat{border-radius:var(--rounded-box, 1rem);padding:1rem;transition:transform .2s ease-in-out}.period-summary .stat:hover{transform:scale(1.02)}.stats-dashboard .card-body{padding:1.5rem}@media (max-width: 768px){.stats-dashboard .card-body{padding:1rem}}.stats-header{margin-bottom:2rem}.stats-header h1{background:linear-gradient(135deg,hsl(var(--p)),hsl(var(--s)));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 200%;animation:gradient-shift 3s ease-in-out infinite}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.chart-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:16rem;color:hsl(var(--er));text-align:center;padding:2rem;background:hsl(var(--er) / .1);border-radius:var(--rounded-box, 1rem);border:1px solid hsl(var(--er) / .2)}.stats-dashboard .btn:focus{outline:2px solid hsl(var(--p));outline-offset:2px}.stats-dashboard .input:focus{outline:2px solid hsl(var(--p));outline-offset:2px}@media print{.stats-dashboard{background:#fff!important;color:#000!important}.chart-card{-moz-column-break-inside:avoid;break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important}.date-range-selector{display:none}}@media (prefers-color-scheme: dark){.chart-loading:after{border-color:#ffffff4d;border-top-color:hsl(var(--p))}}.stat{animation:fadeInUp .6s ease-out forwards;animation-delay:calc(var(--animation-delay, 0) * .1s)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
