:root {
    --verde: #1f6f43;
    --verde-escuro: #14502f;
    --cinza-bg: #f4f5f7;
    --borda: #d7dbe0;
    --texto: #24292e;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    background: var(--cinza-bg);
    color: var(--texto);
}

a { color: var(--verde); text-decoration: none; }
a:hover { text-decoration: underline; }

.topbar {
    background: var(--verde-escuro);
    color: #fff;
}
.topbar-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 12px 20px;
}
.topbar .brand { color: #fff; font-weight: 700; font-size: 1.1rem; }
.topbar nav { display: flex; gap: 16px; flex: 1; }
.topbar nav a { color: #e7f3ec; }
.user-box { color: #e7f3ec; font-size: 0.9rem; }

.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 24px 20px 60px;
}

h1 { font-size: 1.5rem; margin: 0 0 18px; }
h2 { font-size: 1.15rem; margin: 24px 0 12px; }

.card {
    background: #fff;
    border: 1px solid var(--borda);
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
}

table.grid {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}
table.grid th, table.grid td {
    border: 1px solid var(--borda);
    padding: 8px 10px;
    text-align: left;
    vertical-align: top;
    font-size: 0.92rem;
}
table.grid th { background: #eef2ef; font-weight: 600; }
table.grid tr.feriado td { background: #fff8dc; }

.actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }

.btn {
    display: inline-block;
    background: var(--verde);
    color: #fff;
    border: none;
    padding: 8px 16px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.92rem;
}
.btn:hover { background: var(--verde-escuro); text-decoration: none; }
.btn.secondary { background: #6c757d; }
.btn.secondary:hover { background: #545b62; }
.btn.danger { background: #b02a37; }
.btn.danger:hover { background: #8a2029; }
.btn.small { padding: 4px 10px; font-size: 0.82rem; }

form.inline { display: inline; }

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.form-grid .full { grid-column: 1 / -1; }
label { display: block; font-weight: 600; margin-bottom: 4px; font-size: 0.88rem; }
input[type=text], input[type=date], input[type=password], input[type=number],
input[type=file], select, textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--borda);
    border-radius: 6px;
    font-size: 0.92rem;
    font-family: inherit;
}
textarea { min-height: 70px; resize: vertical; }

.checklist {
    border: 1px solid var(--borda);
    border-radius: 6px;
    padding: 10px 14px;
    max-height: 240px;
    overflow-y: auto;
    background: #fff;
    columns: 2;
    column-gap: 20px;
}
.checklist-item {
    display: block;
    font-weight: 400;
    margin-bottom: 8px;
    font-size: 0.92rem;
    break-inside: avoid;
}
.checklist-item input {
    width: auto;
    display: inline-block;
    margin-right: 6px;
    vertical-align: middle;
}
.hint { color: #6c757d; font-size: 0.8rem; margin-top: 3px; }

.add-item-row { display: flex; gap: 8px; margin-bottom: 6px; }
.add-item-row select { flex: 1; }
.add-item-row button { flex-shrink: 0; }

.alert { padding: 10px 14px; border-radius: 6px; margin-bottom: 16px; font-size: 0.92rem; }
.alert-sucesso { background: #e6f4ea; color: #1e5631; border: 1px solid #b7ddc4; }
.alert-erro { background: #fdecea; color: #7f1d1d; border: 1px solid #f3b4b4; }

.login-box {
    max-width: 380px;
    margin: 80px auto;
}
.login-box .card { }
.login-title { text-align: center; margin-bottom: 20px; }

.site-footer {
    text-align: center;
    color: #8a8f98;
    font-size: 0.8rem;
    padding: 20px;
}

.badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 0.75rem; background: #eef2ef; }
.badge.rural { background: #fff3cd; color: #664d03; }
.badge.urbana { background: #cfe2ff; color: #084298; }
.badge.lanche { background: #e2d9f3; color: #4b2e83; }

.tag-feriado { color: #b8860b; font-weight: 600; }
