/* 회원·예약 화면(가입·로그인·마이페이지·약관·대관 예약) — 1안 '쪽빛과 단청'(콘솔과 같은 색).
 * 원본 컴파일 CSS 에 없는 스타일이라 여기에 직접 쓴다. allauth 기본 요소(p > label + input)도 함께 다듬는다. */
.acct {
  --a-bg: #f5efe3;        /* 한지 */
  --a-card: #fffdf8;      /* 백한지 */
  --a-soft: #fbf7ef;
  --a-line: #e6dccb;
  --a-input: #d9cdb8;
  --a-text: #2a2724;      /* 먹 */
  --a-muted: #5a5148;
  --a-faint: #6e645a;
  --a-dim: #9a8f80;
  --a-primary: #1f3a5f;   /* 쪽빛 */
  --a-primary-fg: #fffdf8;
  --a-accent: #b5452f;    /* 단청 주홍 */
  --a-accent-soft: #f8e4de;
  --a-ok: #2f6f62;        /* 단청 녹청 */
  --a-ok-soft: #e1efea;
  --a-warn: #8a5a12;      /* 황토 */
  --a-warn-soft: #f7ecd4;
  --a-track: #efe7d8;
  --a-gold: #c89b3c;      /* 금단청 — 장식에만 */
}
.acct { background: var(--a-bg); padding: 56px 16px 96px; color: var(--a-text); font-size: 15px; line-height: 1.65; }
.acct-card { max-width: 480px; margin: 0 auto; padding: 36px 32px; background: var(--a-card); border: 1px solid var(--a-line); border-radius: 16px; border-top: 3px solid var(--a-primary); }
.acct-card-wide { max-width: 760px; }
.acct a { color: var(--a-primary); text-decoration: underline; text-underline-offset: 3px; }
.acct h1, .acct-h1 { margin: 0 0 12px; font-family: Aritaburi, serif; font-size: 28px; font-weight: 400; letter-spacing: -0.01em; }
.acct-h2 { margin: 0; font-size: 17px; font-weight: 700; }
.acct-lead, .acct > .acct-card > p { color: var(--a-muted); }
.acct-hint, .acct-muted { color: var(--a-faint); font-size: 13px; }
.acct-back { display: inline-block; margin-bottom: 8px; font-size: 13px; color: var(--a-faint) !important; text-decoration: none !important; }

/* 폼 — 직접 만든 필드(.acct-field)와 allauth 기본 필드(form p) 둘 다 */
.acct-form, .acct form { display: flex; flex-direction: column; gap: 14px; margin-top: 16px; }
.acct-field, .acct form p { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.acct-label, .acct form p > label { font-size: 14px; font-weight: 600; }
.acct input[type="email"], .acct input[type="password"], .acct input[type="text"], .acct input[type="tel"] {
  min-height: 48px; padding: 10px 14px; border: 1px solid var(--a-input); border-radius: 10px; background: var(--a-card);
  color: var(--a-text); font: inherit; font-size: 16px;
}
.acct input:focus-visible, .acct button:focus-visible, .acct a:focus-visible, .acct select:focus-visible, .acct textarea:focus-visible { outline: 2px solid var(--a-primary); outline-offset: 2px; }
.acct input[aria-invalid="true"] { border-color: var(--a-accent); }
.acct input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--a-primary); flex-shrink: 0; }
.acct form p:has(input[type="checkbox"]) { flex-direction: row; align-items: center; gap: 8px; }
.acct form p > span { font-size: 13px; color: var(--a-faint); }
.acct .errorlist, .acct-error { margin: 0; padding: 0; list-style: none; color: var(--a-accent); font-size: 13px; font-weight: 600; }

.acct-agree { margin: 6px 0 0; padding: 16px; border: 1px solid var(--a-line); border-radius: 12px; display: flex; flex-direction: column; gap: 10px; }
.acct-agree legend { padding: 0 6px; font-size: 14px; font-weight: 700; }
.acct-check { display: flex; align-items: flex-start; gap: 10px; min-height: 28px; font-size: 14px; }
.acct-details { font-size: 13px; color: var(--a-muted); }
.acct-details summary { cursor: pointer; }
.acct-details p { margin: 6px 0 0; }

