@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    --ds-bg: #ffffff;
    --ds-surface: #ffffff;
    --ds-surface2: #f4f7fb;
    --ds-border: #d9e2ef;
    --ds-border2: #e6edf6;
    --ds-accent: #1d4ed8;
    --ds-accent2: #2563eb;
    --ds-accent-glow: rgba(37, 99, 235, 0.12);
    --ds-success: #16a34a;
    --ds-error: #dc2626;
    --ds-warning: #d97706;
    --ds-text: #0f172a;
    --ds-text2: #475569;
    --ds-text3: #94a3b8;
    --ds-radius: 10px;
    --ds-radius-lg: 16px;
    --ds-font: 'Inter', sans-serif;
    --ds-mono: 'Inter', sans-serif;
}

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--ds-font);
    background: var(--ds-bg);
    color: var(--ds-text);
}

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

a {
    color: var(--ds-accent);
}

code, pre, kbd, samp {
    font-family: var(--ds-mono);
}

.lm-page-loader {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem 1.5rem;
}

.lm-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.75rem;
    color: var(--ds-text2);
}

.lm-loader__orb {
    position: relative;
    width: 90px;
    height: 90px;
}

.lm-loader__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid transparent;
    animation: lm-spin linear infinite;
}

.lm-loader__ring--1 {
    border-top-color: var(--ds-accent2);
    animation-duration: 1.1s;
}

.lm-loader__ring--2 {
    inset: 12px;
    border-top-color: var(--ds-accent);
    animation-duration: 1.7s;
    animation-direction: reverse;
}

.lm-loader__ring--3 {
    inset: 24px;
    border-top-color: var(--ds-success);
    animation-duration: 2.3s;
}

.lm-loader__core {
    position: absolute;
    inset: 36px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--ds-accent-glow) 0%, transparent 70%);
    animation: lm-pulse 1.6s ease-in-out infinite;
}

.lm-loader__label {
    font-size: 0.95rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ds-text3);
}

@keyframes lm-spin {
    to { transform: rotate(360deg); }
}

@keyframes lm-pulse {
    0%, 100% { opacity: 0.5; transform: scale(0.9); }
    50% { opacity: 1; transform: scale(1); }
}
