@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#213547;background-color:#f4f6f8;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--p21-primary: #007AFF;--p21-primary-hover: #0066ee;--p21-on-primary: #ffffff;--p21-primary-container: rgba(0, 122, 255, .12);--p21-on-primary-container: #007AFF;--p21-background: #f8f9fa;--p21-on-background: #191c1d;--p21-surface-container-lowest: #ffffff;--p21-surface-container-low: #f3f4f5;--p21-surface-container: #edeeef;--p21-outline: #737685;--p21-outline-variant: #c3c6d6;--p21-on-surface: #191c1d;--p21-on-surface-variant: #434654;--p21-surface-bright: #f8f9fa;--p21-error-container: #ffdad6;--p21-on-error-container: #93000a;--card-bg: #ffffff;--card-border: #e5e7eb;--text-primary: #111827;--text-secondary: #6b7280;--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06)}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#747bff}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.p21-background{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;background-color:var(--p21-background);font-family:Inter,sans-serif;color:var(--p21-on-background);box-sizing:border-box}.p21-login-card{width:100%;max-width:440px;background-color:var(--p21-surface-container-lowest);border-radius:12px;border:1px solid var(--p21-outline-variant);box-shadow:0 4px 20px #0000000d;padding:2.25rem 2rem;box-sizing:border-box;display:flex;flex-direction:column}.p21-brand-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.p21-brand-logo{width:48px;height:48px;background-color:var(--p21-primary-container);color:var(--p21-on-primary-container);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.p21-brand-text{display:flex;flex-direction:column}.p21-brand-title{font-size:1.1rem;font-weight:700;color:var(--p21-on-surface);margin:0;letter-spacing:-.01em}.p21-brand-subtitle{font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--p21-outline);margin:2px 0 0;text-transform:uppercase}.p21-form-header{margin-bottom:1.75rem}.p21-form-title{font-size:24px;font-weight:600;color:var(--p21-on-surface);margin:0}.p21-form-desc{font-size:.95rem;color:var(--p21-on-surface-variant);margin:.5rem 0 0;line-height:1.5}.p21-login-card label{display:block;font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--p21-on-surface);margin-bottom:.35rem;text-transform:uppercase}.p21-field-group{margin-bottom:1.25rem}.p21-login-card input{width:100%;box-sizing:border-box;background-color:var(--p21-surface-bright);border:1px solid var(--p21-outline-variant);color:var(--p21-on-surface);font-size:.95rem;border-radius:8px;padding:.75rem 1rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.p21-login-card input:focus{border-color:var(--p21-primary);box-shadow:0 0 0 1px var(--p21-primary)}.p21-password-container{position:relative}.p21-show-toggle{position:absolute;right:1rem;top:50%;transform:translateY(-50%);cursor:pointer;font-size:12px;font-weight:600;color:var(--p21-outline);-webkit-user-select:none;user-select:none;transition:color .2s ease}.p21-show-toggle:hover{color:var(--p21-on-surface)}.p21-links{display:flex;justify-content:flex-end;margin-top:.25rem}.p21-links a{font-size:12px;font-weight:600;color:var(--p21-primary);text-decoration:none;transition:color .2s ease}.p21-links a:hover{color:var(--p21-primary-hover)}.p21-signin-btn{width:100%;background-color:var(--p21-primary);color:var(--p21-on-primary);font-size:.95rem;font-weight:500;border:none;border-radius:8px;padding:.75rem 1rem;cursor:pointer;transition:background-color .2s ease,transform .1s ease;margin-top:.5rem;box-shadow:0 1px 2px #0000000d}.p21-signin-btn:hover{background-color:var(--p21-primary-hover)}.p21-signin-btn:active{transform:scale(.98)}.p21-divider-container{position:relative;display:flex;align-items:center;margin:1.25rem 0}.p21-divider-line{flex-grow:1;height:1px;background-color:var(--p21-outline-variant)}.p21-divider-text{flex-shrink:0;margin:0 1rem;font-size:12px;font-weight:600;color:var(--p21-outline);letter-spacing:.05em;text-transform:uppercase}.p21-google-btn{width:100%;background-color:var(--p21-surface-container-lowest);color:var(--p21-on-surface);border:1px solid var(--p21-outline-variant);font-size:.95rem;font-weight:500;border-radius:8px;padding:.75rem 1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:background-color .2s ease,transform .1s ease;box-shadow:0 1px 2px #0000000d}.p21-google-btn:hover{background-color:var(--p21-surface-container-low)}.p21-google-btn:active{transform:scale(.98)}.p21-switch{text-align:center;margin-top:2rem;font-size:.95rem;color:var(--p21-on-surface-variant)}.p21-switch a{color:var(--p21-primary);font-weight:500;text-decoration:none;transition:color .2s ease}.p21-switch a:hover{color:var(--p21-primary-hover)}.p21-error{background-color:var(--p21-error-container);border:1px solid var(--p21-outline-variant);color:var(--p21-on-error-container);border-radius:8px;padding:.75rem 1rem;margin-bottom:1.25rem;font-size:.9rem;line-height:1.4}.app-header{padding:1rem 1.5rem;display:flex;flex-direction:column;gap:.75rem;background:#12121abf;border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header-top{display:flex;align-items:center;justify-content:space-between;gap:1rem}.app-brand{font-weight:700;font-size:1.1rem;letter-spacing:.02em;color:#ffffffe6}.app-auth-btn{padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff0d;color:#ffffffd9;cursor:not-allowed;font-weight:600;font-size:.9rem;transition:background .18s ease,border-color .18s ease}.app-auth-btn:hover{background:#ffffff14}.app-nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.app-nav-menu{display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#ffffffd9;cursor:pointer;font-size:1.1rem}.app-nav-link{color:#ffffffc7;text-decoration:none;padding:.45rem .75rem;border-radius:10px;font-weight:600;transition:background .18s ease,color .18s ease}.app-nav-link:hover{background:#ffffff14;color:#fffffff2}.app-nav-link.active{background:#ffffff24;color:#fff}@media(max-width:520px){.p21-login-card{padding:1.75rem 1.25rem}}.p21-global-footer{margin-top:3rem;text-align:center}.p21-global-footer p{font-size:12px;font-weight:600;color:var(--p21-outline);letter-spacing:.05em;text-transform:uppercase;margin:0}.dashboard-root-layout{display:flex;min-height:100vh;width:100vw;overflow:hidden;background-color:var(--p21-background);font-family:Inter,sans-serif;color:var(--p21-on-surface)}.dashboard-main-canvas{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.dashboard-page-container{flex:1;overflow-y:auto;padding:1.5rem;background-color:var(--p21-background);box-sizing:border-box}@media(min-width:768px){.dashboard-main-canvas{margin-left:280px}}.dashboard-sidebar{position:fixed;left:0;top:0;height:100vh;width:280px;background-color:var(--p21-surface-container-low);border-right:1px solid rgba(195,198,214,.3);z-index:50;display:flex;flex-direction:column;padding:24px 16px;box-shadow:0 4px 20px #00000008;box-sizing:border-box;transition:transform .3s cubic-bezier(.4,0,.2,1)}@media(max-width:767px){.dashboard-sidebar{transform:translate(-100%)}.dashboard-sidebar.open{transform:translate(0)}}.sidebar-backdrop{position:fixed;inset:0;background:#00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;opacity:0;pointer-events:none;transition:opacity .25s ease}.sidebar-backdrop.active{opacity:1;pointer-events:auto}.sidebar-brand-container{display:flex;align-items:center;gap:12px;margin-bottom:32px;padding:0 12px}.sidebar-brand-icon{width:40px;height:40px;border-radius:8px;background-color:var(--p21-primary);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-brand-icon span{font-size:22px}.sidebar-brand-text{display:flex;flex-direction:column}.sidebar-brand-title{font-size:15px;font-weight:900;line-height:1.25;color:var(--p21-primary);margin:0;letter-spacing:-.02em}.sidebar-brand-subtitle{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--p21-on-surface-variant);margin:3px 0 0;opacity:.8}.sidebar-nav{display:flex;flex-direction:column;gap:6px;flex:1}.sidebar-nav-link{display:flex;align-items:center;gap:14px;color:var(--p21-on-surface-variant);text-decoration:none;padding:12px 16px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;transition:all .2s cubic-bezier(.4,0,.2,1);box-sizing:border-box;background:transparent;border:none;cursor:pointer;width:100%;text-align:left}.sidebar-nav-link span.material-symbols-outlined{font-size:20px}.sidebar-nav-link:hover{background-color:#e1e3e499;color:var(--p21-on-surface);transform:translate(4px)}.sidebar-nav-link.active{background-color:var(--p21-primary);color:#fff;box-shadow:0 4px 12px #007aff40}.sidebar-nav-link.active:hover{transform:none;background-color:var(--p21-primary);color:#fff}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:6px;border-top:1px solid rgba(195,198,214,.3);padding-top:16px}.footer-link,.logout-btn{color:var(--p21-on-surface-variant)}.logout-btn:hover{color:#ba1a1a;background-color:#fadad680}.dashboard-topbar{position:sticky;top:0;z-index:40;height:64px;background-color:#f8f9facc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(195,198,214,.25);display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-sizing:border-box}.topbar-left{display:flex;align-items:center}.mobile-menu-trigger{display:none}@media(max-width:767px){.mobile-menu-trigger{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--p21-on-surface-variant);padding:8px;cursor:pointer;border-radius:50%;margin-right:8px;transition:background-color .2s}.mobile-menu-trigger:hover{background-color:#e1e3e499}.mobile-brand-title{display:block;font-size:15px;font-weight:700;color:var(--p21-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}}@media(min-width:768px){.mobile-brand-title{display:none}}.topbar-right{display:flex;align-items:center;gap:16px;margin-left:auto}.topbar-icon-btn{background:none;border:none;padding:8px;color:var(--p21-on-surface-variant);cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background-color .15s}.topbar-icon-btn:hover{background-color:#e1e3e499}.relative-badge{position:relative}.badge-dot{position:absolute;top:7px;right:7px;width:7px;height:7px;background-color:#ef4444;border:1.5px solid var(--p21-background);border-radius:50%}.profile-dropdown-container{position:relative}.profile-trigger-btn{background:none;border:1px solid rgba(195,198,214,.4);border-radius:9999px;padding:3px 8px 3px 3px;display:flex;align-items:center;gap:6px;cursor:pointer;transition:all .2s ease}.profile-trigger-btn:hover{background-color:#e1e3e466;border-color:#c3c6d6cc}.user-profile-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex-shrink:0}.profile-dropdown-menu{position:absolute;right:0;top:calc(100% + 8px);background-color:#fff;border:1px solid var(--p21-outline-variant);border-radius:12px;box-shadow:0 10px 25px #0000000f,0 4px 12px #00000005;width:200px;z-index:100;padding:6px 0;animation:dropdown-fade-in .2s cubic-bezier(.16,1,.3,1)}.profile-menu-header{padding:10px 14px;display:flex;flex-direction:column}.profile-user-name{font-weight:700;font-size:13px;color:var(--p21-on-surface)}.profile-user-role{font-size:10px;font-weight:600;color:var(--p21-outline);margin-top:1px;text-transform:uppercase;letter-spacing:.02em}.profile-menu-divider{height:1px;background-color:var(--p21-outline-variant);margin:6px 0;opacity:.6}.profile-menu-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;text-align:left;padding:8px 14px;font-size:12px;font-weight:600;color:var(--p21-on-surface-variant);cursor:pointer;transition:all .15s}.profile-menu-item:hover{background-color:var(--p21-surface-container-low);color:var(--p21-on-surface)}.custom-anomaly-tooltip{background-color:#fef2f2;border:1px solid #fecaca;padding:8px 14px;border-radius:6px;box-shadow:0 4px 12px #ef444414;color:#991b1b;font-size:11px;font-weight:700;position:relative;display:flex;align-items:center;pointer-events:none}.anomaly-tooltip-content{display:flex;align-items:center;gap:6px}.anomaly-tooltip-icon{font-size:15px!important;color:#ef4444}.anomaly-tooltip-arrow{position:absolute;bottom:-4.5px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background-color:#fef2f2;border-right:1px solid #fecaca;border-bottom:1px solid #fecaca}.custom-chart-tooltip{background:#191c1df2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);padding:10px 14px;border-radius:8px;box-shadow:0 10px 25px #0000001f;color:#fff;font-size:11px;pointer-events:none}.tooltip-time{font-weight:700;color:#fff;margin:0 0 6px;border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:4px}.tooltip-data-row{display:flex;align-items:center;gap:6px;margin:3px 0}.tooltip-marker{width:6px;height:6px;border-radius:50%}.marker-actual{background-color:#007aff}.marker-expected{border:1px dashed #737685;background-color:transparent;border-radius:0;width:8px;height:1px}.tooltip-label{color:#c3c6d6;font-weight:500}.tooltip-value{color:#fff;font-weight:700;margin-left:8px}.chart-empty-state{height:300px;display:flex;align-items:center;justify-content:center;color:var(--p21-outline);font-size:13px;font-weight:500}.anomaly-empty-card{margin-top:24px;padding:48px 24px;background-color:var(--p21-surface-container-lowest);border:1px solid var(--p21-outline-variant);border-radius:12px;box-shadow:0 2px 8px #00000005}.anomaly-empty-content{display:flex;flex-direction:column;align-items:center;text-align:center}.anomaly-empty-icon{font-size:48px!important;color:#006e2c;margin-bottom:16px}.anomaly-empty-title{font-size:18px;font-weight:700;color:var(--p21-on-surface);margin:0}.anomaly-empty-desc{font-size:13px;color:var(--p21-on-surface-variant);margin:8px 0 0;max-width:380px;line-height:1.5}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:global-fade-in .3s cubic-bezier(.16,1,.3,1)}@keyframes global-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.overview-container{max-width:1400px;margin:0 auto}.overview-header-group{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px}.overview-main-title{font-size:32px;font-weight:700;color:var(--p21-on-surface);margin:0;letter-spacing:-.02em;line-height:1.15}.overview-subtitle{font-size:14px;color:var(--p21-on-surface-variant);margin:6px 0 0}.kpi-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:16px;margin-bottom:24px}@media(min-width:520px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.kpi-grid{grid-template-columns:repeat(4,1fr)}}.kpi-card{position:relative;overflow:hidden;background-color:var(--p21-surface-container-lowest);border:1px solid rgba(195,198,214,.35);border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000004;display:flex;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);box-sizing:border-box}.kpi-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #0000000a;border-color:#007aff59}.kpi-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.kpi-card-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--p21-on-surface-variant);margin:0;opacity:.9}.kpi-card-icon{font-size:18px!important;color:var(--p21-outline)}.kpi-card-body{display:flex;flex-direction:column}.kpi-card-value{font-size:34px;font-weight:700;color:var(--p21-on-surface);line-height:1.1;margin-bottom:6px;letter-spacing:-.01em}.kpi-card-unit{font-size:16px;font-weight:500;color:var(--p21-on-surface-variant)}.kpi-card-trend{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px;width:fit-content;margin-top:4px}.trend-better{background-color:#006e2c14;color:#006e2c}.trend-worse{background-color:#ba1a1a14;color:#ba1a1a}.trend-icon{font-size:13px!important}.kpi-card-progress-bar{position:absolute;bottom:0;left:0;width:100%;height:3px;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.4,0,.2,1)}.kpi-card:hover .kpi-card-progress-bar{transform:scaleX(1)}.charts-bento-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:24px}@media(min-width:1024px){.charts-bento-grid{grid-template-columns:repeat(3,1fr)}}.bento-card{background-color:var(--p21-surface-container-lowest);border:1px solid rgba(195,198,214,.35);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000004;display:flex;flex-direction:column;box-sizing:border-box;transition:border-color .3s ease,box-shadow .3s ease}.bento-card:hover{border-color:#007aff40;box-shadow:0 8px 16px #00000005}@media(min-width:1024px){.span-two-cols{grid-column:span 2}}.bento-card-header{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}@media(min-width:640px){.bento-card-header{flex-direction:row;justify-content:space-between;align-items:center}}.bento-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--p21-on-surface);margin:0}.bento-card-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-input-group{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:var(--p21-surface-container-low);border:1px solid rgba(195,198,214,.35);border-radius:8px;box-sizing:border-box}.filter-icon{font-size:16px!important;color:var(--p21-outline)}.filter-date-input{background:none;border:none;font-size:12px;font-weight:600;color:var(--p21-on-surface);outline:none;padding:0;margin:0;font-family:inherit;width:95px;cursor:pointer}.filter-date-input::-webkit-calendar-picker-indicator,.filter-time-input::-webkit-calendar-picker-indicator{display:none!important;-webkit-appearance:none}.filter-vertical-divider{width:1px;height:14px;background-color:#c3c6d699;margin:0 6px}.filter-time-range{display:flex;align-items:center;gap:4px}.filter-time-input{background:none;border:none;font-size:12px;font-weight:600;color:var(--p21-on-surface);outline:none;padding:0;margin:0;font-family:inherit;width:80px;text-align:center;cursor:pointer}.time-range-separator{color:var(--p21-outline);font-size:11px;font-weight:600;margin:0 2px}.filter-apply-btn{background-color:var(--p21-primary);color:#fff;border:1px solid var(--p21-primary);border-radius:8px;padding:6px 14px;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}.filter-apply-btn:hover:not(:disabled){background-color:#06e;border-color:#06e}.filter-apply-btn:disabled{background-color:var(--p21-outline-variant);border-color:var(--p21-outline-variant);color:var(--p21-outline);cursor:not-allowed}.chart-legend-container{display:flex;align-items:center;gap:16px;margin-bottom:20px;font-size:12px;font-weight:600}.legend-item{display:flex;align-items:center;gap:6px}.legend-marker{width:10px;height:10px;border-radius:50%}.legend-solid-blue{background-color:#007aff}.legend-dashed-outline{border:2px dashed #737685;height:0;width:16px;border-radius:0;background-color:transparent}.legend-text{color:var(--p21-on-surface-variant)}.chart-canvas-wrapper{height:270px;width:100%;position:relative}.cost-chart-wrapper{height:224px;position:relative;display:flex;flex-direction:column;margin-top:16px}.cost-chart-body{flex:1;display:flex;align-items:stretch;min-height:0;position:relative}.cost-axis-y{width:36px;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-right:6px;font-size:11px;font-weight:600;color:var(--p21-outline);pointer-events:none;padding-bottom:0}.cost-bars-container{flex:1;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;position:relative}.cost-bar-item{flex:1;background-color:var(--p21-surface-container-high);border-radius:4px 4px 0 0;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;display:flex;justify-content:center}.cost-bar-item:hover{background-color:var(--p21-on-surface-variant)}.cost-bar-item.bar-active{background-color:var(--p21-primary)}.cost-bar-item.bar-active:hover{background-color:#06e}.cost-bar-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background-color:var(--p21-on-background);color:#fff;font-size:10px;font-weight:700;padding:3px 6px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;white-space:nowrap;box-shadow:0 4px 10px #0000001f;z-index:10}.cost-bar-item:hover .cost-bar-tooltip{opacity:1;transform:translate(-50%) translateY(-2px)}.cost-axis-x{display:flex;justify-content:space-between;margin-left:36px;margin-top:4px;font-size:11px;font-weight:600;color:var(--p21-outline)}.x-axis-day-label{flex:1;text-align:center;padding-top:6px}.day-active{color:var(--p21-primary);font-weight:800}.detail-section-card{background-color:var(--p21-surface-container-lowest);border:1px solid rgba(195,198,214,.35);border-radius:12px;box-shadow:0 2px 8px #00000004;overflow:hidden;margin-top:24px}.detail-section-header{padding:20px 24px;border-bottom:1px solid rgba(195,198,214,.25);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.detail-section-title{font-size:16px;font-weight:700;color:var(--p21-on-surface);margin:0;letter-spacing:-.01em}.export-report-btn{background:none;border:1px solid rgba(0,122,255,.3);color:var(--p21-primary);font-size:12px;font-weight:700;border-radius:8px;padding:6px 14px;cursor:pointer;transition:all .2s;font-family:inherit}.export-report-btn:hover{background-color:#007aff14;border-color:var(--p21-primary)}.table-responsive{width:100%;overflow-x:auto}.detail-summary-table{width:100%;border-collapse:collapse;text-align:left}.table-header-row{background-color:var(--p21-surface-bright);border-bottom:2px solid rgba(195,198,214,.35)}.table-header-row th{padding:12px 24px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--p21-on-surface-variant)}.table-body-row{border-bottom:1px solid rgba(195,198,214,.15);transition:background-color .15s}.table-body-row:hover{background-color:#f3f4f580}.table-body-row td{padding:14px 24px;font-size:13px;color:var(--p21-on-surface)}.metric-name-col{color:var(--p21-on-surface-variant);font-weight:500}.metric-value-col{font-weight:700}.metric-val-unit{font-size:11px;font-weight:500;color:var(--p21-outline)}.metric-time-col{color:var(--p21-on-surface-variant)}.total-row-highlight{background-color:#007aff04;border-bottom:none}.total-row-highlight:hover{background-color:#007aff08}.text-brand-blue{color:var(--p21-primary)!important}.device-select-container{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:var(--p21-surface-container-low);border:1px solid rgba(195,198,214,.35);border-radius:10px;box-sizing:border-box;width:auto;min-width:180px;transition:all .3s cubic-bezier(.4,0,.2,1)}.device-select-container:hover{border-color:#007aff59;box-shadow:0 4px 12px #00000005}.device-select-icon{font-size:16px!important;color:var(--p21-primary)}.device-select-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--p21-on-surface-variant);flex-grow:1}.device-select-dropdown{background:none;border:none;font-size:12px;font-weight:700;color:var(--p21-on-surface);outline:none;cursor:pointer;font-family:inherit;padding:2px 4px;border-radius:4px;transition:background-color .2s}.device-select-dropdown option{background-color:var(--p21-surface-container-lowest);color:var(--p21-on-surface)}.device-select-dropdown:focus{background-color:var(--p21-surface-container-lowest)}.pagination-controls{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-top:1px solid rgba(195,198,214,.2);background-color:var(--p21-surface-container-lowest);flex-wrap:wrap;gap:16px;box-sizing:border-box}.pagination-info{font-size:13px;color:var(--p21-on-surface-variant);font-weight:500}.font-bold{font-weight:700}.pagination-buttons{display:flex;align-items:center;gap:6px}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border:1px solid rgba(195,198,214,.35);background-color:var(--p21-surface-container-low);color:var(--p21-on-surface);border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);box-sizing:border-box;font-family:inherit}.pagination-btn:hover:not(:disabled){border-color:var(--p21-primary);background-color:#007aff0f;color:var(--p21-primary)}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.pagination-btn-icon{font-size:18px!important}.page-num-btn{padding:0 10px}.active-page{background-color:var(--p21-primary);border-color:var(--p21-primary);color:#fff!important}.active-page:hover{background-color:#06e!important;border-color:#06e!important}.pagination-ellipsis{font-size:13px;color:var(--p21-outline);padding:0 4px;font-weight:600}.pagination-rows-select{display:flex;align-items:center;gap:8px}.rows-select-label{font-size:13px;color:var(--p21-on-surface-variant);font-weight:500}.rows-select-dropdown{background-color:var(--p21-surface-container-low);border:1px solid rgba(195,198,214,.35);border-radius:6px;padding:4px 8px;font-size:12px;font-weight:600;color:var(--p21-on-surface);outline:none;cursor:pointer;font-family:inherit;transition:all .2s}.rows-select-dropdown:hover{border-color:var(--p21-primary)}.rows-select-dropdown option{background-color:var(--p21-surface-container-lowest);color:var(--p21-on-surface)}.forecast-widgets-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-bottom:24px}@media(min-width:900px){.forecast-widgets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.forecast-widget-subtitle{margin:5px 0 0;color:var(--p21-on-surface-variant, #6b7280);font-size:12px;line-height:1.4}.forecast-widget-empty{min-height:260px;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box;color:var(--p21-on-surface-variant, #6b7280);font-size:13px;line-height:1.5;text-align:center}.forecast-cost-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.forecast-cost-values>div{min-width:0;display:flex;flex-direction:column;gap:4px;padding:12px;box-sizing:border-box;background-color:var(--p21-surface-container-low, #f3f4f6);border:1px solid rgba(195,198,214,.3);border-radius:8px}.forecast-cost-values strong{color:var(--p21-on-surface, #111827);font-size:18px;font-weight:750;line-height:1.2;overflow-wrap:anywhere}.forecast-widget-label{display:block;color:var(--p21-on-surface-variant, #6b7280);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.forecast-comparison-message{margin-top:14px;padding:9px 12px;border-radius:8px;font-size:12px;font-weight:700;line-height:1.4}.comparison-over{color:#ba1a1a;background-color:#ba1a1a14;border:1px solid rgba(186,26,26,.14)}.comparison-under{color:#006e2c;background-color:#006e2c14;border:1px solid rgba(0,110,44,.14)}.comparison-equal{color:var(--p21-primary, #007aff);background-color:#007aff14;border:1px solid rgba(0,122,255,.14)}.monthly-gauge-wrapper{position:relative;width:100%;height:245px;min-width:0;overflow:hidden}.monthly-gauge-centre{position:absolute;left:50%;bottom:27px;transform:translate(-50%);max-width:70%;display:flex;flex-direction:column;align-items:center;text-align:center;pointer-events:none}.monthly-gauge-total{color:var(--p21-on-surface, #111827);font-size:30px;font-weight:800;line-height:1;letter-spacing:-.02em;overflow-wrap:anywhere}.monthly-gauge-unit{margin-top:5px;color:var(--p21-on-surface-variant, #6b7280);font-size:11px;font-weight:600}.monthly-gauge-percentage{margin-top:5px;color:#ef4444;font-size:12px;font-weight:700}.monthly-gauge-start-label,.monthly-gauge-end-label{position:absolute;bottom:12px;color:var(--p21-outline, #737685);font-size:10px;font-weight:600;pointer-events:none}.monthly-gauge-start-label{left:8%}.monthly-gauge-end-label{right:8%;max-width:90px;text-align:right}.monthly-gauge-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}.monthly-gauge-legend-item{min-width:0;display:flex;align-items:center;gap:9px;padding:11px;box-sizing:border-box;background-color:var(--p21-surface-container-low, #f3f4f6);border:1px solid rgba(195,198,214,.3);border-radius:8px}.monthly-gauge-legend-item>div{min-width:0;display:flex;flex-direction:column;gap:3px}.monthly-gauge-legend-item strong{color:var(--p21-on-surface, #111827);font-size:14px;font-weight:750;line-height:1.25;overflow-wrap:anywhere}.gauge-marker{width:12px;height:12px;flex-shrink:0;border-radius:50%}.gauge-marker-actual{background-color:#ef4444}.gauge-marker-forecast{background-color:#ef444438;border:1px solid rgba(239,68,68,.4)}.monthly-gauge-updated{margin-top:12px;color:var(--p21-on-surface-variant, #6b7280);font-size:11px;line-height:1.4;text-align:center}@media(max-width:640px){.forecast-widgets-grid{gap:16px}.forecast-cost-values{grid-template-columns:1fr}.monthly-gauge-wrapper{height:220px}.monthly-gauge-total{font-size:25px}.monthly-gauge-centre{bottom:25px;max-width:78%}.monthly-gauge-legend{grid-template-columns:1fr}.monthly-gauge-start-label{left:5%}.monthly-gauge-end-label{right:5%}}@media(prefers-color-scheme:dark){.forecast-cost-values>div,.monthly-gauge-legend-item{border-color:#c3c6d62e}}
