/* Approved v2. Self-contained theme tokens prevent auto-generated light CSS from recolouring the logo. */
dialog.anniversary-popup,article.anniversary-popup{--anniv-bg:#202825;--anniv-tx:#f2f4ef;--anniv-muted:#aab7af;--anniv-line:#3c4942;--anniv-highlight:#ddf878;box-sizing:border-box;width:342px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:auto;padding:0;border:1px solid var(--anniv-line);border-radius:24px;background:var(--anniv-bg);color:var(--anniv-tx);box-shadow:0 20px 60px #0003;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;font-family:'Pretendard Variable',-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif;word-break:keep-all;letter-spacing:-.01em}
dialog.anniversary-popup::backdrop{background:#0009;backdrop-filter:blur(3px)}
html[data-theme="light"] dialog.anniversary-popup,html[data-theme="light"] article.anniversary-popup{--anniv-bg:#fff;--anniv-tx:#17221c;--anniv-muted:#57665d;--anniv-line:#dce4dd;--anniv-highlight:#344d1c;color-scheme:light}
html[data-theme="light"] dialog.anniversary-popup::backdrop{background:#18251a66}
dialog.anniversary-popup *,article.anniversary-popup *{box-sizing:border-box}
dialog.anniversary-popup .anniv-content,article.anniversary-popup .anniv-content{position:relative;padding:24px 23px 12px}
dialog.anniversary-popup button,dialog.anniversary-popup summary,article.anniversary-popup button,article.anniversary-popup summary{font:inherit;white-space:nowrap;min-width:44px;min-height:44px;cursor:pointer;box-shadow:none;transform:none}
dialog.anniversary-popup p,article.anniversary-popup p{margin:0;line-height:1.5}
dialog.anniversary-popup .anniv-logo,article.anniversary-popup .anniv-logo{height:31px;display:flex;align-items:center;background:none}
dialog.anniversary-popup .anniv-logo img,article.anniversary-popup .anniv-logo img{display:block;width:90px;height:auto;max-height:27px;object-fit:contain;filter:none}
html[data-theme="light"] dialog.anniversary-popup .anniv-logo img,html[data-theme="light"] article.anniversary-popup .anniv-logo img{filter:brightness(0)}
dialog.anniversary-popup .anniv-close,article.anniversary-popup .anniv-close{position:absolute;right:11px;top:12px;width:44px;height:44px;padding:0;border:0;border-radius:0;background:transparent;color:var(--anniv-muted);font-size:28px;font-weight:300;line-height:1}
dialog.anniversary-popup .anniv-eyebrow,article.anniversary-popup .anniv-eyebrow{font-size:13px;font-weight:600;color:var(--anniv-muted);margin:23px 0 9px;line-height:20px}
dialog.anniversary-popup h2,article.anniversary-popup h2{font:700 28px/1.28 'Pretendard Variable',sans-serif;letter-spacing:-.9px;margin:0;color:var(--anniv-tx);text-wrap:initial}
dialog.anniversary-popup h2 span,article.anniversary-popup h2 span{white-space:nowrap}
dialog.anniversary-popup .anniv-discount,article.anniversary-popup .anniv-discount{display:flex;align-items:baseline;gap:9px;height:110px;color:var(--anniv-highlight);margin:8px 0 0}
dialog.anniversary-popup .anniv-discount strong,article.anniversary-popup .anniv-discount strong{font:700 96px/1 'Barlow Condensed',sans-serif;letter-spacing:-2px;color:inherit}
dialog.anniversary-popup .anniv-discount strong span,article.anniversary-popup .anniv-discount strong span{font-size:63px;letter-spacing:-1px}
dialog.anniversary-popup .anniv-discount b,article.anniversary-popup .anniv-discount b{font-size:22px;color:inherit}
dialog.anniversary-popup .anniv-foundation,article.anniversary-popup .anniv-foundation{font-size:15px;font-weight:600;line-height:23px;margin:-4px 0 19px}
dialog.anniversary-popup .anniv-rule,article.anniversary-popup .anniv-rule{border-top:1px solid var(--anniv-line);padding-top:17px;margin-bottom:17px}
dialog.anniversary-popup .anniv-headline,article.anniversary-popup .anniv-headline{font-weight:600;font-size:15px;margin:0 0 5px;line-height:21px}
dialog.anniversary-popup .anniv-note,article.anniversary-popup .anniv-note{font-size:14px;line-height:21px;color:var(--anniv-muted)}
dialog.anniversary-popup .anniv-deadline,article.anniversary-popup .anniv-deadline{font-size:13px;font-weight:600;margin:0 0 16px;color:var(--anniv-muted)}
dialog.anniversary-popup .anniv-primary,article.anniversary-popup .anniv-primary{display:block;background:#ddf878;color:#17201a;border:0;border-radius:14px;width:100%;height:52px;padding:0 8px;font-size:16px;font-weight:700}
dialog.anniversary-popup .anniv-payment,article.anniversary-popup .anniv-payment{font-size:12px;color:var(--anniv-muted);text-align:center;margin:10px 0 6px;line-height:18px}
dialog.anniversary-popup .anniv-terms,article.anniversary-popup .anniv-terms{font-size:12px;color:var(--anniv-muted);text-align:center;line-height:18px}
dialog.anniversary-popup details.anniv-details,article.anniversary-popup details.anniv-details{margin:0;border:0;padding:0;background:none;border-radius:0}
dialog.anniversary-popup .anniv-details summary,article.anniversary-popup .anniv-details summary{display:flex;align-items:center;justify-content:center;color:var(--anniv-muted);font-size:13px;text-decoration:underline;text-underline-offset:3px;height:44px;width:100%;padding:0;list-style:none}
dialog.anniversary-popup .anniv-details summary::-webkit-details-marker,article.anniversary-popup .anniv-details summary::-webkit-details-marker{display:none}
dialog.anniversary-popup .anniv-details summary::after,article.anniversary-popup .anniv-details summary::after{content:none}
dialog.anniversary-popup .anniv-details>div,article.anniversary-popup .anniv-details>div{font-size:13px;line-height:1.6;color:var(--anniv-muted);padding:0 0 14px}
dialog.anniversary-popup .anniv-details>div p+p,article.anniversary-popup .anniv-details>div p+p{margin-top:8px}
dialog.anniversary-popup .anniv-dismiss,article.anniversary-popup .anniv-dismiss{border-top:1px solid var(--anniv-line);display:flex;align-items:center;justify-content:space-between;padding-top:3px}
dialog.anniversary-popup .anniv-dismiss button,article.anniversary-popup .anniv-dismiss button{height:44px;padding:0 8px;background:transparent;border:0;border-radius:0;color:var(--anniv-muted);font-size:13px}
dialog.anniversary-popup .anniv-dismiss button:last-child,article.anniversary-popup .anniv-dismiss button:last-child{color:var(--anniv-tx)}
dialog.anniversary-popup :is(button,summary):focus-visible,article.anniversary-popup :is(button,summary):focus-visible{outline:2px solid var(--anniv-highlight);outline-offset:2px}
html[lang="en"] dialog.anniversary-popup h2,html[lang="en"] article.anniversary-popup h2{font-size:25px}html[lang="en"] dialog.anniversary-popup .anniv-payment,html[lang="en"] dialog.anniversary-popup .anniv-terms,html[lang="en"] article.anniversary-popup .anniv-payment,html[lang="en"] article.anniversary-popup .anniv-terms{font-size:12px}
@media(max-width:359px){dialog.anniversary-popup .anniv-content,article.anniversary-popup .anniv-content{padding-left:18px;padding-right:18px}dialog.anniversary-popup h2,article.anniversary-popup h2{font-size:26px}dialog.anniversary-popup .anniv-note,article.anniversary-popup .anniv-note{font-size:13px}}

/* Explicit light overrides beat the app-wide generated button skin. */
html[data-theme="light"] body.refined-member dialog.anniversary-popup button,html[data-theme="light"] body.refined-member article.anniversary-popup button{border:0;background:transparent;color:var(--anniv-muted)}
html[data-theme="light"] body.refined-member dialog.anniversary-popup button.anniv-primary,html[data-theme="light"] body.refined-member article.anniversary-popup button.anniv-primary{background:#ddf878;color:#17201a;border:0}
html[data-theme="light"] body.refined-member dialog.anniversary-popup .anniv-dismiss button:last-child,html[data-theme="light"] body.refined-member article.anniversary-popup .anniv-dismiss button:last-child{color:var(--anniv-tx)}

/* Final-day emphasis only. Approved rates, daily frequency and KST expiry stay unchanged. */
dialog.anniversary-popup .anniv-finalday .anniv-date-title,article.anniversary-popup .anniv-finalday .anniv-date-title{display:inline-block;font-size:38px;line-height:1.2;letter-spacing:-1.2px;color:var(--anniv-highlight);margin-top:3px}
dialog.anniversary-popup .anniv-finalday .anniv-deadline,article.anniversary-popup .anniv-finalday .anniv-deadline{color:var(--anniv-tx);font-weight:700}
html[lang="en"] dialog.anniversary-popup .anniv-finalday .anniv-date-title,html[lang="en"] article.anniversary-popup .anniv-finalday .anniv-date-title{font-size:34px;letter-spacing:-.8px}

/* 8주 챌린지 1주차 측정 팝업 (2026-11-01): the anniversary frame with its own date colour and a 4 · 35 · 3 row. */
dialog.challenge-popup .chpop-date,article.challenge-popup .chpop-date{color:var(--anniv-highlight)}
dialog.challenge-popup .chpop-sub,article.challenge-popup .chpop-sub{font-size:15px;font-weight:600;line-height:23px;margin:10px 0 18px;color:var(--anniv-tx);word-break:keep-all}
dialog.challenge-popup .chpop-stats,article.challenge-popup .chpop-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:1px solid var(--anniv-line);padding:18px 0 16px}
dialog.challenge-popup .chpop-stats strong,article.challenge-popup .chpop-stats strong{display:block;font:700 46px/1 'Barlow Condensed',sans-serif;letter-spacing:-1px;color:var(--anniv-highlight)}
dialog.challenge-popup .chpop-stats span,article.challenge-popup .chpop-stats span{display:block;margin-top:8px;font-size:13px;line-height:18px;color:var(--anniv-muted);white-space:nowrap}
dialog.challenge-popup .anniv-rule,article.challenge-popup .anniv-rule{margin-bottom:16px}
dialog.challenge-popup .anniv-note,article.challenge-popup .anniv-note{word-break:keep-all}
html[lang="en"] dialog.challenge-popup .chpop-stats span,html[lang="en"] article.challenge-popup .chpop-stats span{white-space:normal}
@media(max-width:359px){dialog.challenge-popup .chpop-stats strong,article.challenge-popup .chpop-stats strong{font-size:40px}dialog.challenge-popup .chpop-stats span,article.challenge-popup .chpop-stats span{font-size:12px}}

/* 8주 챌린지 1주차 측정 사진 팝업 (2026-11-03): the same frame, one cover photo and one link button. */
dialog.photo-popup .phpop-cover,article.photo-popup .phpop-cover{display:block;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;border-radius:16px;margin:16px 0 0;background:var(--anniv-line)}
dialog.photo-popup .anniv-eyebrow,article.photo-popup .anniv-eyebrow{margin-top:18px}
dialog.photo-popup .phpop-accent,article.photo-popup .phpop-accent{color:var(--anniv-highlight)}
dialog.photo-popup .phpop-sub,article.photo-popup .phpop-sub{font-size:15px;font-weight:600;line-height:23px;margin:10px 0 18px;color:var(--anniv-muted)}
dialog.photo-popup a.anniv-primary,article.photo-popup a.anniv-primary{display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;line-height:1}
dialog.photo-popup .phpop-arrow,article.photo-popup .phpop-arrow{font-weight:600}
dialog.photo-popup a.anniv-primary:focus-visible,article.photo-popup a.anniv-primary:focus-visible{outline:2px solid var(--anniv-highlight);outline-offset:2px}
html[data-theme="light"] body.refined-member dialog.photo-popup a.anniv-primary,html[data-theme="light"] body.refined-member article.photo-popup a.anniv-primary{background:#ddf878;color:#17201a;border:0}
@media(max-height:700px){dialog.photo-popup .phpop-cover,article.photo-popup .phpop-cover{aspect-ratio:16/10}}
@media(max-width:359px){dialog.photo-popup .phpop-cover,article.photo-popup .phpop-cover{aspect-ratio:16/11}}
/* 회원 설문 팝업 (2026-11-03): the photo-popup frame without a cover photo; one lime button opens /survey. */
dialog.survey-popup .anniv-eyebrow,article.survey-popup .anniv-eyebrow{margin-top:22px}
dialog.survey-popup .svpop-accent,article.survey-popup .svpop-accent{color:var(--anniv-highlight)}
dialog.survey-popup .svpop-sub,article.survey-popup .svpop-sub{font-size:15px;font-weight:600;line-height:23px;margin:12px 0 22px;color:var(--anniv-muted)}
dialog.survey-popup a.anniv-primary,article.survey-popup a.anniv-primary{display:flex;align-items:center;justify-content:center;text-decoration:none;line-height:1}
dialog.survey-popup a.anniv-primary:focus-visible,article.survey-popup a.anniv-primary:focus-visible{outline:2px solid var(--anniv-highlight);outline-offset:2px}
html[data-theme="light"] body.refined-member dialog.survey-popup a.anniv-primary,html[data-theme="light"] body.refined-member article.survey-popup a.anniv-primary{background:#ddf878;color:#17201a;border:0}
/* 오늘 탭 회원 설문 카드 (2026-11-03): 혜택 한 줄은 라임 글자, 버튼은 테두리 글자 버튼(라임으로 채운 버튼은 아래 고정 '수업 예약하기' 하나). */
.refined-member .member-main>.home-survey{margin-bottom:24px}
.refined-member .home-survey h2{margin:2px 0 0}
.refined-member .home-survey .hsv-perk{margin:8px 0 2px;font-size:15px;font-weight:700;line-height:22px;color:#ddf878}
.refined-member .home-survey .hsv-meta{margin:0;font-size:13px;line-height:20px;color:#909b95}
.refined-member .home-survey a.hsv-go{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:0 16px;min-height:44px;border:1px solid #485644;border-radius:12px;font-size:14px;text-decoration:none}
html[data-theme="light"] body.refined-member .home-survey .hsv-perk{color:#3f5f12}
html[data-theme="light"] body.refined-member .home-survey .hsv-meta{color:#6a766e}
html[data-theme="light"] body.refined-member .home-survey a.hsv-go{border:1px solid #cfd8c9}
/* 공지사항에 남긴 팝업 (2026-11-03, public/popup-notices.js): 회원이 본 팝업과 같은 카드를 공지 상세 안에 그대로 둔다.
   위 규칙마다 붙은 article.<팝업> 짝이 같은 모양을 주고, 여기서는 창 전용 크기·높이 제한·그림자만 푼다.
   새 팝업 규칙을 더할 때도 dialog.<팝업>과 article.<팝업>을 같이 적는다(tests/popup-notices-20261103.test.mjs). */
article.anniversary-popup.pn-card{width:100%;max-width:420px;max-height:none;margin:0 auto;overflow:visible;box-shadow:none}
article.anniversary-popup.pn-card .anniv-content{padding-bottom:22px}
article.anniversary-popup.pn-card h2{font:700 28px/1.28 'Pretendard Variable',sans-serif;letter-spacing:-.9px;margin:0;color:var(--anniv-tx)}
html[lang="en"] article.anniversary-popup.pn-card h2{font-size:25px}
article.anniversary-popup.pn-card .pn-note{display:flex;align-items:center;justify-content:center;min-height:52px;margin:0;padding:0 12px;border:1px solid var(--anniv-line);border-radius:14px;font-size:15px;font-weight:600;line-height:1.4;color:var(--anniv-muted);text-align:center;word-break:keep-all}
article.anniversary-popup.pn-card .pn-note.pn-done{color:var(--anniv-tx)}
article.anniversary-popup.pn-card .pn-note.pn-done::before{content:"✓";margin-right:8px;color:var(--anniv-highlight);font-weight:700}
/* 새 공지 점: 밝은 바탕에서는 라임 점이 묻혀 진한 라임으로(목록 줄, MY › 공지사항). */
html[data-theme="light"] body.refined-member .notice-row .notice-dot,html[data-theme="light"] body.refined-member .my-sections .notice-dot{background:#8fae13}
/* 닫기는 ×와 '오늘 그만 보기' 하나 (대표 2026-11-03 UX 점검: 같은 일을 하는 닫기 버튼이 셋이었다). 버튼이 하나뿐인 줄은 가로로 넓게,
   글자는 보조색. 사진·8주 챌린지 팝업의 줄은 class="anniv-dismiss" 그대로라 공지 카드(popup-notices.js)는 이 줄을 통째로 뺀다. */
dialog.anniversary-popup .anniv-dismiss button:only-child,article.anniversary-popup .anniv-dismiss button:only-child{flex:1;color:var(--anniv-muted)}
html[data-theme="light"] body.refined-member dialog.anniversary-popup .anniv-dismiss button:only-child,html[data-theme="light"] body.refined-member article.anniversary-popup .anniv-dismiss button:only-child{color:var(--anniv-muted)}
