*{box-sizing:border-box}html{font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:#f5f5f5;color:#262626;overflow:hidden}#root{width:100vw;height:100vh;overflow:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:#262626}h1{font-size:2rem;line-height:1.2}h2{font-size:1.75rem;line-height:1.3}h3{font-size:1.5rem;line-height:1.4}h4{font-size:1.25rem;line-height:1.4}h5{font-size:1.125rem;line-height:1.5}h6{font-size:1rem;line-height:1.5}p{margin:0;line-height:1.6}.app-container{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden}.main-content{flex:1;display:flex;overflow:hidden}.map-container{flex:1;position:relative;overflow:hidden}.sidebar{width:400px;background:#fff;border-left:1px solid #e8e8e8;box-shadow:-2px 0 8px #0000001a;display:flex;flex-direction:column;overflow:hidden}.app-header{height:64px;background:#fff;border-bottom:1px solid #e8e8e8;box-shadow:0 1px 4px #00000014;display:flex;align-items:center;padding:0 24px;z-index:100}.app-logo{display:flex;align-items:center;font-size:1.25rem;font-weight:700;color:#1890ff;margin-right:48px}.app-logo-icon{width:32px;height:32px;margin-right:12px;border-radius:6px;background:linear-gradient(135deg,#1890ff,#722ed1);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.875rem}.app-navigation{flex:1;display:flex;align-items:center}.user-profile{display:flex;align-items:center;cursor:pointer;padding:8px 12px;border-radius:6px;transition:background-color .2s}.user-profile:hover{background-color:#f0f0f0}.deck-canvas{outline:none!important}.hover-card{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:16px;max-width:300px;z-index:1000;pointer-events:none}.hover-card-title{font-size:1rem;font-weight:600;margin-bottom:12px;color:#262626}.metrics-grid{display:grid;gap:8px}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.metric-label{font-size:.875rem;color:#8c8c8c;display:flex;align-items:center;gap:6px}.metric-value{font-size:.875rem;font-weight:500;color:#262626}.hover-card-footer{margin-top:12px;padding-top:8px;border-top:1px solid #f0f0f0;font-size:.75rem;color:#bfbfbf;text-align:center}.bivariate-legend{position:absolute;bottom:24px;left:24px;z-index:50;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026}.legend-config-selector{margin-bottom:16px}.bivariate-matrix{display:flex;flex-direction:column}.matrix-container{display:flex;align-items:flex-end}.y-axis-label{display:flex;flex-direction:column;align-items:center;margin-right:12px;writing-mode:vertical-lr;text-orientation:mixed}.axis-title{font-size:.75rem;font-weight:500;color:#595959;margin-bottom:8px}.y-axis-bins{display:flex;flex-direction:column;gap:2px}.color-grid{display:grid;grid-template-rows:repeat(3,1fr);gap:2px}.grid-row{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.grid-cell{width:24px;height:24px;border:1px solid rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:500;color:#0009;cursor:pointer;transition:transform .2s}.grid-cell:hover{transform:scale(1.1);z-index:1}.x-axis-label{display:flex;flex-direction:column;align-items:center;margin-top:12px}.x-axis-bins{display:flex;gap:8px;margin-top:4px}.bin-label{font-size:.625rem;color:#8c8c8c;text-align:center;width:24px}.legend-description{margin-top:12px;padding-top:12px;border-top:1px solid #f0f0f0}.description-text{font-size:.75rem;line-height:1.4}.loading-screen{position:fixed;inset:0;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;z-index:2000}.loading-logo{font-size:3rem;font-weight:700;margin-bottom:2rem;text-align:center}.loading-progress{width:300px;margin-bottom:1rem}.loading-step{font-size:1rem;opacity:.9;text-align:center}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:24px}.login-card{width:100%;max-width:400px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #00000026;overflow:hidden}.login-header{padding:32px 32px 24px;text-align:center;background:linear-gradient(135deg,#1890ff,#722ed1);color:#fff}.login-title{font-size:1.5rem;font-weight:700;margin-bottom:8px}.login-subtitle{opacity:.9}.login-form{padding:32px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.w-full{width:100%}.h-full{height:100%}.hidden{display:none}.visible{visibility:visible}.invisible{visibility:hidden}@media (max-width: 1200px){.sidebar{width:350px}}@media (max-width: 900px){.sidebar{position:absolute;right:0;top:64px;bottom:0;width:400px;z-index:100;transform:translate(100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}}*:focus-visible{outline:2px solid #1890ff;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media print{.hover-card,.bivariate-legend,.app-header,.sidebar{display:none!important}.map-container{width:100%!important;height:100vh!important}}:root{--color-primary-gold: #FFD700;--color-primary-mint: #00FF88;--color-primary-coral: #FF6B6B;--color-hover: #FFA500;--color-active: #FF6B00;--color-selected: #00CC6A;--color-focus: #4A90E2;--color-success: #52c41a;--color-warning: #faad14;--color-error: #ff4d4f;--color-info: #1890ff;--color-bg-primary: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-bg-dark: #1a202c;--color-bg-overlay: rgba(0, 0, 0, .5);--color-text-primary: #1a202c;--color-text-secondary: #4a5568;--color-text-tertiary: #a0aec0;--color-text-inverse: #ffffff;--color-text-link: #3182ce;--color-text-link-hover: #2c5282;--color-border-light: #e2e8f0;--color-border-medium: #cbd5e0;--color-border-dark: #718096;--color-border-focus: #4A90E2;--color-shadow-sm: rgba(0, 0, 0, .05);--color-shadow-md: rgba(0, 0, 0, .1);--color-shadow-lg: rgba(0, 0, 0, .15);--color-shadow-xl: rgba(0, 0, 0, .2);--color-data-high: #e34a33;--color-data-medium: #43a2ca;--color-data-low: #e8f4f8;--color-data-neutral: #f0f0f0;--spacing-0: 0;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--spacing-20: 5rem;--spacing-24: 6rem;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--shadow-xs: 0 1px 2px 0 var(--color-shadow-sm);--shadow-sm: 0 1px 3px 0 var(--color-shadow-sm), 0 1px 2px 0 var(--color-shadow-md);--shadow-md: 0 4px 6px -1px var(--color-shadow-md), 0 2px 4px -1px var(--color-shadow-sm);--shadow-lg: 0 10px 15px -3px var(--color-shadow-lg), 0 4px 6px -2px var(--color-shadow-md);--shadow-xl: 0 20px 25px -5px var(--color-shadow-xl), 0 10px 10px -5px var(--color-shadow-md);--shadow-2xl: 0 25px 50px -12px var(--color-shadow-xl);--shadow-card: var(--shadow-md);--shadow-card-hover: var(--shadow-lg);--shadow-modal: var(--shadow-2xl);--shadow-dropdown: var(--shadow-lg);--shadow-tooltip: var(--shadow-md);--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--radius-card: var(--radius-lg);--radius-button: var(--radius-md);--radius-input: var(--radius-md);--radius-badge: var(--radius-full);--duration-instant: 0ms;--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--duration-very-slow: 1s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--transition-fast: all var(--duration-fast) var(--ease-out);--transition-normal: all var(--duration-normal) var(--ease-in-out);--transition-slow: all var(--duration-slow) var(--ease-in-out);--transition-colors: background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);--transition-transform: transform var(--duration-normal) var(--ease-spring);--transition-opacity: opacity var(--duration-fast) var(--ease-out);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-notification: 1080;--z-max: 9999;--breakpoint-mobile: 320px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--breakpoint-wide: 1440px;--card-bg: var(--color-bg-primary);--card-border: var(--color-border-light);--card-shadow: var(--shadow-card);--card-shadow-hover: var(--shadow-card-hover);--card-radius: var(--radius-card);--card-padding: var(--spacing-4);--button-padding-x: var(--spacing-4);--button-padding-y: var(--spacing-2);--button-radius: var(--radius-button);--button-font-weight: var(--font-weight-medium);--button-transition: var(--transition-colors);--input-bg: var(--color-bg-primary);--input-border: var(--color-border-medium);--input-border-focus: var(--color-border-focus);--input-radius: var(--radius-input);--input-padding-x: var(--spacing-3);--input-padding-y: var(--spacing-2);--input-font-size: var(--font-size-base);--input-height: 2.5rem;--tooltip-bg: var(--color-bg-dark);--tooltip-color: var(--color-text-inverse);--tooltip-shadow: var(--shadow-tooltip);--tooltip-radius: var(--radius-md);--tooltip-padding-x: var(--spacing-3);--tooltip-padding-y: var(--spacing-2);--tooltip-font-size: var(--font-size-sm);--tooltip-max-width: 20rem;--modal-bg: var(--color-bg-primary);--modal-shadow: var(--shadow-modal);--modal-radius: var(--radius-xl);--modal-backdrop: var(--color-bg-overlay);--map-control-bg: rgba(255, 255, 255, .95);--map-control-backdrop-filter: blur(10px);--map-control-shadow: var(--shadow-lg);--map-control-radius: var(--radius-lg);--hover-card-bg: rgba(255, 255, 255, .95);--hover-card-backdrop-filter: blur(10px);--hover-card-shadow: var(--shadow-md);--hover-card-radius: var(--radius-md);--hover-card-max-width: 20rem;--legend-bg: var(--color-bg-primary);--legend-shadow: var(--shadow-card);--legend-radius: var(--radius-lg);--legend-padding: var(--spacing-4);--sidebar-width: 26.25rem;--sidebar-width-collapsed: 0;--header-height: 4rem;--footer-height: 2.5rem;--container-sm: 40rem;--container-md: 48rem;--container-lg: 64rem;--container-xl: 80rem;--container-2xl: 96rem}@media (prefers-color-scheme: dark){:root{--color-bg-primary: #1a202c;--color-bg-secondary: #2d3748;--color-bg-tertiary: #4a5568;--color-text-primary: #f7fafc;--color-text-secondary: #e2e8f0;--color-text-tertiary: #cbd5e0;--color-border-light: #4a5568;--color-border-medium: #718096;--card-bg: #2d3748}}.backdrop-blur-sm{backdrop-filter:blur(4px)}.backdrop-blur{backdrop-filter:blur(8px)}.backdrop-blur-md{backdrop-filter:blur(12px)}.backdrop-blur-lg{backdrop-filter:blur(16px)}.transition-fast{transition:var(--transition-fast)}.transition-normal{transition:var(--transition-normal)}.transition-slow{transition:var(--transition-slow)}.transition-colors{transition:var(--transition-colors)}.transition-transform{transition:var(--transition-transform)}.shadow-card{box-shadow:var(--shadow-card)}.shadow-card-hover{box-shadow:var(--shadow-card-hover)}.shadow-modal{box-shadow:var(--shadow-modal)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.focus-ring:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}@media (min-width: 768px){.tablet\:show{display:block}.tablet\:hide{display:none}}@media (min-width: 1024px){.desktop\:show{display:block}.desktop\:hide{display:none}}@media print{:root{--color-bg-primary: white;--color-text-primary: black}.no-print{display:none!important}}
