/* MiniGolfScores design tokens — single source of truth.
   Loaded BEFORE MudBlazor.min.css in App.razor. Values mirrored in Theme/AppThemes.cs.
   Light theme overrides applied via [data-theme="light"] on <html>. */

:root,
:root[data-theme="dark"] {
    /* Color · surfaces */
    --mg-bg:           #0B1A28;
    --mg-surface:      #102434;
    --mg-surface-2:    #1A2D40;
    --mg-surface-alt:  #222222;
    --mg-border:       rgba(255, 255, 255, 0.06);

    /* Color · text */
    --mg-text:         #FFFFFF;
    --mg-text-muted:   #A5A5A5;

    /* Color · accent */
    --mg-accent:       #5DD10E;
    --mg-accent-hover: #6EE320;
    --mg-accent-text:  #5DD10E;
    --mg-accent-soft:  rgba(93, 209, 14, 0.14);

    /* Color · semantic */
    --mg-success:      #5DD10E;
    --mg-warning:      #F5A524;
    --mg-error:        #EF5350;
    --mg-info:         #42A5F5;

    /* Shadow */
    --mg-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.18);
    --mg-shadow-md: 0 4px 14px rgba(0, 0, 0, 0.25);
    --mg-shadow-lg: 0 8px 22px rgba(0, 0, 0, 0.35);
}

:root[data-theme="light"] {
    --mg-bg:           #F4F7FA;
    --mg-surface:      #FFFFFF;
    --mg-surface-2:    #F0F4F8;
    --mg-surface-alt:  #FAFBFC;
    --mg-border:       rgba(16, 36, 52, 0.08);

    --mg-text:         #102434;
    --mg-text-muted:   #5C6B7A;

    --mg-accent:       #5DD10E;
    --mg-accent-hover: #4ABA0A;
    --mg-accent-text:  #2E8B0A;
    --mg-accent-soft:  rgba(93, 209, 14, 0.14);

    --mg-success:      #2E8B0A;
    --mg-warning:      #B86E00;
    --mg-error:        #C62828;
    --mg-info:         #1976D2;

    --mg-shadow-sm: 0 1px 2px rgba(16, 36, 52, 0.06);
    --mg-shadow-md: 0 4px 12px rgba(16, 36, 52, 0.08);
    --mg-shadow-lg: 0 12px 28px rgba(16, 36, 52, 0.12);
}

:root {
    /* Type */
    --mg-font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --mg-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
    --mg-text-12: 0.75rem;
    --mg-text-14: 0.875rem;
    --mg-text-16: 1rem;
    --mg-text-20: 1.25rem;
    --mg-text-24: 1.5rem;
    --mg-text-32: 2rem;
    --mg-text-48: 3rem;

    /* Radius */
    --mg-radius-1:    4px;
    --mg-radius-2:    8px;
    --mg-radius-3:    12px;
    --mg-radius-4:    16px;
    --mg-radius-pill: 999px;

    /* Space */
    --mg-space-1: 4px;
    --mg-space-2: 8px;
    --mg-space-3: 12px;
    --mg-space-4: 16px;
    --mg-space-5: 24px;
    --mg-space-6: 32px;
    --mg-space-7: 48px;

    /* Motion */
    --mg-motion-fast: 120ms ease;
    --mg-motion-base: 180ms ease;
    --mg-motion-slow: 240ms cubic-bezier(0.2, 0.8, 0.2, 1);

    /* Breakpoints (informational — match MudBlazor's xs/sm/md/lg) */
    --mg-bp-sm: 480px;
    --mg-bp-md: 768px;
    --mg-bp-lg: 1024px;
}

/* Base resets and body styling. */
html, body {
    background: var(--mg-bg);
    color: var(--mg-text);
    font-family: var(--mg-font-sans);
    margin: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    transition: background var(--mg-motion-base), color var(--mg-motion-base);
}

/* Mono numeral helper. */
.mg-num {
    font-family: var(--mg-font-mono);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

/* Live pulse animation reused across primitives. */
@keyframes mg-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(93, 209, 14, 0.5); }
    50%      { box-shadow: 0 0 0 4px rgba(93, 209, 14, 0); }
}

/* Responsive visibility helpers. */
.mg-hidden-below-sm { display: none !important; }
.mg-hidden-below-md { display: none !important; }
.mg-hidden-below-lg { display: none !important; }
.mg-hidden-above-sm { display: initial !important; }
.mg-hidden-above-md { display: initial !important; }

@media (min-width: 480px) {
    .mg-hidden-below-sm { display: initial !important; }
    .mg-hidden-above-sm { display: none !important; }
}
@media (min-width: 768px) {
    .mg-hidden-below-md { display: initial !important; }
    .mg-hidden-above-md { display: none !important; }
}
@media (min-width: 1024px) {
    .mg-hidden-below-lg { display: initial !important; }
}

/* MudBlazor mounts MudPopover with .mud-popover-open (opacity:1) ~2 ms before
   JS applies its inline left/top — the popover briefly paints at the provider's
   origin (top-left of viewport). Keep it invisible until positioning lands. */
.mud-popover.mud-popover-open:not([style*="left:"]) {
    opacity: 0;
}

/* Page-level container used by page roots. */
.mg-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: var(--mg-space-5) var(--mg-space-4) var(--mg-space-6);
}

@media (max-width: 600px) {
    .mg-page {
        padding: var(--mg-space-4) var(--mg-space-3) var(--mg-space-5);
    }
}
