*,:before,:after{box-sizing:border-box}html,body,#app{color:#111827;background:#f9fafb;height:100%;margin:0;padding:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.auth-loading[data-v-7d3c8aa3]{color:#6b7280;justify-content:center;align-items:center;height:100vh;font-size:1.125rem;display:flex}.app[data-v-7d3c8aa3]{height:100vh;display:flex;overflow:hidden}.sidebar[data-v-7d3c8aa3]{color:#d1d5db;background:#111827;flex-direction:column;flex-shrink:0;width:220px;padding:1.25rem 0;display:flex;overflow-y:auto}.sidebar__brand[data-v-7d3c8aa3]{border-bottom:1px solid #1f2937;align-items:center;gap:.625rem;padding:0 1.25rem 1.5rem;display:flex}.sidebar__logo[data-v-7d3c8aa3]{color:#fff;letter-spacing:.05em;background:#2563eb;border-radius:.375rem;padding:.25rem .4rem;font-size:.75rem;font-weight:800}.sidebar__name[data-v-7d3c8aa3]{color:#f9fafb;font-size:1rem;font-weight:700}.sidebar__nav[data-v-7d3c8aa3]{flex-direction:column;gap:.125rem;padding:1.25rem 0;display:flex}.sidebar__section-label[data-v-7d3c8aa3]{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin:0;padding:0 1.25rem .5rem;font-size:.6875rem;font-weight:600}.sidebar__link[data-v-7d3c8aa3]{color:#9ca3af;border-radius:0;padding:.5rem 1.25rem;font-size:.875rem;transition:background .1s,color .1s;display:block}.sidebar__link[data-v-7d3c8aa3]:hover{color:#f3f4f6;background:#1f2937}.sidebar__link--active[data-v-7d3c8aa3]{color:#fff;background:#1d4ed8;font-weight:600}.main[data-v-7d3c8aa3]{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar[data-v-7d3c8aa3]{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;align-items:center;height:56px;padding:0 1.5rem;display:flex}.topbar__title[data-v-7d3c8aa3]{color:#111827;margin:0;font-size:1.0625rem;font-weight:700}.main[data-v-7d3c8aa3]>:last-child{flex:1;overflow-y:auto}.dash-header[data-v-acceca15]{justify-content:flex-end;align-items:center;gap:1rem;margin-bottom:1rem;padding:0 .125rem;display:flex}.dash-header__time[data-v-acceca15]{color:#9ca3af;font-size:.8125rem}.dash-header__refresh[data-v-acceca15]{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.dash-header__refresh[data-v-acceca15]:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.dash-header__refresh[data-v-acceca15]:disabled{opacity:.5;cursor:not-allowed}.dash-header__icon--spinning[data-v-acceca15]{animation:.8s linear infinite spin-acceca15}@keyframes spin-acceca15{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-view[data-v-acc99d19]{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.metric-card[data-v-acc99d19]{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.metric-card__header[data-v-acc99d19]{margin-bottom:1.25rem}.metric-card__name[data-v-acc99d19]{color:#111827;margin:0 0 .25rem;font-size:1.125rem;font-weight:700}.metric-card__description[data-v-acc99d19]{color:#6b7280;margin:0;font-size:.875rem}.state-message[data-v-acc99d19]{text-align:center;color:#9ca3af;justify-content:center;align-items:center;gap:.5rem;padding:2rem 0;font-size:.875rem;display:flex}.state-message--error[data-v-acc99d19]{color:#dc2626}.chart-container[data-v-acc99d19]{height:320px;position:relative}.westshore-stats[data-v-acc99d19]{gap:.75rem;margin-top:1rem;display:flex}.westshore-stat[data-v-acc99d19]{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:.5rem;flex:1;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.westshore-stat__label[data-v-acc99d19]{color:#5b21b6;font-size:.875rem}.westshore-stat__value[data-v-acc99d19]{color:#7c3aed;font-size:1.25rem;font-weight:700}.loader-icon[data-v-acc99d19]{transform-origin:50%;animation:2s linear infinite rotate-animation-acc99d19}@keyframes rotate-animation-acc99d19{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-view[data-v-e15b1712]{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.metric-card[data-v-e15b1712]{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.metric-card__header[data-v-e15b1712]{margin-bottom:1.25rem}.metric-card__name[data-v-e15b1712]{color:#111827;margin:0 0 .25rem;font-size:1.125rem;font-weight:700}.metric-card__description[data-v-e15b1712]{color:#6b7280;margin:0;font-size:.875rem}.state-message[data-v-e15b1712]{text-align:center;color:#9ca3af;justify-content:center;align-items:center;gap:.5rem;padding:2rem 0;font-size:.875rem;display:flex}.state-message--error[data-v-e15b1712]{color:#dc2626}.chart-container[data-v-e15b1712]{height:320px;position:relative}.loader-icon[data-v-e15b1712]{transform-origin:50%;animation:2s linear infinite rotate-animation-e15b1712}@keyframes rotate-animation-e15b1712{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-view[data-v-bec82c38]{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.metric-card[data-v-bec82c38]{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.metric-card__header[data-v-bec82c38]{margin-bottom:1.25rem}.metric-card__name[data-v-bec82c38]{color:#111827;margin:0 0 .25rem;font-size:1.125rem;font-weight:700}.metric-card__description[data-v-bec82c38]{color:#6b7280;margin:0;font-size:.875rem}.state-message[data-v-bec82c38]{text-align:center;color:#9ca3af;justify-content:center;align-items:center;gap:.5rem;padding:2rem 0;font-size:.875rem;display:flex}.state-message--error[data-v-bec82c38]{color:#dc2626}.stat-tiles[data-v-bec82c38]{gap:.75rem;display:flex}.stat-tile[data-v-bec82c38]{border-radius:.5rem;flex-direction:column;flex:1;gap:.2rem;padding:1rem 1.25rem;display:flex}.stat-tile--neutral[data-v-bec82c38]{background:#f9fafb;border:1px solid #e5e7eb}.stat-tile--blue[data-v-bec82c38]{background:#eff6ff;border:1px solid #bfdbfe}.stat-tile--green[data-v-bec82c38]{background:#f0fdf4;border:1px solid #bbf7d0}.stat-tile__label[data-v-bec82c38]{color:#6b7280;font-size:.8125rem}.stat-tile__value[data-v-bec82c38]{color:#111827;font-size:1.75rem;font-weight:700;line-height:1}.stat-tile--blue .stat-tile__value[data-v-bec82c38]{color:#1d4ed8}.stat-tile--green .stat-tile__value[data-v-bec82c38]{color:#15803d}.stat-tile__sub[data-v-bec82c38]{color:#6b7280;font-size:.8125rem}.chart-container[data-v-bec82c38]{height:320px;position:relative}.breakdown-table[data-v-bec82c38]{border-collapse:collapse;width:100%;margin-top:1.25rem;font-size:.875rem}.breakdown-table th[data-v-bec82c38]{text-align:left;color:#6b7280;border-bottom:1px solid #e5e7eb;padding:.5rem .75rem;font-weight:600}.breakdown-table td[data-v-bec82c38]{color:#111827;border-bottom:1px solid #f3f4f6;padding:.625rem .75rem}.breakdown-table tbody tr:last-child td[data-v-bec82c38]{border-bottom:none}.text-right[data-v-bec82c38]{text-align:right}.status-dot[data-v-bec82c38]{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:.5rem;display:inline-block}.loader-icon[data-v-bec82c38]{transform-origin:50%;animation:2s linear infinite rotate-animation-bec82c38}@keyframes rotate-animation-bec82c38{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.project-view[data-v-c4d64eb9]{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.metric-card[data-v-c4d64eb9]{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.5rem}.metric-card__header[data-v-c4d64eb9]{margin-bottom:1.25rem}.metric-card__name[data-v-c4d64eb9]{color:#111827;margin:0 0 .25rem;font-size:1.125rem;font-weight:700}.metric-card__description[data-v-c4d64eb9]{color:#6b7280;margin:0;font-size:.875rem}.state-message[data-v-c4d64eb9]{text-align:center;color:#9ca3af;justify-content:center;align-items:center;gap:.5rem;padding:2rem 0;font-size:.875rem;display:flex}.state-message--error[data-v-c4d64eb9]{color:#dc2626}.date-range[data-v-c4d64eb9]{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.date-range__field[data-v-c4d64eb9]{flex-direction:column;gap:.375rem;display:flex}.date-range__label[data-v-c4d64eb9]{color:#374151;font-size:.8125rem;font-weight:600}.date-range__input[data-v-c4d64eb9]{color:#111827;background:#f9fafb;border:1px solid #d1d5db;border-radius:.375rem;outline:none;padding:.5rem .75rem;font-size:.875rem}.date-range__input[data-v-c4d64eb9]:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.date-range__actions[data-v-c4d64eb9]{gap:.5rem;display:flex}.btn[data-v-c4d64eb9]{cursor:pointer;border:1px solid #0000;border-radius:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600}.btn--primary[data-v-c4d64eb9]{color:#fff;background:#3b82f6;border-color:#3b82f6}.btn--primary[data-v-c4d64eb9]:hover{background:#2563eb;border-color:#2563eb}.btn--secondary[data-v-c4d64eb9]{color:#374151;background:#f9fafb;border-color:#d1d5db}.btn--secondary[data-v-c4d64eb9]:hover{background:#f3f4f6}.stat-tiles[data-v-c4d64eb9]{gap:.75rem;display:flex}.stat-tile[data-v-c4d64eb9]{border-radius:.5rem;flex-direction:column;flex:1;gap:.2rem;max-width:280px;padding:1rem 1.25rem;display:flex}.stat-tile--blue[data-v-c4d64eb9]{background:#eff6ff;border:1px solid #bfdbfe}.stat-tile__label[data-v-c4d64eb9]{color:#6b7280;font-size:.8125rem}.stat-tile__value[data-v-c4d64eb9]{color:#1d4ed8;font-size:1.75rem;font-weight:700;line-height:1}.loader-icon[data-v-c4d64eb9]{transform-origin:50%;animation:2s linear infinite rotate-animation-c4d64eb9}@keyframes rotate-animation-c4d64eb9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
