/* Lapisan tipografi bersama untuk landing, formulir, dan dashboard. */
body { font-size: 16px; line-height: 1.55; }

.account-link { display: inline-flex; align-items: center; gap: 9px; max-width: 220px; padding: 5px 9px 5px 5px; border-radius: 999px; background: #edf2ef; color: var(--forest) !important; }
.account-avatar { width: 32px; height: 32px; display: grid; place-items: center; flex: none; overflow: hidden; border-radius: 50%; background: var(--forest); color: #fff; font-size: 12px; font-weight: 700; }
.account-avatar img { width: 100%; height: 100%; object-fit: cover; }
.account-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.main-nav > a.account-link::after { display: none; }

.sidebar nav a, .sidebar-bottom a { font-size: 14px; }
.topbar h1 { font-size: 34px; }
.top-eyebrow, .panel-head span, .form-title > span, .admin-hero span { font-size: 11px; }
.user-chip strong { font-size: 14px; }
.user-chip small { font-size: 12px; }
.welcome-card p { font-size: 15px; }
.light-btn, .mini-btn { font-size: 13px; }
.stat-grid small { font-size: 13px; }
.stat-grid p { font-size: 12px; }
.panel-head h2 { font-size: 27px; }
.panel-head > a { font-size: 13px; }
.payment-list b, .payment-list > article > strong { font-size: 14px; }
.payment-list small { font-size: 12px; }
.badge { padding: 6px 10px; font-size: 11px; }
.news-type { font-size: 10px; }
.news-list h3, .news-manage h3 { font-size: 20px; }
.news-list p, .news-manage p { font-size: 14px; }
.news-list small, .news-manage small { font-size: 11px; }
.history-row { font-size: 14px; }
.history-head { font-size: 11px; }
.history-row small, .history-row em, .history-row > strong { font-size: 12px; }
.upload-action summary, .table-link { font-size: 13px; }
.alert { font-size: 14px; }
.payment-main h3, .payment-main > strong { font-size: 14px; }
.payment-main p, .review-row, .review-row input, .review-row select { font-size: 12px; }
.review-row button, .news-manage button { font-size: 12px; }
.app-footer { font-size: 11px; }

.auth-visual > div > p, .donate-intro > span, .auth-heading > span { font-size: 11px; }
.back-link { font-size: 13px; }
.auth-heading p { font-size: 15px; line-height: 1.6; }
.google-btn { padding: 14px 17px; font-size: 14px; }
.oauth-notes { gap: 8px; padding: 16px; font-size: 12px; }
.form-stack label, .form-grid label, .choice-group legend { font-size: 14px; }
.form-stack label > input, .form-stack label > select, .form-stack label > textarea, .form-grid label > input, .form-grid label > select { padding: 13px; font-size: 15px; }
.primary-btn { font-size: 14px; }
.auth-switch { font-size: 13px; }

.donate-header > a:last-child { font-size: 14px; }
.donate-wrap { width: min(1180px, calc(100% - 48px)); grid-template-columns: minmax(0, 1fr) 520px; gap: 72px; }
.donate-intro > p { max-width: 560px; font-size: 17px; line-height: 1.65; }
.bank-card small { font-size: 11px; }
.bank-card b { font-size: 29px; }
.bank-card span { font-size: 14px; }
.donate-form-card { padding: 38px; }
.form-title h2 { font-size: 33px; }
.choice-group b { font-size: 14px; }
.choice-group small { font-size: 11px; }
.quick-amounts button { padding: 9px; font-size: 12px; }
.upload-box span, .privacy-note { font-size: 11px; }
.money-input input { font-size: 18px; }

@media (min-width: 901px) {
    .brand strong { font-size: 15px; }
    .brand small { font-size: 10px; }
    .main-nav { gap: 28px; font-size: 15px; }
    .button { font-size: 14px; }
    .eyebrow, .section-kicker { font-size: 12px; }
    .hero-content > p { max-width: 660px; font-size: 20px; }
    .text-link { font-size: 14px; }
    .verse-card blockquote { font-size: 21px; }
    .intro-grid p { font-size: 17px; }
    .intro-grid .lead-copy { font-size: 25px; }
    .value-grid p { font-size: 15px; }
    .how-copy > p, .steps p { font-size: 16px; }
    .footer-links a { font-size: 14px; }
    .footer-brand strong { font-size: 14px; }
    .footer-brand small, .footer-bottom { font-size: 11px; }
}

@media (max-width: 1000px) {
    .donate-wrap { width: min(760px, calc(100% - 40px)); grid-template-columns: 1fr; }
    .donate-intro > p { max-width: 620px; }
}

@media (max-width: 900px) {
    .main-nav { font-size: 16px; }
    .account-link { max-width: none; justify-content: flex-start; }
    .account-avatar { width: 36px; height: 36px; }
    .account-name { white-space: normal; }
    .main-nav .button { width: 100%; }
}

@media (max-width: 700px) {
    .topbar h1 { font-size: 28px; }
    .panel-head h2 { font-size: 24px; }
    .sidebar nav a, .sidebar-bottom a { font-size: 15px; }
    .welcome-card p { font-size: 14px; }
    .donate-header { height: 72px; padding: 0 16px; }
    .donate-header .app-brand { padding: 0; }
    .donate-wrap { width: calc(100% - 28px); margin: 28px auto; }
    .donate-intro h1 { font-size: clamp(38px, 12vw, 48px); }
    .donate-intro > p { font-size: 16px; }
    .bank-card { margin-top: 30px; padding: 22px; }
    .bank-card b { font-size: 24px; }
    .donate-form-card { padding: 22px; }
    .form-title h2 { font-size: 29px; }
    .choice-group label > span { padding: 11px; }
    .privacy-note { font-size: 10px; }
}

@media (max-width: 560px) {
    .brand strong { font-size: 13px; }
    .brand small { font-size: 8px; }
    .hero h1 { font-size: clamp(42px, 13vw, 52px); }
    .hero-content > p { font-size: 17px; }
    .button, .text-link { font-size: 14px; }
    .intro-grid p, .how-copy > p, .steps p, .value-grid p { font-size: 15px; }
    .section-kicker, .eyebrow { font-size: 10px; }
    .footer-links a { font-size: 14px; }
}
