*, *::before, *::after { box-sizing: border-box; }

body, html { 
    background: #0a0a0a; font-family: 'Roboto', sans-serif; 
    margin: 0; padding: 0; height: 100dvh; width: 100vw; overflow: hidden;
}

#ss_app-wrapper { display: grid; width: 100%; height: 100%; overflow: hidden; grid-template-columns: 1fr; }
#ss_app-wrapper.ss_show-sidebar { grid-template-columns: 1fr 420px; }

#ss_map-container { position: relative; height: 100%; width: 100%; min-height: 0; background: #000; }

#ss_center-reticle {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 60px; height: 60px; z-index: 1000; pointer-events: none;
    filter: drop-shadow(0 0 8px rgba(0, 255, 204, 0.6)); transition: transform 0.3s;
}

#ss_left-panel { 
    position: absolute; top: 15px; left: 15px; z-index: 2000; 
    width: 340px; max-width: calc(100vw - 30px); 
    max-height: calc(100dvh - 30px); overflow-y: auto; pointer-events: auto;
}

.ss_theme-card {
    background: rgba(15, 20, 25, 0.95); border: 1px solid #00ffcc; border-radius: 4px;
    padding: 15px; box-shadow: 0 0 15px rgba(0, 255, 204, 0.15); color: #fff;
    backdrop-filter: blur(5px);
}

.ss_theme-card h2 { margin-top: 0; color: #00ffcc; font-family: 'Orbitron', sans-serif; text-shadow: 0 0 5px rgba(0,255,204,0.3); }

.ss_search-row { margin-bottom: 15px; }
.ss_search-row label { font-size: 11px; font-weight: bold; color: #aaa; text-transform: uppercase; display: block; margin-bottom: 5px; }

.ss_theme-select { 
    width: 100%; padding: 10px; border: 1px solid #333; background: #1a1a1a; 
    color: #00ffcc; border-radius: 4px; font-size: 14px; 
}
.ss_theme-select:focus { outline: 1px solid #00ffcc; }

.ss_theme-btn {
    background: #004d40; color: #00ffcc; border: 1px solid #00ffcc; font-weight: bold; 
    border-radius: 4px; cursor: pointer; text-transform: uppercase; letter-spacing: 1px; 
    padding: 10px; transition: all 0.2s; width: 100%; font-family: 'Orbitron', sans-serif;
}
.ss_theme-btn:hover { background: #00ffcc; color: #000; box-shadow: 0 0 10px rgba(0,255,204,0.5); }

#ss_modern-location-display { font-size: 13px; margin-bottom: 10px; color: #888; border-bottom: 1px solid #333; padding-bottom: 10px; }

.ss_sidebar {
    background: #111; color: #fff; border-left: 2px solid #00ffcc;
    display: flex; flex-direction: column; z-index: 2100; min-height: 0;
}
.ss_sidebar.ss_hidden { display: none; }
.ss_sidebar-content { padding: 15px; overflow-y: auto; flex: 1 1 auto; display:flex; flex-direction: column; gap: 15px; }

.ss_intel-card { background: #1a1a1a; border-radius: 4px; padding: 15px; border-left: 3px solid #00ffcc; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); flex-shrink: 0; }
.ss_intel-card h4 { margin: 0 0 10px 0; color: #fff; font-family: 'Orbitron', sans-serif; font-size: 14px; letter-spacing: 1px;}
.ss_gemini-output { font-size: 13px; line-height: 1.5; color: #ccc; }

.ss_spec-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.ss_spec-table tr { border-bottom: 1px solid #333; }
.ss_spec-table tr:last-child { border-bottom: none; }
.ss_spec-table td { padding: 10px 0; word-wrap: break-word; }
.ss_spec-key { color: #888; width: 35%; padding-right: 10px; font-weight: bold; vertical-align: top;}
.ss_spec-val { color: #fff; vertical-align: top;}

.ss_wiki-link { color: #00ffcc !important; text-decoration: underline; }

.ss_spinner { border: 3px solid #222; border-top: 3px solid #00ffcc; border-radius: 50%; width: 30px; height: 30px; animation: ss_spin 1s linear infinite; margin: 0 auto 10px; }

#ss_radar-sweep {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 1500; pointer-events: none;
    background: conic-gradient(from 0deg, transparent 70%, rgba(0, 255, 204, 0.15) 100%);
    animation: ss_spin 2s linear infinite; mix-blend-mode: screen;
}
@keyframes ss_spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
.ss_hidden { display: none !important; opacity: 0; }