.customer-dashboard,.dashboard-container{padding:24px 28px 36px}.customer-dashboard .dashboard-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:14px;box-shadow:0 12px 30px rgba(0,0,0,.2);padding:16px 18px}.customer-dashboard .dashboard-filters{margin-bottom:18px}.dashboard-site-select{background:hsl(var(--input));border:1px solid hsl(var(--border));border-radius:10px;color:hsl(var(--foreground));padding:8px 12px;width:100%}.dashboard-filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:12px}.dashboard-pill-group,.dashboard-state-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.dashboard-badge,.dashboard-badge-active{border:1px solid hsl(var(--border));border-radius:999px;cursor:pointer;font-size:.8rem;font-weight:600;letter-spacing:.2px;padding:6px 14px;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.dashboard-badge{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.dashboard-badge-active{background:hsl(var(--primary));border-color:transparent;color:hsl(var(--primary-foreground))}.customer-dashboard .dashboard-section-title{color:hsl(var(--foreground));font-size:24px;font-weight:600;margin:4px 0 12px}.dashboard-sites-grid{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr));text-align:center}.dashboard-site-label{color:hsl(var(--foreground));font-weight:600}.dashboard-site-value{color:hsl(var(--foreground));font-size:1.05rem;font-weight:700}.dashboard-site-caption{color:hsl(var(--muted-foreground));font-size:.8rem}.dashboard-invoices-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:12px}.dashboard-invoices-title{color:hsl(var(--foreground));font-size:1rem;font-weight:600}.dashboard-date-range{align-items:center;color:hsl(var(--muted-foreground));display:flex;font-size:.85rem;gap:8px}.dashboard-summary-note{color:hsl(var(--muted-foreground));font-size:.8rem;margin-left:auto}.dashboard-metrics{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.dashboard-metric{align-items:center;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:12px;display:flex;gap:12px;padding:12px 14px}.dashboard-metric-icon{background:hsl(var(--muted));border-radius:12px;color:hsl(var(--primary));display:grid;font-size:1rem;height:36px;place-items:center;width:36px}.dashboard-metric-svg{fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;width:18px}.dashboard-metric-value{color:hsl(var(--foreground));font-size:1rem;font-weight:700}.dashboard-metric-unit{margin-left:4px}.dashboard-metric-label,.dashboard-metric-unit{color:hsl(var(--muted-foreground));font-size:.75rem}.dashboard-chart-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px}.dashboard-chart{flex:1 1 520px}.dashboard-chart-title{color:hsl(var(--foreground));font-weight:600;margin-bottom:8px}.dashboard-chart-toggle{display:flex;justify-content:flex-end;min-width:160px}.customer-dashboard .ant-radio-button-wrapper{border-color:hsl(var(--border));color:hsl(var(--muted-foreground))}.customer-dashboard .ant-radio-button-wrapper-checked{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.customer-dashboard .ant-radio-button-wrapper-checked:before{background:hsl(var(--primary))}@media (max-width:1200px){.dashboard-sites-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.customer-dashboard,.dashboard-container{padding:20px 18px 28px}.dashboard-sites-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-metrics{grid-template-columns:1fr}}.pulse-dot{align-items:center;display:inline-flex;margin-left:6px;position:relative}.pulse-badge{animation:pulse 2s infinite;background:#e1e8eb;border-radius:3px;color:#908f8f;font-size:.57rem;font-weight:600;letter-spacing:.3px;padding:1px 4px}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.7)}70%{box-shadow:0 0 0 5px rgba(34,197,94,0)}to{box-shadow:0 0 0 0 rgba(34,197,94,0)}}.alert .close{background:none;border:none;color:inherit;cursor:pointer;font-size:18px;font-weight:700;margin-left:10px;opacity:.7;padding:0;position:relative;right:-5px;top:-2px;transition:opacity .2s ease}.alert .close:hover{opacity:1}.alert .close:focus{opacity:1;outline:none}.alert{transition:opacity .3s ease}.toast-container{pointer-events:none;position:fixed;right:20px;top:20px;z-index:1050}.toast{background-color:#fff;border:1px solid rgba(0,0,0,.1);border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);margin-bottom:10px;max-width:400px;min-width:250px;opacity:0;padding:12px 15px;pointer-events:auto;position:relative;transform:translateX(100%);transition:all .3s ease}.toast.show{opacity:1;transform:translateX(0)}.toast.success{background-color:#d4edda;border-left:4px solid #28a745;color:#155724}.toast.error{background-color:#f8d7da;border-left:4px solid #dc3545;color:#721c24}.toast.warning{background-color:#fff3cd;border-left:4px solid #ffc107;color:#856404}.toast.info{background-color:#d1ecf1;border-left:4px solid #17a2b8;color:#0c5460}.toast .toast-header{align-items:center;display:flex;font-size:14px;font-weight:700;justify-content:space-between;margin-bottom:5px}.toast .toast-body{font-size:13px;line-height:1.4}.toast .toast-close{background:none;border:none;color:inherit;cursor:pointer;font-size:16px;font-weight:700;margin-left:10px;opacity:.7;padding:0}.toast .toast-close:hover{opacity:1}.toast .toast-icon{display:inline-block;height:16px;margin-right:8px;width:16px}.toast.success .toast-icon:before{color:#28a745;content:"✓";font-weight:700}.toast.error .toast-icon:before{color:#dc3545;content:"✕";font-weight:700}.toast.warning .toast-icon:before{color:#ffc107;content:"⚠";font-weight:700}.toast.info .toast-icon:before{color:#17a2b8;content:"ℹ";font-weight:700}.back-to-top{align-items:center;background-color:rgba(0,185,107,.7);border:none;border-radius:50%;bottom:30px;box-shadow:0 2px 8px rgba(0,0,0,.15);color:#fff;cursor:pointer;display:flex;font-size:14px;height:40px;justify-content:center;opacity:0;position:fixed;right:30px;transition:all .3s ease;visibility:hidden;width:40px;z-index:1000}.back-to-top:hover{background-color:rgba(0,185,107,.9);box-shadow:0 4px 12px rgba(0,0,0,.2);transform:translateY(-1px)}.back-to-top.show{opacity:.8;visibility:visible}.back-to-top:focus{box-shadow:0 0 0 2px rgba(0,185,107,.3);outline:none}.back-to-top i{transition:transform .2s ease}.back-to-top:hover i{transform:translateY(-1px)}