/* ============================================================
   MiniPizza - Base (reset, tipografia, variáveis, utilitários)
   ============================================================ */

:root {
    --mp-primary: #E4572E;
    --mp-primary-dark: #C7431D;
    --mp-secondary: #292F36;
    --mp-accent: #FFC93C;
    --mp-bg: #FAF7F2;
    --mp-surface: #FFFFFF;
    --mp-text: #23262B;
    --mp-text-muted: #6B7280;
    --mp-border: #E7E2DA;
    --mp-success: #1D9A6C;
    --mp-warning: #D98E04;
    --mp-danger: #D64545;
    --mp-radius: 14px;
    --mp-radius-sm: 8px;
    --mp-shadow: 0 4px 16px rgba(35, 38, 43, 0.08);
    --mp-shadow-lg: 0 12px 32px rgba(35, 38, 43, 0.14);
    --mp-font: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
    font-family: var(--mp-font);
    color: var(--mp-text);
    background: var(--mp-bg);
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

h1, h2, h3, h4 { margin: 0 0 .5em; line-height: 1.2; font-weight: 700; }
p { margin: 0 0 1em; }

.container {
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Botões */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 28px;
    border-radius: var(--mp-radius-sm);
    font-weight: 600;
    font-size: 16px;
    border: 2px solid transparent;
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease;
    min-height: 48px;
}
.btn:active { transform: scale(0.98); }
.btn-primary { background: var(--mp-primary); color: #fff; }
.btn-primary:hover { background: var(--mp-primary-dark); }
.btn-secondary { background: var(--mp-secondary); color: #fff; }
.btn-outline { background: transparent; border-color: var(--mp-secondary); color: var(--mp-secondary); }
.btn-whatsapp { background: #25D366; color: #fff; }
.btn-whatsapp:hover { background: #1EBE5A; }
.btn-block { width: 100%; }
.btn-sm { padding: 8px 16px; font-size: 14px; min-height: 36px; }
.btn-danger { background: var(--mp-danger); color: #fff; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* Formulários */
label { display: block; font-weight: 600; margin-bottom: 6px; font-size: 14px; }
input[type=text], input[type=email], input[type=password], input[type=tel],
input[type=number], input[type=search], input[type=time], input[type=date],
textarea, select {
    width: 100%;
    padding: 12px 14px;
    border: 2px solid var(--mp-border);
    border-radius: var(--mp-radius-sm);
    font-size: 16px;
    font-family: inherit;
    background: #fff;
    color: var(--mp-text);
}
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: var(--mp-primary);
}
.form-group { margin-bottom: 18px; }
.form-help { font-size: 13px; color: var(--mp-text-muted); margin-top: 4px; }
.form-error { font-size: 13px; color: var(--mp-danger); margin-top: 4px; }
.field-invalid { border-color: var(--mp-danger) !important; }

/* Cartões / superfícies */
.card {
    background: var(--mp-surface);
    border-radius: var(--mp-radius);
    box-shadow: var(--mp-shadow);
    padding: 24px;
}

/* Badges de status */
.badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.badge-success { background: #E3F6ED; color: var(--mp-success); }
.badge-warning { background: #FCF1D8; color: var(--mp-warning); }
.badge-danger { background: #FBE7E7; color: var(--mp-danger); }
.badge-neutral { background: #ECEEF1; color: var(--mp-text-muted); }

/* Alertas / flash messages */
.alert { padding: 14px 18px; border-radius: var(--mp-radius-sm); margin-bottom: 16px; font-size: 15px; }
.alert-success { background: #E3F6ED; color: #146C4C; }
.alert-error { background: #FBE7E7; color: #A32E2E; }
.alert-info { background: #E7F1FC; color: #205C97; }

.text-muted { color: var(--mp-text-muted); }
.text-center { text-align: center; }
.mt-0 { margin-top: 0; }
.mb-0 { margin-bottom: 0; }

.visually-hidden {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); white-space: nowrap;
}

@media (max-width: 640px) {
    .container { padding: 0 16px; }
}
