:root {
    --brand: #d8431b;
    --brand-dark: #b53413;
    --ink: #1c1c21;
    --bs-primary: var(--brand);
    --bs-primary-rgb: 216, 67, 27;
    --bs-link-color: var(--brand);
    --bs-link-hover-color: var(--brand-dark);
}

body { background: #f4f5f7; color: #212529; }

.btn-primary {
    --bs-btn-bg: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-bg: var(--brand-dark);
    --bs-btn-hover-border-color: var(--brand-dark);
    --bs-btn-active-bg: var(--brand-dark);
    --bs-btn-active-border-color: var(--brand-dark);
    --bs-btn-disabled-bg: var(--brand);
    --bs-btn-disabled-border-color: var(--brand);
}
.btn-outline-primary {
    --bs-btn-color: var(--brand);
    --bs-btn-border-color: var(--brand);
    --bs-btn-hover-bg: var(--brand);
    --bs-btn-hover-border-color: var(--brand);
    --bs-btn-active-bg: var(--brand-dark);
    --bs-btn-active-border-color: var(--brand-dark);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 .2rem rgba(216, 67, 27, .2);
}
.form-check-input:checked { background-color: var(--brand); border-color: var(--brand); }
.page-link { color: var(--brand); }
.page-item.active .page-link { background: var(--brand); border-color: var(--brand); }
.bg-primary { background-color: var(--brand) !important; }
.text-bg-primary { background-color: var(--brand) !important; }

/* Public site */
.site-header { background: var(--ink); border-bottom: 4px solid var(--brand); }
.site-header img { height: 58px; width: auto; }
.site-footer { background: var(--ink); color: #c9c9d0; font-size: .875rem; }
.site-footer a { color: #fff; text-decoration: none; }

.form-card { border: 0; border-radius: .75rem; box-shadow: 0 4px 24px rgba(0, 0, 0, .07); }
.section-title {
    display: flex; align-items: center; gap: .6rem;
    font-size: 1.05rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: var(--brand); border-bottom: 2px solid #f0d6cd; padding-bottom: .5rem; margin-bottom: 1.25rem;
}
.section-title .num {
    background: var(--brand); color: #fff; width: 1.9rem; height: 1.9rem; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center; font-size: .9rem;
}
.form-label { font-weight: 600; font-size: .9rem; }
.req::after { content: " *"; color: #dc3545; }
.edu-block { background: #fafafb; border: 1px solid #ececf0; border-radius: .5rem; padding: 1rem 1rem .25rem; margin-bottom: 1rem; }
.edu-block h6 { font-weight: 700; margin-bottom: .75rem; }

/* Admin */
.admin-nav { background: var(--ink); border-bottom: 3px solid var(--brand); }
.admin-nav img { height: 40px; }
.admin-nav .nav-link { color: #c9c9d0; }
.admin-nav .nav-link.active, .admin-nav .nav-link:hover { color: #fff; }
.stat-card { border: 0; border-left: 4px solid var(--brand); box-shadow: 0 2px 12px rgba(0,0,0,.05); }
.stat-card .num { font-size: 2rem; font-weight: 700; line-height: 1; }
.detail-table th { width: 38%; color: #555; font-weight: 600; background: #fafafb; }
.table > :not(caption) > * > * { vertical-align: middle; }
.login-wrap { min-height: 100vh; display: flex; align-items: center; background: var(--ink); }

/* Print */
.print-sheet { background: #fff; max-width: 820px; margin: 1.5rem auto; padding: 2rem 2.5rem; border: 1px solid #ddd; }
.print-head { border-bottom: 3px solid var(--brand); padding-bottom: .75rem; margin-bottom: 1rem; }
.print-head .logo-bg { background: var(--ink); display: inline-block; padding: .4rem .8rem; border-radius: .3rem; }
.print-head img { height: 52px; }
.print-sheet h2 { font-size: 1.1rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin: 1.1rem 0 .5rem; }
.print-sheet table { width: 100%; border-collapse: collapse; }
.print-sheet th, .print-sheet td { border: 1px solid #999; padding: .35rem .6rem; font-size: .92rem; text-align: left; vertical-align: top; }
.print-sheet th { width: 34%; background: #f3f3f3; }
.sign-row { display: flex; justify-content: space-between; margin-top: 2.5rem; font-size: .92rem; }
@media print {
    body { background: #fff; }
    .no-print { display: none !important; }
    .print-sheet { border: 0; margin: 0; padding: 0; max-width: none; }
    .print-head .logo-bg, .print-sheet th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
