:root{ --bg:#faf8f6; --paper:#fff; --ink:#222; --sub:#666; --brand:#ff7892; --brand2:#ffd7e0; --line:#eee }
*{ box-sizing:border-box }
html,body{ height:100%; margin:0 }
body{ background:var(--bg); color:var(--ink); font-family: ui-rounded, "Pretendard", system-ui, -apple-system, Segoe UI, Roboto, Apple SD Gothic Neo, "Apple Color Emoji", Noto Color Emoji, sans-serif }

/* 마스터페이지 헤더 */
.master-header{ position:sticky; top:0; background:linear-gradient(180deg,#fff,rgba(255,255,255,.92)); backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid var(--line); z-index:20 }
.master-wrap{ max-width:980px; margin:0 auto; padding:16px }
.master-brand{ display:flex; gap:10px; align-items:center }
.master-brand b{ font-size:20px }
.master-nav{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px }
.master-tab{ appearance:none; border:1px solid var(--line); background:var(--paper); padding:8px 12px; border-radius:999px; cursor:pointer; text-decoration:none; color:inherit; display:inline-block }
.master-tab[aria-current="page"]{ border-color:var(--brand); box-shadow:0 0 0 2px var(--brand2) }
.master-tab:hover{ background:var(--bg) }

/* 마스터페이지 푸터 */
.master-footer{ padding:20px; color:var(--sub); text-align:center; background:var(--paper); border-top:1px solid var(--line) }

/* 로딩 표시 */
.loading{ text-align:center; padding:40px; color:var(--sub) }
.loading::after{ content:""; display:inline-block; width:20px; height:20px; border:2px solid var(--line); border-top-color:var(--brand); border-radius:50%; animation:spin 1s linear infinite }
@keyframes spin{ to{transform:rotate(360deg)} }

/* 페이지 콘텐츠 영역 */
.page-content{ min-height:calc(100vh - 200px); padding:20px 0 }
