/* CommandCenterHud — clock + date + compass (top-centre) and a cursor
   coordinate read-out (bottom-centre). The metric scale bar is the built-in
   MapLibre ScaleControl (bottom-left). Command-center look: mono numerals,
   tabular figures, dark glass panel. */

.ms-cmd-hud {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 6px 16px;
    background: var(--ms-panel);
    border: 1px solid var(--ms-panel-border);
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(6px);
    pointer-events: auto;
}

.ms-cmd-clockblock {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}
.ms-cmd-time {
    font-family: var(--ms-font-mono);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--ms-text);
    font-variant-numeric: tabular-nums;
}
.ms-cmd-date {
    font-family: var(--ms-font-mono);
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ms-text-dim);
}

/* ---- compass rose ---- */

.ms-cmd-compass {
    display: flex;
    line-height: 0;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: var(--ms-cursor-pointer);
}
.ms-cmd-compass:focus-visible {
    outline: 2px solid var(--ms-accent);
    outline-offset: 2px;
    border-radius: 50%;
}
.ms-cmd-compass-ring {
    fill: rgba(0, 0, 0, 0.25);
    stroke: var(--ms-panel-border);
    stroke-width: 1.5;
}
.ms-cmd-compass-n {
    fill: var(--ms-text);
    font-size: 9px;
    font-weight: 700;
    font-family: var(--ms-font-mono);
}
/* Rotated by command-hud.js to counter the map bearing; transition keeps the
   needle motion smooth as the operator drags to rotate. */
.ms-cmd-needle {
    transform-box: fill-box;
    transform-origin: center;
    transition: transform 150ms ease-out;
}
.ms-cmd-needle-n { fill: var(--ms-alert); }
.ms-cmd-needle-s { fill: var(--ms-text-mute); }

/* ---- QGIS ⇄ Web sync indicator ---- */

.ms-cmd-divider {
    width: 1px;
    align-self: stretch;
    margin: 2px 0;
    background: var(--ms-panel-border);
}

.ms-cmd-sync {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: default;
}
.ms-cmd-sync-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex: 0 0 auto;
    /* Colour + glow set per state below. */
    background: var(--ms-text-mute);
    box-shadow: 0 0 6px transparent;
}
.ms-cmd-sync-text {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
}
.ms-cmd-sync-label {
    font-family: var(--ms-font-mono);
    font-size: 11px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ms-text-dim);
}
.ms-cmd-sync-meta {
    font-family: var(--ms-font-mono);
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--ms-text);
}

/* State colours mirror the StatusBar dot vocabulary. The ok dot pulses
   gently so "synced and live" reads as a heartbeat, not a static lamp. */
.ms-cmd-sync.ok    .ms-cmd-sync-dot { background: var(--ms-ok);    box-shadow: 0 0 7px var(--ms-ok);    animation: ms-cmd-sync-beat 2.4s ease-in-out infinite; }
.ms-cmd-sync.warn  .ms-cmd-sync-dot { background: var(--ms-warn);  box-shadow: 0 0 7px var(--ms-warn); }
.ms-cmd-sync.alert .ms-cmd-sync-dot { background: var(--ms-alert); box-shadow: 0 0 7px var(--ms-alert); }

@keyframes ms-cmd-sync-beat {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.45; }
}

/* ---- cursor coordinate read-out ---- */

.ms-cmd-coords {
    position: absolute;
    bottom: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 5;
    padding: 3px 10px;
    background: var(--ms-panel);
    border: 1px solid var(--ms-panel-border);
    border-radius: 6px;
    color: var(--ms-text);
    font-family: var(--ms-font-mono);
    font-size: 12px;
    letter-spacing: 0.03em;
    white-space: nowrap;
    pointer-events: none;
}
/* Hidden until the pointer is over the map (JS fills/clears the text). */
.ms-cmd-coords:empty { display: none; }
