/* ========================================================================
   BidMaster Base — Resets, element defaults, typography
   ======================================================================== */
/* v8: Google Fonts loaded via <link> in base.html for faster rendering */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; overflow: hidden; }

body {
    font-family: var(--font-sans);
    font-size: var(--text-base);
    color: var(--text-primary);
    background:
        radial-gradient(ellipse 1000px 600px at 10% 0%, rgba(14, 165, 233, 0.06), transparent 60%),
        radial-gradient(ellipse 800px 500px at 90% 10%, rgba(15, 118, 110, 0.06), transparent 60%),
        var(--bg-secondary);
    line-height: var(--leading-normal);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.auth-shell {
    overflow: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: var(--space-6);
}

a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: var(--radius-sm); }

img, svg { display: block; max-width: 100%; }

button { font: inherit; cursor: pointer; }
button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: var(--radius-sm); }

input, select, textarea { font: inherit; }

/* ── Typography ── */
h1 { font-size: var(--text-2xl); font-weight: var(--weight-extrabold); letter-spacing: -0.02em; line-height: var(--leading-tight); }
h2 { font-size: var(--text-xl); font-weight: var(--weight-bold); letter-spacing: -0.01em; line-height: var(--leading-tight); }
h3 { font-size: var(--text-lg); font-weight: var(--weight-semibold); line-height: var(--leading-tight); }
h4 { font-size: var(--text-md); font-weight: var(--weight-semibold); line-height: var(--leading-tight); }

/* ── Scrollbar ── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: var(--radius-full); }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* ── Selection ── */
::selection { background: var(--brand-soft); color: var(--text-primary); }

/* ── Focus utilities ── */
.focus-ring:focus-visible { box-shadow: var(--focus-ring); outline: none; }

/* ── Animations ── */
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes rowHighlight { 0% { background: rgba(34,197,94,0.2); } 100% { background: transparent; } }
