:root{--bg-base:#070b14;--bg-surface:#0f1623;--bg-raised:#1a2235;--bg-hover:#1f2a40;--accent:#3b82f6;--accent-hover:#2563eb;--text-primary:#e8edf5;--text-secondary:#94a3b8;--text-muted:#4b5a72;--border-subtle:#1e2d42;--border-default:#2a3a52;--score-high:#22c55e;--score-mid:#eab308;--score-low:#ef4444;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-panel:0 8px 32px #00000080, 0 2px 8px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-base);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:14px;overflow:hidden}.app{flex-direction:column;height:100%;display:flex}.app-header{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:100;justify-content:space-between;align-items:center;height:52px;min-height:52px;padding:0 20px;display:flex}.app-logo{align-items:center;gap:8px;display:flex}.app-logo-mark{color:var(--accent);font-size:20px}.app-logo-name{color:var(--text-primary);letter-spacing:-.01em;font-size:17px;font-weight:700}.app-logo-sub{color:var(--text-muted);border-left:1px solid var(--border-subtle);padding-left:8px;font-size:11px;font-weight:400}.app-data-badge{color:var(--text-muted);background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:20px;padding:3px 10px;font-size:11px}.app-main{flex:1;position:relative;overflow:hidden}.map-wrapper{width:100%;height:100%;position:relative}.map-container{width:100%;height:100%}.map-loading{color:var(--text-muted);background:var(--bg-base);justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex;position:absolute;inset:0}.map-error{color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex;position:absolute;inset:0}.map-tooltip{pointer-events:none;background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);z-index:50;min-width:140px;box-shadow:var(--shadow-panel);padding:8px 12px;position:absolute}.map-tooltip-name{color:var(--text-primary);margin-bottom:3px;font-size:12px;font-weight:600}.map-tooltip-score{font-size:11px;font-weight:600}.map-legend{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);z-index:10;min-width:160px;padding:10px 14px;position:absolute;bottom:24px;left:20px}.map-legend-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;font-size:10px;font-weight:600}.map-legend-bar{background:linear-gradient(90deg,#ef4444,#f97316,#eab308,#84cc16,#22c55e);border-radius:4px;height:8px;margin-bottom:4px}.map-legend-labels{color:var(--text-muted);justify-content:space-between;font-size:10px;display:flex}.panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:320px;max-height:calc(100vh - 84px);box-shadow:var(--shadow-panel);z-index:20;flex-direction:column;display:flex;position:absolute;top:16px;right:16px;overflow:hidden}.panel-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:14px 16px 12px;display:flex}.panel-title{color:var(--text-primary);margin-bottom:2px;font-size:15px;font-weight:700;line-height:1.3}.panel-subtitle{color:var(--text-muted);font-size:11px}.panel-body{flex:1;padding-bottom:8px;overflow-y:auto}.panel-body::-webkit-scrollbar{width:4px}.panel-body::-webkit-scrollbar-track{background:0 0}.panel-body::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.panel-section{border-bottom:1px solid var(--border-subtle);padding:12px 16px}.panel-section:last-child{border-bottom:none}.panel-actions{gap:8px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:8px;font-size:10px;font-weight:700}.score-gauge{justify-content:center;padding:4px 0;display:flex}.score-bar-row{align-items:center;gap:8px;margin-bottom:5px;display:flex}.score-bar-label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:110px;font-size:11px;overflow:hidden}.score-bar-track{background:var(--bg-raised);border-radius:2px;flex:1;height:4px;overflow:hidden}.score-bar-fill{border-radius:2px;height:100%;transition:width .5s}.score-bar-value{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:24px;font-size:11px;font-weight:600}.stat-cards-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-card{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:10px 12px}.stat-card-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700;line-height:1.2}.stat-card-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-top:3px;font-size:10px;font-weight:500}.dist-chart-empty{color:var(--text-muted);text-align:center;padding:12px 0;font-size:12px}.opportunity-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;padding:5px 0;display:flex}.opportunity-row:last-child{border-bottom:none}.opportunity-label{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:11px;overflow:hidden}.opportunity-bar-wrap{flex-shrink:0;width:60px}.opportunity-bar-track{background:var(--bg-raised);border-radius:2px;height:3px;overflow:hidden}.opportunity-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .5s}.opportunity-value{color:var(--accent);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:36px;font-size:12px;font-weight:600}.metric-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:5px 0;font-size:12px;display:flex}.metric-row:last-child{border-bottom:none}.metric-label{color:var(--text-secondary)}.metric-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:500}.insights-loading{align-items:center;gap:8px;padding:8px 0;display:flex}.insights-error{align-items:center;padding:6px 0;display:flex}.insights-text{color:var(--text-secondary);white-space:pre-wrap;font-size:13px;line-height:1.65}.insights-cursor{background:var(--accent);vertical-align:text-bottom;width:2px;height:13px;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}.comparison-tray{background:var(--bg-surface);border-top:1px solid var(--border-default);z-index:30;flex-direction:column;max-height:340px;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #0006}.comparison-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.comparison-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:12px;font-weight:700}.comparison-header-actions{align-items:center;gap:8px;display:flex}.comparison-scroll{flex:1;overflow:auto}.comparison-scroll::-webkit-scrollbar{height:4px}.comparison-scroll::-webkit-scrollbar-track{background:0 0}.comparison-scroll::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:2px}.comparison-table{border-collapse:collapse;width:max-content;min-width:100%}.comparison-metric-col{background:var(--bg-surface);z-index:1;width:160px;min-width:160px;position:sticky;left:0}.comparison-region-col{text-align:center;border-left:1px solid var(--border-subtle);min-width:200px;padding:8px 12px}.comparison-region-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.comparison-region-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;text-align:left;max-width:130px;font-size:12px;font-weight:600;overflow:hidden}.comparison-region-state{color:var(--text-muted);background:var(--bg-raised);border-radius:3px;padding:2px 5px;font-size:10px}.comparison-metric-label{color:var(--text-muted);white-space:nowrap;border-bottom:1px solid var(--border-subtle);background:var(--bg-surface);padding:5px 12px;font-size:11px;position:sticky;left:0}.comparison-metric-value{color:var(--text-primary);text-align:center;border-left:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);font-variant-numeric:tabular-nums;padding:5px 12px;font-size:12px;font-weight:500}.btn{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:7px 14px;font-size:12px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-accent:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--bg-raised);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--bg-raised);color:var(--text-primary)}.btn-sm{padding:4px 10px;font-size:11px}.btn-icon{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:background .15s,color .15s;display:inline-flex}.btn-icon:hover{background:var(--bg-raised);color:var(--text-primary)}.btn-icon-sm{width:20px;height:20px;font-size:11px}.toast{background:var(--bg-raised);border:1px solid var(--border-default);color:var(--text-primary);z-index:200;cursor:pointer;box-shadow:var(--shadow-panel);border-radius:20px;padding:8px 18px;font-size:12px;animation:.25s toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.loading-spinner{border:2px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.mk-controls-container{bottom:20px!important;right:16px!important}