/* 버튼 — allauth 기본 button 도 같은 모양 */
.acct button, .acct-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px;
  border: 1px solid var(--a-input); border-radius: 10px; background: var(--a-card); color: var(--a-text);
  font: inherit; font-weight: 700; cursor: pointer; text-decoration: none;
}
.acct button[type="submit"], .acct-btn-primary { background: var(--a-primary); border-color: var(--a-primary); color: var(--a-primary-fg); }
.acct-btn-danger, .acct button.acct-btn-danger { background: var(--a-accent); border-color: var(--a-accent); color: #fff; }
.acct-footer-actions button[type="submit"], .acct-footer-actions .acct-btn { background: var(--a-card); color: var(--a-text); border-color: var(--a-input); }

.acct-messages { list-style: none; margin: 0 0 16px; padding: 0; }
.acct-msg { padding: 12px 14px; border-radius: 10px; background: var(--a-ok-soft); color: var(--a-ok); font-weight: 600; font-size: 14px; }
.acct-msg.is-error { background: var(--a-accent-soft); color: var(--a-accent); }

/* 마이페이지 */
.acct-section { padding: 20px 0; border-top: 1px solid var(--a-line); }
.acct-section:first-of-type { border-top: 0; }
.acct-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.acct-link { font-size: 14px; }
.acct-dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 20px; margin: 8px 0; }
.acct-dl dt { color: var(--a-faint); font-size: 14px; }
.acct-dl dd { margin: 0; overflow-wrap: anywhere; }
.acct-links { margin: 8px 0 0; font-size: 14px; }
.acct-list { list-style: none; margin: 0; padding: 0; }
.acct-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--a-track); }
.acct-list li a { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 48px; justify-content: center; padding: 10px 0; text-decoration: none; }
.acct-list-main { font-weight: 700; }
.acct-list-sub { font-size: 13px; color: var(--a-faint); }
.acct-chip { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; background: var(--a-accent-soft); color: var(--a-accent); font-size: 12px; font-weight: 700; white-space: nowrap; }
.acct-chip.is-done { background: var(--a-track); color: var(--a-muted); }
.acct-empty { color: var(--a-faint); font-size: 14px; }
.acct-content { margin: 16px 0; padding: 16px; background: var(--a-soft); border-radius: 10px; overflow-wrap: anywhere; }
.acct-bullets { padding-left: 20px; color: var(--a-muted); }
.acct-footer-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 20px; border-top: 1px solid var(--a-line); }
.acct-footer-actions form { margin: 0; }

/* 약관 문서 */
.acct-doc h2 { margin: 28px 0 8px; font-size: 16px; font-weight: 700; color: var(--a-primary); }
.acct-doc ol { padding-left: 22px; }
.acct-doc li { margin-bottom: 4px; }

@media (max-width: 640px) {
  .acct { padding: 24px 12px 64px; }
  .acct-card { padding: 24px 18px; border-radius: 14px; }
  .acct-h1 { font-size: 24px; }
}

/* 대관 예약 — 달력·신청 */
.acct-select, .acct-textarea {
  min-height: 48px; padding: 10px 14px; border: 1px solid var(--a-input); border-radius: 10px; background: var(--a-card);
  color: var(--a-text); font: inherit; font-size: 16px;
}
.acct input[type="date"], .acct input[type="number"] {
  min-height: 48px; padding: 10px 14px; border: 1px solid var(--a-input); border-radius: 10px; background: var(--a-card);
  color: var(--a-text); font: inherit; font-size: 16px;
}
.acct-error-box { padding: 12px 14px; border-radius: 10px; background: var(--a-accent-soft); }
.rsv-rules { margin: 12px 0 20px; padding: 14px 16px 14px 32px; background: var(--a-soft); border-left: 0; border-radius: 12px; font-size: 14px; color: var(--a-muted); }
.rsv-facilities { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.rsv-fac { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--a-input); border-radius: 999px; background: var(--a-card); font-size: 14px; color: var(--a-text) !important; text-decoration: none !important; }
.rsv-fac.is-active { background: var(--a-primary); border-color: var(--a-primary); color: var(--a-primary-fg) !important; font-weight: 700; }
.rsv-month { display: flex; align-items: center; justify-content: space-between; margin: 20px 0 10px; }
.rsv-nav { width: 48px; min-height: 44px; padding: 0 !important; font-size: 22px; }
.rsv-cal { width: 100%; border-collapse: collapse; table-layout: fixed; }
.rsv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.rsv-cal th { padding: 6px 0; font-size: 13px; font-weight: 600; color: var(--a-muted); }
.rsv-cal th.is-sun { color: var(--a-accent); }
.rsv-cal th.is-sat { color: var(--a-primary); }
.rsv-cal td { height: 96px; padding: 6px; border: 1px solid var(--a-track); vertical-align: top; background: var(--a-soft); }
.rsv-cal td.is-open { background: var(--a-card); }
.rsv-cal td.is-other { background: transparent; border-color: transparent; }
.rsv-day { display: block; font-size: 13px; font-weight: 700; color: var(--a-muted); margin-bottom: 4px; }
.rsv-cal td:not(.is-open) .rsv-day { color: var(--a-dim); }
.rsv-slots { display: flex; flex-direction: column; gap: 3px; }
.rsv-slot { display: block; padding: 3px 4px; border-radius: 6px; font-size: 12px; line-height: 1.3; text-align: center; text-decoration: none !important; }
.rsv-slot.is-open { background: var(--a-primary); color: var(--a-primary-fg) !important; font-weight: 600; }
.rsv-slot.is-open.is-full { background: var(--a-card); color: var(--a-primary) !important; border: 1px solid var(--a-primary); }
.rsv-slot.is-taken { background: var(--a-track); color: var(--a-faint); }
.rsv-closed { display: block; font-size: 12px; color: var(--a-accent); }
.rsv-closed small { display: block; color: var(--a-faint); }

.acct-chip.rsv-pending { background: var(--a-warn-soft); color: var(--a-warn); }
.acct-chip.rsv-approved { background: var(--a-ok-soft); color: var(--a-ok); }
.acct-chip.rsv-rejected, .acct-chip.rsv-cancelled { background: var(--a-track); color: var(--a-muted); }
.acct-chip.rsv-completed { background: var(--a-line); color: var(--a-muted); }

@media (max-width: 640px) {
  .rsv-cal td { height: 84px; padding: 3px; }
  .rsv-slot { font-size: 11px; padding: 3px 1px; letter-spacing: -0.03em; }
  .rsv-day { font-size: 12px; }
}
