:root{--color-bg: #0a0a0a;--color-bg-light: #1a1a1a;--color-bg-lighter: #2a2a2a;--color-border: #333333;--color-text: #cccccc;--color-text-dim: #888888;--color-text-bright: #ffffff;--color-accent: #00ff00;--color-accent-dim: #008800;--font-mono: "Courier New", "Courier", monospace;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-mono);font-size:14px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);overflow:hidden}#app{width:100vw;height:100vh}.app-container{display:flex;flex-direction:column;width:100%;height:100%}.app-header{padding:var(--spacing-md);background-color:var(--color-bg-light);border-bottom:2px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.app-header h1{font-size:20px;font-weight:700;color:var(--color-accent);letter-spacing:2px}.header-info{color:var(--color-text-dim);font-size:12px}.header-controls{display:flex;align-items:center;gap:var(--spacing-md)}.control-btn{font-family:var(--font-mono);font-size:12px;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg);color:var(--color-accent);border:1px solid var(--color-accent-dim);cursor:pointer;transition:all .2s}.control-btn:hover{background-color:var(--color-bg-lighter);border-color:var(--color-accent)}.control-btn.active{background-color:var(--color-accent-dim);color:var(--color-text-bright)}.control-label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:12px;color:var(--color-text);cursor:pointer}.control-label input[type=checkbox]{accent-color:var(--color-accent);cursor:pointer}.app-main{flex:1;display:flex;overflow:hidden}.map-container{flex:1;position:relative;background-color:var(--color-bg)}#map-canvas{width:100%;height:100%;display:block}.sidebar{width:400px;background-color:var(--color-bg-light);border-left:2px solid var(--color-border);display:flex;flex-direction:column}.search-panel{padding:var(--spacing-md);border-bottom:1px solid var(--color-border)}#search-input{width:100%;padding:var(--spacing-sm);font-family:var(--font-mono);font-size:14px;background-color:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);outline:none}#search-input:focus{border-color:var(--color-accent)}#search-input:disabled{opacity:.5;cursor:not-allowed}.search-results{margin-top:var(--spacing-sm);max-height:300px;overflow-y:auto;display:none}.search-results.visible{display:block}.search-result-item{padding:var(--spacing-sm);cursor:pointer;border-bottom:1px solid var(--color-border);transition:background-color .1s}.search-result-item:hover,.search-result-item.selected{background-color:var(--color-bg-lighter)}.search-result-item:last-child{border-bottom:none}.search-result-item mark{background-color:var(--color-accent-dim);color:var(--color-text-bright)}.search-no-results{padding:var(--spacing-sm);color:var(--color-text-dim);font-style:italic}.detail-panel{flex:1;padding:var(--spacing-md);overflow-y:auto}.detail-placeholder{color:var(--color-text-dim);text-align:center;margin-top:var(--spacing-lg)}.app-footer{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-light);border-top:2px solid var(--color-border);display:flex;justify-content:space-between;font-size:12px;color:var(--color-text-dim)}.tooltip{position:fixed;display:none;background-color:var(--color-bg-light);border:2px solid var(--color-accent-dim);padding:var(--spacing-sm);max-width:300px;pointer-events:none;z-index:1000;box-shadow:0 4px 8px #00000080}.tooltip-title{font-weight:700;color:var(--color-accent);margin-bottom:var(--spacing-xs)}.tooltip-description{color:var(--color-text);font-size:12px}.tooltip-heatmap{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border)}.tooltip-heatmap-label{color:var(--color-text-dim);font-size:11px}.tooltip-heatmap-value{color:var(--color-accent);font-size:13px;font-weight:700}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:var(--spacing-lg);text-align:center}.error-screen h1{color:red;font-size:32px;margin-bottom:var(--spacing-lg);letter-spacing:4px}.error-screen p{margin-bottom:var(--spacing-md);color:var(--color-text)}.error-screen pre{background-color:var(--color-bg-light);border:1px solid var(--color-border);padding:var(--spacing-md);margin:var(--spacing-md) 0;color:var(--color-accent);overflow-x:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-dim)}.header-nav{display:flex;gap:var(--spacing-md);margin-left:auto}.nav-link{color:var(--color-accent);text-decoration:none;padding:var(--spacing-sm);border:1px solid transparent;transition:all .2s}.nav-link:hover{border-color:var(--color-accent);background-color:var(--color-bg-light)}.app-container.couch-mode .app-header,.app-container.couch-mode .sidebar,.app-container.couch-mode .app-footer{display:none}.app-container.couch-mode .map-container{width:100%}.landing-container{display:flex;flex-direction:column;width:100%;height:100%}.landing-header{padding:var(--spacing-lg);background-color:var(--color-bg-light);border-bottom:2px solid var(--color-border);text-align:center}.landing-header h1{font-size:32px;font-weight:700;color:var(--color-accent);letter-spacing:4px}.landing-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.landing-nav{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);justify-content:center}.nav-card{display:block;width:300px;padding:var(--spacing-lg);background-color:var(--color-bg-light);border:2px solid var(--color-border);text-decoration:none;transition:all .2s}.nav-card:hover{border-color:var(--color-accent);background-color:var(--color-bg-lighter)}.nav-card h2{font-size:18px;color:var(--color-accent);margin-bottom:var(--spacing-sm)}.nav-card p{font-size:12px;color:var(--color-text-dim)}.landing-footer{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-light);border-top:2px solid var(--color-border);text-align:center;font-size:12px;color:var(--color-text-dim)}
