/* 신학부 통합앱(테스트) 공용 스타일 — 휴대폰(미니앱) 우선, PC에선 넓게 */
:root {
  /* 연두 테마(2026-09-28 서무님 요청) — 연두 + 올리브그린 + 청록 포인트 */
  --bg: #f5f9ec; --card: #ffffff; --text: #1f2a14; --muted: #66735a; --line: #e3ebd5;
  --brand: #5d9a0c; --brand-soft: #ecf7d4; --brand-deep: #3f6212; --bar: #8cc63f; --accent: #0d9488;
  --good: #1f9d55; --good-soft: #e3f6ea; --warn: #d97706; --warn-soft: #fdf1dc; --bad: #d63b3b; --bad-soft: #fde7e7;
  --shadow: 0 1px 2px rgba(40,60,10,.05), 0 6px 20px rgba(40,60,10,.07);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #11170b; --card: #1a2311; --text: #eaf2dd; --muted: #a2b08f; --line: #2e3a22;
    --brand: #8cc63f; --brand-soft: #2a3a17; --brand-deep: #c5e88a; --bar: #9bd14a; --accent: #2dd4bf;
    --good: #4cc27d; --good-soft: #17352a; --warn: #f0a93a; --warn-soft: #3a2d15; --bad: #f07070; --bad-soft: #3d1c1f;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 6px 20px rgba(0,0,0,.25);
  }
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; background: var(--bg); color: var(--text); }
body { font-family: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif; font-size: 16px; line-height: 1.45; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 18px 16px 60px; }
.muted { color: var(--muted); }
h1 { font-size: 24px; margin: 0; letter-spacing: -.3px; }
h2 { font-size: 19px; margin: 0 0 12px; letter-spacing: -.2px; }
.card { background: var(--card); border-radius: 18px; box-shadow: var(--shadow); padding: 18px; }
.btn-primary { width: 100%; border: 0; border-radius: 12px; padding: 14px; font-size: 16px; font-weight: 700; background: var(--brand); color: #fff; cursor: pointer; }
.btn-primary:disabled { opacity: .6; }
.btn-ghost { width: 100%; border: 0; background: none; color: var(--muted); padding: 10px; font-size: 14px; cursor: pointer; }
.test-badge { display: inline-block; font-size: 12px; font-weight: 700; color: var(--warn); background: var(--warn-soft); border-radius: 999px; padding: 3px 10px; }
.err { color: var(--bad); font-size: 14px; margin-top: 8px; min-height: 1em; }
.center-msg { text-align: center; padding: 60px 16px; color: var(--muted); font-size: 16px; }

/* 로그인 */
.login { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px; }
.login-card { background: var(--card); border-radius: 22px; box-shadow: var(--shadow); padding: 30px 24px; width: 100%; max-width: 380px; text-align: center; }
.login-logo { font-size: 40px; }
.login-card h1 { margin: 8px 0 6px; }
.login-card input { width: 100%; font-size: 17px; padding: 13px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--bg); color: var(--text); margin: 14px 0 10px; }

/* 상단바 */
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 18px; }
.topbar .who { font-size: 14px; color: var(--muted); }
.topbar .who b { color: var(--text); }
.link-btn { border: 0; background: none; color: var(--brand); font-size: 14px; cursor: pointer; padding: 6px 4px; }
.back-btn { border: 0; background: var(--card); color: var(--text); box-shadow: var(--shadow); border-radius: 12px; padding: 8px 14px; font-size: 15px; font-weight: 600; cursor: pointer; }
.note { background: var(--card); border-radius: 14px; padding: 14px 16px; box-shadow: var(--shadow); }
