﻿/* =========================
   RESET / NORMALIZE ||||  What this file does
    This is:

    -structure
    -consistency
    -helpers

    This is NOT:

    -page-specific styling
    -component styling
    - “random fix for one button on Tuesday”
       ========================= */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html, body {
    margin: 0;
    padding: 0;
}

body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}


/* =========================
   TYPOGRAPHY
   ========================= */
h1, h2, h3, h4, h5, h6 {
    margin: 0 0 0.5rem 0;
    font-weight: 600;
    color: var(--text-primary);
}

/* =========================
   INPUT PLACEHOLDER FIX
   ========================= */
.form-control::placeholder {
    color: #e2e8f0; /* light */
    opacity: 1; /* important for Firefox */
}

p {
    margin: 0 0 0.75rem 0;
    color: var(--text-secondary);
}

small {
    color: var(--text-muted);
}

a {
    color: var(--accent);
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }


/* =========================
   LISTS
   ========================= */
ul, ol {
    margin: 0;
    padding-left: 1.25rem;
}

li {
    margin-bottom: 0.25rem;
}


/* =========================
   IMAGES / MEDIA
   ========================= */
img {
    max-width: 100%;
    display: block;
}


/* =========================
   FORM BASICS
   ========================= */
label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 0.25rem;
    display: block;
}

input,
textarea,
select,
button {
    font: inherit;
}

textarea {
    resize: vertical;
}


/* =========================
   BUTTON RESET (BASE ONLY)
   ========================= */
button {
    cursor: pointer;
    border: none;
    background: none;
}


/* =========================
   TABLE BASE
   ========================= */
table {
    width: 100%;
    border-collapse: collapse;
}


/* =========================
   SPACING HELPERS
   ========================= */
.mt-1 {
    margin-top: 0.25rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-3 {
    margin-top: 1rem;
}

.mb-1 {
    margin-bottom: 0.25rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-3 {
    margin-bottom: 1rem;
}

.p-1 {
    padding: 0.25rem;
}

.p-2 {
    padding: 0.5rem;
}

.p-3 {
    padding: 1rem;
}


/* =========================
   FLEX HELPERS
   ========================= */
.flex {
    display: flex;
}

.flex-column {
    flex-direction: column;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.gap-1 {
    gap: 0.25rem;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-3 {
    gap: 1rem;
}


/* =========================
   WIDTH HELPERS
   ========================= */
.w-100 {
    width: 100%;
}

.max-w-600 {
    max-width: 600px;
}

.max-w-900 {
    max-width: 900px;
}


/* =========================
   TEXT HELPERS
   ========================= */
.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-muted {
    color: var(--text-muted);
}


/* =========================
   BORDER HELPERS
   ========================= */
.border {
    border: 1px solid var(--border);
}

.rounded {
    border-radius: 6px;
}

.rounded-lg {
    border-radius: 10px;
}


/* =========================
   SHADOW HELPERS
   ========================= */
.shadow-sm {
    box-shadow: var(--shadow-sm);
}

.shadow-md {
    box-shadow: var(--shadow-md);
}


/* =========================
   TRANSITIONS
   ========================= */
.transition {
    transition: all 0.2s ease;
}
