:root {
    --bg: #f4efe6;
    --panel: #fffaf2;
    --ink: #1a1e17;
    --muted: #5c6253;
    --accent: #0d6b5f;
    --accent-strong: #09473f;
    --warn: #9f4d14;
    --error: #9b1c1c;
    --border: #d7d0c4;
    --shadow: 0 18px 48px rgba(42, 48, 33, 0.14);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: "Segoe UI", "Helvetica Neue", sans-serif;
    color: var(--ink);
    background:
        radial-gradient(circle at top left, rgba(13,107,95,0.18), transparent 32%),
        linear-gradient(180deg, #f8f2e8 0%, #efe5d6 100%);
}
a { color: var(--accent-strong); }
.portal-body, .admin-body { min-height: 100vh; }
.portal-shell, .admin-shell, .admin-login-shell {
    width: min(1100px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 2rem 0 4rem;
}
.card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 24px;
    padding: 1.5rem;
    box-shadow: var(--shadow);
}
.brand-card { max-width: 720px; margin: 3rem auto; }
.brand-logo { max-width: 180px; max-height: 90px; margin-bottom: 1rem; }
.eyebrow { margin: 0 0 0.5rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); font-size: 0.82rem; }
h1, h2 { margin-top: 0; font-family: Georgia, "Times New Roman", serif; }
.lead, .terms-copy { color: var(--muted); line-height: 1.6; }
.portal-form { display: grid; gap: 1rem; }
label span { display: block; margin-bottom: 0.35rem; font-weight: 600; }
input[type="text"], input[type="email"], input[type="password"], select, textarea, input[type="file"] {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 0.85rem 0.95rem;
    background: #fff;
    font: inherit;
}
textarea { resize: vertical; }
button, .secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    border: 0;
    border-radius: 999px;
    padding: 0.9rem 1.2rem;
    background: var(--accent);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    cursor: pointer;
}
.secondary-button { background: #e2ddd2; color: var(--ink); }
.checkbox-row { display: flex; gap: 0.75rem; align-items: flex-start; }
.checkbox-row input { width: auto; margin-top: 0.2rem; }
.notice { border-radius: 16px; padding: 0.8rem 1rem; margin-bottom: 1rem; }
.notice-success { background: #daf0e3; color: #14532d; }
.notice-warning { background: #fff0d9; color: var(--warn); }
.notice-error { background: #fde4e4; color: var(--error); }
.meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-top: 1rem; }
.meta dt { color: var(--muted); font-size: 0.85rem; }
.meta dd { margin: 0.25rem 0 0; font-weight: 600; }
.admin-header, .admin-nav, .filter-row, .admin-grid { display: flex; gap: 1rem; }
.admin-header, .filter-row { align-items: end; justify-content: space-between; }
.admin-nav { align-items: center; flex-wrap: wrap; }
.admin-grid { align-items: start; }
.admin-grid > * { flex: 1; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 0.85rem 0.65rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.admin-logo-preview { max-width: 180px; max-height: 90px; border: 1px solid var(--border); border-radius: 12px; padding: 0.35rem; }

@media (max-width: 768px) {
    .admin-header, .filter-row, .admin-grid { flex-direction: column; align-items: stretch; }
    .brand-card { margin-top: 1rem; }
}
