:root {
    --bs-primary: #1e40af;
    --bs-primary-rgb: 30, 64, 175;
    --hi-body-bg: #f8fafc;
    --hi-font-sans: "Fira Sans", system-ui, -apple-system, sans-serif;
    --hi-font-display: "Comfortaa", "Fira Sans", system-ui, sans-serif;
}

body {
    background-color: var(--hi-body-bg);
    font-family: var(--hi-font-sans);
}

a { color: inherit; text-decoration: none; }

.logo { font-weight: 700; font-size: 1.25rem; color: #1e40af; }

.landing-header { background: #fff; border-bottom: 1px solid #e2e8f0; padding: 1rem 0; }
.landing-header .container { display: flex; justify-content: space-between; align-items: center; }
.hero { padding: 4rem 0 3rem; }
.hero h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); max-width: 18ch; }
.lead { font-size: 1.1rem; color: #475569; max-width: 60ch; }
.hero-actions { margin-top: 1.5rem; }
.benefits { padding: 2rem 0 4rem; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.feature-card { background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; padding: 1.25rem; }
.landing-footer { border-top: 1px solid #e2e8f0; padding: 1.5rem 0; color: #64748b; }

.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.auth-card { width: min(420px, 100%); background: #fff; border: 1px solid #e2e8f0; border-radius: .75rem; padding: 2rem; box-shadow: 0 10px 30px rgba(15, 23, 42, .08); }
.auth-card h1 { margin: 0 0 .25rem; }
.subtitle { color: #64748b; margin-top: 0; }
.form-message { margin-top: .75rem; font-size: .9rem; }
.form-message.error { color: #b91c1c; }
.form-message.success { color: #15803d; }
.hint { font-size: .8rem; color: #64748b; margin-top: 1rem; }
.unavailable { min-height: 60vh; display: grid; place-items: center; text-align: center; }

.hi-modal-header h3,
.hi-modal-header .modal-title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
}

.hi-form .form-label {
    font-weight: 500;
}

/* Fira Sans — utilitários de peso (Google Fonts) */
.fira-sans-thin { font-family: "Fira Sans", sans-serif; font-weight: 100; font-style: normal; }
.fira-sans-extralight { font-family: "Fira Sans", sans-serif; font-weight: 200; font-style: normal; }
.fira-sans-light { font-family: "Fira Sans", sans-serif; font-weight: 300; font-style: normal; }
.fira-sans-regular { font-family: "Fira Sans", sans-serif; font-weight: 400; font-style: normal; }
.fira-sans-medium { font-family: "Fira Sans", sans-serif; font-weight: 500; font-style: normal; }
.fira-sans-semibold { font-family: "Fira Sans", sans-serif; font-weight: 600; font-style: normal; }
.fira-sans-bold { font-family: "Fira Sans", sans-serif; font-weight: 700; font-style: normal; }
.fira-sans-extrabold { font-family: "Fira Sans", sans-serif; font-weight: 800; font-style: normal; }
.fira-sans-black { font-family: "Fira Sans", sans-serif; font-weight: 900; font-style: normal; }
.fira-sans-thin-italic { font-family: "Fira Sans", sans-serif; font-weight: 100; font-style: italic; }
.fira-sans-extralight-italic { font-family: "Fira Sans", sans-serif; font-weight: 200; font-style: italic; }
.fira-sans-light-italic { font-family: "Fira Sans", sans-serif; font-weight: 300; font-style: italic; }
.fira-sans-regular-italic { font-family: "Fira Sans", sans-serif; font-weight: 400; font-style: italic; }
.fira-sans-medium-italic { font-family: "Fira Sans", sans-serif; font-weight: 500; font-style: italic; }
.fira-sans-semibold-italic { font-family: "Fira Sans", sans-serif; font-weight: 600; font-style: italic; }
.fira-sans-bold-italic { font-family: "Fira Sans", sans-serif; font-weight: 700; font-style: italic; }
.fira-sans-extrabold-italic { font-family: "Fira Sans", sans-serif; font-weight: 800; font-style: italic; }
.fira-sans-black-italic { font-family: "Fira Sans", sans-serif; font-weight: 900; font-style: italic; }

.comfortaa { font-family: "Comfortaa", "Fira Sans", system-ui, sans-serif; }
