/* ─── Base / Layout ─────────────────────────────────────────────── */

/* ── Reset ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Design Tokens (Dark Theme — shared across all views) ──────────── */
:root {
    --bg: #0f1117;
    --surface: rgba(255, 255, 255, 0.06);
    --surface-hover: rgba(255, 255, 255, 0.10);
    --text-primary: #e8e8ed;
    --text-secondary: #9a9aad;
    --border: rgba(255, 255, 255, 0.08);
    --glow: rgba(255, 255, 255, 0.04);
    --accent: rgba(96, 165, 250, 0.2);
    --accent-text: #93c5fd;
    --accent-border: rgba(96, 165, 250, 0.4);

    /* Legacy aliases (consumed by graph nodes / render.js) */
    --text-color: var(--text-primary);
    --text-glow-shadow: 0 1px 4px rgba(0,0,0,0.7);
    --font-main: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --node-glow: drop-shadow(0px 0px 8px rgba(96, 165, 250, 0.5));
}

body {
    margin: 0;
    overflow: hidden;
    height: 100vh;
    width: 100vw;
    background-color: var(--bg);
    font-family: var(--font-main);
    color: var(--text-primary);
    user-select: none;
}

body::before {
    content: '';
    position: fixed;
    top: 57px;               /* sits just below the header bar */
    left: 0;
    width: 100%;
    height: calc(100vh - 57px);
    background: url('../images/background.png') no-repeat top left;
    background-size: auto;
    opacity: 0.2;
    pointer-events: none;    /* click-through so it doesn't block UI */
    z-index: 0;
}

@media (max-width: 767px) {
    body::before {
        top: 50px;           /* mobile header is shorter */
        height: calc(100vh - 50px);
        background-size: 60%; /* scale down for smaller screens */
    }
}


#map-container {
    width: 100vw;
    height: 100vh;
    cursor: grab;
}

#map-container:active {
    cursor: grabbing;
}
