:root{
  /* ── 밝은 다마고치 테마(20260825 홈시안 v2 기반) ── */
  --bg:#f3f0fb; --card:#ffffff; --ink:#4a3d68; --sub:#8a78a8;
  --line:#efe6f7; --accent:#8a5ab8; --accent2:#9b7ebd; --err:#c0392b;
  --soft:#f7f3fd;   /* 내부 서브카드 쿨 라벤더 톤 */
  --radius:18px; --shadow:0 6px 14px rgba(195,165,215,.18);
  /* 앱 전체 배경(민트→핑크→라벤더) */
  --app-grad:linear-gradient(160deg,#eafcf1,#fdeef8 48%,#efeaff);
}
*{box-sizing:border-box}
body{margin:0;font-family:"NeoDunggeunmo Pro","Pretendard","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  background:var(--app-grad);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
/* 폼 요소(button/input/select/textarea)는 font-family를 상속 안 함 → 앱 폰트 강제 상속 */
button,input,select,textarea{font-family:inherit}
/* 모바일식: 좁은 모바일 컬럼 앱(데스크톱에선 가운데 정렬) — 밝은 그라데이션+반짝이 점 */
.app{max-width:440px;margin:0 auto;min-height:100vh;position:relative;overflow-x:hidden;
  background:
    radial-gradient(circle at 14% 15%,rgba(255,255,255,.7) 0 2px,transparent 3px),
    radial-gradient(circle at 84% 24%,rgba(255,255,255,.6) 0 2px,transparent 3px),
    radial-gradient(circle at 68% 7%,rgba(255,255,255,.5) 0 1px,transparent 2px),
    var(--app-grad);
  box-shadow:0 0 40px rgba(180,150,210,.18)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 6px;background:transparent;position:relative;z-index:50}
.brand{font-weight:800;font-size:21px;color:var(--accent);text-decoration:none;letter-spacing:-1px}
.topright{display:flex;align-items:center;gap:10px;font-size:13px}
.t-email{color:var(--sub);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topright a{color:var(--accent);text-decoration:none;font-weight:800}
.t-login{background:#fff;border:2px solid #e6d6f5;padding:6px 16px;border-radius:999px}
.tag{font-size:12px;color:var(--sub);background:#f0ede7;padding:3px 10px;border-radius:999px}
/* 모바일식 모바일 세로형 + 하단탭 여백 */
.wrap{max-width:440px;margin:0 auto;padding:6px 9px 90px}

/* ── 하단 탭바(밝은 테마: 반투명 흰 유리) ── */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;
  background:rgba(255,255,255,.86);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-top:2px solid var(--line);max-width:440px;margin:0 auto;
  box-shadow:0 -3px 14px rgba(180,150,210,.14)}
.tabbar a{flex:1;text-align:center;padding:9px 0 8px;font-size:11px;color:var(--sub);
  text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:700}
/* 가운데(무료운세) 제외 4개는 살짝 아래로 — 올라온 가운데 버튼 라벨과 세로정렬 맞춤 */
.tabbar a:not(.center){padding-top:18px}
.tabbar a span{font-size:20px;line-height:1}
.tabbar a.on{color:var(--accent);font-weight:800}
/* 중앙 무료운세 탭 강조(무료운세 버튼) */
.tabbar a.center{position:relative}
.tabbar a.center span{width:52px;height:52px;margin-top:-22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:26px;overflow:hidden;
  background:linear-gradient(135deg,#f7a8d8,#9b7ebd);color:#fff;
  box-shadow:0 4px 12px rgba(155,126,189,.4)}
/* 작은 알 캐릭터 주기적 움직임(홈 무대처럼) — 대부분 정지, 주기 끝에 살짝 꿈틀 */
@keyframes eggIdle{
  0%,66%,100%{transform:translateY(0) rotate(0)}
  74%{transform:translateY(-2px) rotate(-8deg)}
  83%{transform:translateY(-1px) rotate(8deg)}
  92%{transform:translateY(0) rotate(-3deg)}
}
.tabbar a.center span img{width:34px;height:34px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;display:block;
  transform-origin:50% 85%;animation:eggIdle 4s ease-in-out infinite}

/* ── 홈: 메뉴 리스트(모바일식 행) ── */
.rep-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;
  background:#faf6ff;border:1px solid #e7ddf5;border-radius:12px;padding:12px 15px;
  text-decoration:none;color:var(--ink);font-size:14px;margin-bottom:16px}
.rep-chip b{font-weight:500;color:var(--sub);font-size:12px}
.rc-change{color:var(--accent);font-weight:700;font-size:13px;white-space:nowrap}
.empty-chip{background:var(--soft);border-style:dashed;color:var(--sub)}
.menu-list{display:flex;flex-direction:column;gap:10px}
.menu-row{display:flex;align-items:center;gap:14px;text-align:left;width:100%;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;
  cursor:pointer;box-shadow:var(--shadow);transition:transform .08s,border-color .08s}
.menu-row:hover{transform:translateY(-1px);border-color:var(--accent2)}
.mr-icon{font-size:28px;flex-shrink:0}
.mr-body{flex:1;display:flex;flex-direction:column;gap:3px}
.mr-name{font-size:16px;font-weight:800;letter-spacing:-.3px}
.mr-desc{font-size:12px;color:var(--sub);line-height:1.4}
.mr-price{font-size:12px;font-weight:700;color:var(--accent2);background:#f3eefc;
  padding:4px 10px;border-radius:999px;flex-shrink:0}
.mr-price.free{color:#2f9e6f;background:#e7f6ee}

/* 결과 화면 대표프로필 바(모바일식) */
.prof-bar{display:flex;justify-content:space-between;align-items:center;
  font-size:13px;color:var(--sub);margin-bottom:10px}
.prof-bar a{color:var(--accent);font-weight:700;text-decoration:none}

/* ── 홈: 2×2 상품 카드 그리드(밝은 다마고치 테마) ── */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.pcard{display:flex;flex-direction:column;text-align:left;padding:0;overflow:hidden;
  background:#fff;border:2px solid var(--line);border-radius:20px;cursor:pointer;
  text-decoration:none;color:var(--ink);
  box-shadow:0 6px 14px rgba(195,165,215,.18);transition:transform .08s,box-shadow .12s}
.pcard:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(180,140,210,.24)}
.pcard:active{transform:translateY(2px)}
.pcard-img{position:relative;width:100%;height:134px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff}
.pcard-emoji{font-size:42px;line-height:1;height:46px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}
.pcard-title{font-size:19px;font-weight:800;letter-spacing:-.5px;text-shadow:0 1px 4px rgba(0,0,0,.18)}
.pcard.pc-daily  .pcard-img{background:linear-gradient(135deg,#a9c7ff,#c9b3f0)}
.pcard.pc-saju   .pcard-img{background:linear-gradient(135deg,#c4a3f5,#9b7ebd)}
.pcard.pc-daeun  .pcard-img{background:linear-gradient(135deg,#6fc8e6,#4a90c0)}
.pcard.pc-yearly .pcard-img{background:linear-gradient(135deg,#dbb4f0,#f0a8d0)}
.pcard.pc-name   .pcard-img{background:linear-gradient(135deg,#8fd3c4,#5bb0a0)}
.pcard.pc-region .pcard-img{background:linear-gradient(135deg,#f4a259,#e07a5f)}
.pcard-body{padding:13px 15px 15px;display:flex;flex-direction:column;gap:11px}
.pcard-desc{font-size:12px;color:var(--sub);line-height:1.5;min-height:34px}
.pcard-foot{display:flex;justify-content:space-between;align-items:center}
.pcard-price{font-size:11px;font-weight:800;color:#9b7ebd;background:#f3eefc;padding:3px 9px;border-radius:999px}
.pcard-price.free{color:#2f9e6f;background:#e7f6ee}
.pcard-go{font-size:11px;color:#a86ee0;font-weight:800}

/* ── 홈: 다마고치 펫 무대(알/캐릭터 + 말풍선) ── */
.stage{text-align:center;padding:6px 20px 6px;position:relative;margin-bottom:16px}
/* 반짝이 십자 */
.plus{position:absolute;width:13px;height:13px;pointer-events:none;animation:tw 1.8s ease-in-out infinite;z-index:1}
.plus::before,.plus::after{content:"";position:absolute;background:currentColor;border-radius:1px;box-shadow:0 0 6px currentColor}
.plus::before{left:4.5px;top:0;width:4px;height:13px}
.plus::after{top:4.5px;left:0;height:4px;width:13px}
@keyframes tw{0%,100%{transform:scale(.7);opacity:.5}50%{transform:scale(1.1);opacity:1}}
.q1{top:12px;left:46px;color:#7fd8f2}.q2{top:30px;right:44px;color:#ff8fc8;animation-delay:.3s}
.q3{top:118px;left:24px;color:#b6e07a;animation-delay:.6s}.q4{top:100px;right:22px;color:#b98cf0;animation-delay:.9s}
.q5{top:66px;right:74px;color:#ffd45e;animation-delay:1.2s}.q6{top:76px;left:72px;color:#ff8fc8;animation-delay:.5s}
.egg-outer{display:inline-block;cursor:pointer;animation:floaty 2.8s ease-in-out infinite, sway 5s ease-in-out infinite;
  filter:drop-shadow(0 10px 12px rgba(190,130,200,.3))}
.egg-img{width:150px;height:auto;display:block;image-rendering:pixelated;image-rendering:crisp-edges;transform-origin:50% 90%}
.egg-img.pop{animation:squish .5s ease-out}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes sway{0%,72%,100%{transform:rotate(0)}80%{transform:rotate(-4deg)}88%{transform:rotate(4deg)}94%{transform:rotate(-2deg)}}
@keyframes squish{0%{transform:scale(1,1)}28%{transform:scale(1.16,.84)}52%{transform:scale(.9,1.12)}74%{transform:scale(1.05,.96)}100%{transform:scale(1,1)}}
.bubble{display:flex;align-items:center;justify-content:center;text-align:center;
  width:fit-content;max-width:330px;min-height:62px;background:#fff;border:2px solid #f2d3e9;border-radius:16px;
  padding:9px 18px;font-size:13px;font-weight:700;color:#9a5aaa;line-height:1.5;
  box-shadow:0 4px 10px rgba(210,160,215,.22);margin:12px auto 0;position:relative}
.bubble::after{content:"";position:absolute;left:50%;margin-left:-7px;top:-8px;border:7px solid transparent;border-bottom-color:#fff}
.bubble.show{animation:popb .4s ease-out}
@keyframes popb{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.03)}100%{opacity:1;transform:scale(1)}}

/* ── 프로필 선택(pick) ── */
.pick-list{display:flex;flex-direction:column;gap:10px}
.pick-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 16px;
  box-shadow:var(--shadow);transition:transform .08s,border-color .08s}
.pick-row:hover{transform:translateY(-1px);border-color:var(--accent2)}
.pk-body{flex:1;display:flex;flex-direction:column;gap:3px}
.pk-name{font-size:16px;font-weight:800}
.pk-name b{font-size:12px;color:var(--sub);font-weight:500;margin-left:4px}
.pk-birth{font-size:13px;color:var(--sub)}
.pk-go{font-size:20px;color:var(--accent2);font-weight:700}
.back-link{display:block;text-align:center;margin-top:16px;font-size:13px;color:var(--sub);text-decoration:none}
.pick-row{text-decoration:none;color:var(--ink)}
.pk-av{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--accent2);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}

/* ── 인물별 기록(record) ── */
.rec-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.rec-name{font-size:17px;font-weight:800}
.rec-sub{font-size:12.5px;color:var(--sub);margin-top:2px}
.rec-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.rec-item{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);
  background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.rec-item:hover{border-color:var(--accent2)}
.ri-ic{font-size:20px}.ri-body{flex:1;display:flex;flex-direction:column;gap:2px}
.ri-title{font-size:14px;font-weight:700;line-height:1.4}
.ri-date{font-size:11.5px;color:var(--sub)}

/* ── 고민 입력(ask) ── */
.ask-head{font-size:18px;font-weight:800;text-align:center;color:#7a5aa8;background:linear-gradient(135deg,#efe6fb,#e3d5f6);
  border-radius:12px;padding:16px;margin-bottom:14px}
.ask-who{font-size:14px;font-weight:700;border-left:3px solid var(--accent2);padding-left:10px;margin:0 0 12px}
.ask-tip{font-size:12.5px;color:#7a6a95;background:var(--soft);border-radius:10px;padding:12px 14px;margin-bottom:16px;line-height:1.5}
.opt{font-size:12px;color:var(--sub);font-weight:400}
.fld textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;font-size:14px;font-family:inherit;resize:vertical;line-height:1.55}
.fld textarea:focus{outline:none;border-color:var(--accent2)}
.skip-link{display:block;width:100%;text-align:center;margin-top:10px;padding:10px;
  background:none;border:none;color:var(--sub);font-size:13px;cursor:pointer;text-decoration:underline}

/* ── 무료운세 진입(fortune) ── */
.ftn-banner{text-align:center;font-size:14px;font-weight:700;color:#7a5cc0;
  background:linear-gradient(135deg,#f3eefc,#fbe9f5);border-radius:12px;padding:16px;margin-bottom:14px}
.chip-wrap{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.qchip{display:inline-flex;align-items:center;font-size:13.5px;padding:9px 14px;border-radius:999px;
  border:1px solid var(--line);background:#fff;cursor:pointer;transition:.08s}
.qchip input{display:none}
.qchip:has(input:checked){background:#f3eefc;border-color:var(--accent2);color:var(--accent);font-weight:700}
.qchip-lg{display:flex;width:100%;box-sizing:border-box;padding:13px 16px;font-size:14px}
.battery-list{display:flex;flex-direction:column;gap:8px;margin:6px 0}
.ftn-title{text-align:center;font-size:16px;font-weight:800;margin:8px 0 18px}
.q-block{margin-bottom:22px}
.q-h{font-size:15px;font-weight:800;line-height:1.5}
.q-once{font-size:12px;color:var(--accent);margin:4px 0 8px}
.q-saved{margin-left:6px;font-size:11px;font-weight:700;color:#2f9e6f;background:#e7f6ee;padding:2px 8px;border-radius:999px}

/* ── 수다방(다마고치 채팅, 모바일식) ── */
.chat-card{display:flex;flex-direction:column;padding:0;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:10px;padding:7px 14px 9px;border-bottom:1px solid var(--line)}
.ch-back{font-size:24px;color:var(--sub);text-decoration:none;line-height:1;padding:0 2px}
.ch-kebab{font-size:20px;color:var(--sub)}
.chat-ava{width:40px;height:40px;border-radius:50%;background:#f3edfb;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;overflow:hidden}
.chat-ava img{width:80%;height:80%;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;display:block;
  transform-origin:50% 85%;animation:eggIdle 4.6s ease-in-out infinite}
.chat-head-txt{flex:1;display:flex;flex-direction:column;line-height:1.3}
.chat-head-txt b{font-size:16px;color:var(--ink)}
.chat-head-txt span{font-size:11px;color:var(--sub)}
.chat-badges{display:flex;flex-wrap:wrap;gap:6px;padding:9px 12px;border-bottom:1px solid var(--line)}
.cb{font-size:11px;font-weight:700;color:var(--sub);background:#f3eefc;border-radius:999px;padding:4px 10px}
.cb b{color:var(--accent)}
.cb.free{color:#c0397b;background:#fdeaf3}
.cb.churu{color:#c98a00;background:#fff3d6}
.cb.moi{color:#9a6a3a;background:#f5ece0}
.chat-mock{margin:9px 12px 0;padding:8px 12px;background:#fff7e6;border:1px solid #ffe0a3;border-radius:10px;font-size:11px;color:#a76a00;text-align:center}
.chat-log{display:flex;flex-direction:column;gap:9px;padding:14px 12px;height:50vh;min-height:300px;min-width:0;overflow-y:auto;overflow-x:hidden}
.c-date{align-self:center;font-size:11px;color:var(--sub);background:#f1eef6;border-radius:999px;padding:3px 12px;margin:2px 0}
.c-row{display:flex;align-items:flex-end;gap:7px;max-width:100%}
.c-row.me{justify-content:flex-end;flex-direction:column;align-items:flex-end}
.c-row.dama{flex-direction:row;align-items:flex-start}
.c-ava{width:30px;height:30px;border-radius:50%;background:#f3edfb;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;margin-top:2px;overflow:hidden}
.c-ava img{width:82%;height:82%;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;display:block}
.c-bubble{max-width:80%;padding:10px 13px;border-radius:16px;font-size:13.5px;line-height:1.55;word-break:break-word;white-space:pre-wrap}
.c-row.dama .c-bubble{background:#f1f0f4;color:var(--ink);border-top-left-radius:5px}
.c-row.me .c-bubble{background:linear-gradient(135deg,#f79ac6,#e46ba8);color:#fff;border-top-right-radius:5px}
.c-meta{display:flex;align-items:center;gap:6px;font-size:10.5px;color:#b3aec0;margin:3px 4px 0}
.c-row.dama .c-meta{margin-left:37px}
.c-meta button{background:none;border:0;cursor:pointer;font-size:12px;padding:0;color:#c3bdd0}
.c-typing{display:flex;gap:4px;align-items:center;background:#f1f0f4;padding:12px 14px;border-radius:16px}
.c-typing span{width:6px;height:6px;border-radius:50%;background:#c3b8d8;animation:cblink 1s infinite}
.c-typing span:nth-child(2){animation-delay:.2s}
.c-typing span:nth-child(3){animation-delay:.4s}
@keyframes cblink{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.c-sticker{font-size:52px;line-height:1}
.c-sticker img{width:56px;height:56px;object-fit:contain;image-rendering:pixelated;image-rendering:crisp-edges;display:block}
/* 월운 메모 카드 */
.c-memo{max-width:84%;background:#fdf6d8;border:1px solid #f0e4a8;border-radius:14px;padding:12px 13px}
.memo-title{font-size:13px;font-weight:800;color:#8a6d00;margin-bottom:8px}
.memo-tbl{width:100%;border-collapse:collapse}
.memo-tbl td{padding:4px 2px;font-size:12.5px;vertical-align:middle}
.memo-tbl .mm{color:var(--sub);width:42px}
.memo-tbl .mg{font-weight:800;color:var(--ink)}
.memo-tbl .mg em{font-style:normal;font-weight:600;color:var(--sub);font-size:11px}
.memo-tbl .ms{text-align:right;white-space:nowrap}
.memo-tbl .ss{display:inline-block;font-size:10.5px;font-weight:700;color:#b06a2c;background:#fbe7cf;border-radius:6px;padding:2px 6px;margin-left:3px}
.memo-foot{margin-top:8px;font-size:11.5px;color:#9a7d2a;border-top:1px dashed #e6d68a;padding-top:7px}
/* 상품 추천 카드 */
.c-product{max-width:84%;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 3px 8px rgba(180,150,210,.12)}
.cp-head{display:flex;align-items:center;gap:9px}
.cp-ico{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#f4a259,#e07a5f);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cp-txt{flex:1;line-height:1.3}
.cp-txt b{display:block;font-size:14px;color:var(--ink)}
.cp-txt span{font-size:11px;color:var(--accent);font-weight:700}
.cp-go{font-size:12px;color:var(--sub);text-decoration:none;white-space:nowrap}
.cp-reason{margin-top:9px;background:#fdf6d8;border-radius:9px;padding:9px 11px;font-size:12px;color:var(--ink);line-height:1.5}
.cp-reason b{color:#8a6d00;font-size:11.5px}
/* 예측 질문(가로 스크롤) */
.chip-row{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;min-width:0;overscroll-behavior-x:contain;padding:10px 12px;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch}
.chip-row::-webkit-scrollbar{height:0}
/* 예측 질문 칩: 가변폭(내용에 맞게, max-width로 좁혀 화살표 포함 2줄 유도) + 오른쪽 여백. 폭은 균일할 필요 없음. */
.pq-chip{flex:0 0 auto;max-width:165px;box-sizing:border-box;font-family:inherit;font-size:12.5px;line-height:1.45;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:9px 14px 9px 12px;cursor:pointer;text-align:left;
  white-space:normal;overflow-wrap:break-word;word-break:keep-all;min-height:calc(1.45em * 2 + 18px)}
.pq-chip:active{transform:translateY(1px)}
.pq-up{color:var(--accent);font-weight:800}
/* 나 + 궁금한 사람 */
.who-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 12px 8px}
.who-me{font-size:12px;font-weight:700;color:var(--ink);background:#f1eef6;border-radius:999px;padding:5px 11px}
.who-chip{font-size:12px;font-weight:700;color:var(--accent);background:#f3eefc;border-radius:999px;padding:5px 11px;margin-left:4px}
.who-add{font-family:inherit;font-size:12px;color:var(--accent);font-weight:700;background:none;border:0;cursor:pointer;margin-left:auto}
/* 입력바 */
.chat-input{display:flex;align-items:center;gap:7px;padding:10px 12px;border-top:1px solid var(--line)}
.ci-plus{width:36px;height:36px;flex-shrink:0;font-size:20px;color:#fff;background:linear-gradient(135deg,#f79ac6,#c9a3f0);border:0;border-radius:50%;cursor:pointer}
.chat-input input{flex:1;min-width:0;font-family:inherit;font-size:14px;padding:11px 14px;border:1.5px solid var(--line);border-radius:999px;outline:none}
.chat-input input:focus{border-color:var(--accent2)}
.ci-mic{background:none;border:0;font-size:18px;cursor:pointer}
.ci-send{width:38px;height:38px;flex-shrink:0;font-size:16px;color:#fff;background:var(--accent);border:0;border-radius:50%;cursor:pointer}
/* 궁금한 사람 모달 */
.people-card{text-align:center}
.pm-ico{font-size:26px;color:var(--accent)}
.pm-title{font-size:18px;font-weight:800;margin:6px 0 4px}
.pm-sub{font-size:12.5px;color:var(--sub);margin-bottom:10px}
.pm-count{display:inline-block;font-size:12px;font-weight:700;color:#c0397b;background:#fdeaf3;border-radius:999px;padding:4px 12px;margin-bottom:10px}
.pm-slots{display:flex;gap:7px;margin-bottom:12px}
.pm-slot{flex:1;font-size:11.5px;color:var(--sub);border:1.5px dashed var(--line);border-radius:12px;padding:12px 4px}
.pm-slot.on{color:var(--accent);border-style:solid;border-color:var(--accent2);background:#f8f4ff;font-weight:700}
.pm-list{text-align:left;max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.pm-item{display:flex;align-items:center;justify-content:space-between;border:1.5px solid var(--line);border-radius:14px;padding:13px 15px;cursor:pointer}
.pm-item.on{border-color:var(--accent);background:#f8f4ff}
.pm-info b{font-size:15px}
.pm-info span{font-size:12px;color:var(--sub);margin-left:5px}
.pm-info em{display:block;font-style:normal;font-size:12px;color:var(--sub);margin-top:2px}
.pm-radio{width:20px;height:20px;border:2px solid var(--line);border-radius:50%;flex-shrink:0}
.pm-item.on .pm-radio{border-color:var(--accent);background:var(--accent) content-box;padding:3px}
.pm-new{display:block;text-align:center;color:var(--accent);font-weight:700;font-size:14px;text-decoration:none;border:1.5px solid var(--line);border-radius:14px;padding:14px}
.pm-btns{display:flex;gap:9px;margin-top:14px}
.pm-close,.pm-done{flex:1;font-family:inherit;font-size:15px;font-weight:800;border-radius:12px;padding:14px;cursor:pointer;border:0}
.pm-close{background:#fff;border:1.5px solid var(--line);color:var(--ink)}
.pm-done{background:var(--accent);color:#fff}
/* 직접입력 textarea + 글자수 카운터(모바일식) */
.q-custom-wrap{position:relative;margin-top:10px}
.q-custom-wrap.hidden{display:none}
.q-custom{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;
  padding:13px 14px 28px;font-size:14px;line-height:1.5;resize:none;min-height:92px;display:block}
.q-custom:focus{outline:none;border-color:var(--accent2)}
.q-count{position:absolute;right:13px;bottom:10px;font-size:11.5px;color:#b3ada3;pointer-events:none}
/* 결과 상단 사전입력 요약 */
.pre-summary{display:flex;flex-direction:column;gap:2px;background:#faf9f5;border:1px solid var(--line);
  border-radius:12px;padding:12px 14px;margin:10px 0 4px}
.pre-row{display:flex;gap:8px;font-size:13px;align-items:baseline}
.pre-k{color:var(--sub);min-width:52px;font-weight:700}
.pre-v{color:var(--ink)}

/* ── 보관함 상품칩·정렬·접기·공유 ── */
.chip-row{display:flex;align-items:center;gap:8px;margin:14px 0 6px}
.chip-scroll{flex:1;min-width:0;display:flex;gap:4px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.chip-scroll::-webkit-scrollbar{display:none}
.fchip{flex-shrink:0;white-space:nowrap;font-size:11px;padding:5px 8px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--sub);text-decoration:none}
.fchip.on{background:var(--accent2);border-color:var(--accent2);color:#fff;font-weight:700}
.fsort{flex-shrink:0;font-size:11px;color:var(--accent);text-decoration:none;font-weight:600;white-space:nowrap;margin-left:3px}
/* ── 현재 상황 칩(대운·연도별) ── */
.state-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}
.state-chip{font-size:12.5px;color:var(--sub);background:#f4f1ec;border:1px solid var(--line);
  border-radius:999px;padding:7px 13px}
.state-chip b{color:var(--ink);font-weight:700;margin-left:3px}

/* ── 유료 장문 해설(대운·연도별): 훅 미리보기 + 챕터 ── */
.hook-box{background:linear-gradient(135deg,#eef4ff,#f6eefc);border:1px solid #e4ebfa;
  border-radius:14px;padding:18px 16px;margin:14px 0}
.hook-title{font-size:19px;font-weight:800;color:#5a4bd6;line-height:1.4;text-align:center;margin-bottom:12px}
.hook-intro{font-size:14px;line-height:1.75;color:#4a4a55;margin:0 0 8px}
.chap{border:1px solid var(--line);border-radius:12px;padding:4px 14px 12px;margin-bottom:10px;background:#fff}
.chap-h{list-style:none;cursor:pointer;padding:10px 0 2px}
.chap-h::-webkit-details-marker{display:none}
.chap-t{font-size:15.5px;font-weight:800}
.chap-sub{font-size:14px;font-weight:700;color:var(--accent);margin:2px 0 10px}
.chap .prose{font-size:14px;line-height:1.75;margin:0 0 10px}
.arch-sec{margin-top:6px}
.arch-sec summary{list-style:none;cursor:pointer}
.arch-sec summary::-webkit-details-marker{display:none}
.ai-share{background:none;border:none;font-size:16px;cursor:pointer;padding:6px}

/* ── 대표 프로필 헤더 ── */
.rep-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.rep-badge{font-size:11px;font-weight:700;color:#c98a00;background:#fff4d6;padding:2px 8px;border-radius:999px;margin-right:6px}
.rep-name{font-size:20px;font-weight:800}
.rep-birth{font-size:13px;color:var(--sub);margin-top:4px}
.rep-change{font-size:13px;color:var(--accent);text-decoration:none;font-weight:600;
  border:1px solid var(--line);padding:6px 12px;border-radius:999px;white-space:nowrap}

/* ── 보관함 ── */
.tip-box{background:#fff9ec;border:1px solid #f0e2bf;border-radius:10px;padding:11px 14px;
  font-size:13px;color:#7a6a3a;margin-bottom:16px}
.tip-box a{color:var(--accent);font-weight:700}
.pc-actions{display:flex;align-items:stretch}
.pc-actions form{display:flex}
.pc-rep{border:none;background:none;color:#d8b24a;font-size:15px;padding:0 10px;cursor:pointer}
.pc-rep:hover{color:#c98a00}
.profile-card.is-rep{border-color:#f0d98a;background:#fffdf6}
.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:24px 16px}
h1{font-size:26px;margin:0 0 6px;letter-spacing:-.6px}
h2{font-size:16px;margin:28px 0 12px;letter-spacing:-.3px}
.sub{color:var(--sub);margin:0 0 20px}
.hint{color:var(--sub);font-weight:400;font-size:12px}
.note{color:var(--sub);font-size:12px;margin:8px 0 0}
.error{background:#fdecea;color:var(--err);padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:14px}
.foot{text-align:center;color:var(--sub);padding:24px}

/* ── 모바일식 새 사주 추가 폼 ── */
.add-head{background:linear-gradient(135deg,#c4a3f5,#9b7ebd);color:#fff;font-weight:800;font-size:17px;
  margin:-24px -16px 20px;padding:15px 20px;border-radius:16px 16px 0 0}
.step:not(.hidden){animation:qslide .28s ease}
#grpLeap:not(.hidden),#grpExact:not(.hidden),#grpSiji:not(.hidden),#saveBtn:not(.hidden){animation:qslide .28s ease}
@keyframes qslide{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.qlabel{font-size:14px;font-weight:800;margin:6px 0 8px;display:block}
.seg2{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.seg2 .chip{flex:1;justify-content:center;min-width:120px}
.fld{margin-bottom:6px}
.fld-top{display:flex;justify-content:space-between;align-items:center;margin:6px 0 8px}
.fld-top .qlabel{margin:0}
.req{color:var(--err);font-size:12px;font-weight:700}
.ok{color:#2f9e6f;font-size:15px;font-weight:800}
.fdiv{border:none;border-top:1px solid var(--line);margin:18px 0}
.err-msg{color:var(--err);font-size:12px;margin-top:6px}
.know-no{background:#f2f4f6;border-radius:8px;padding:12px 14px;font-size:13px;color:#556;margin:2px 0 8px}
#addForm input[type=text],#addForm select{font-size:16px;padding:12px;border:1px solid var(--line);border-radius:10px;width:100%;background:#fff}
/* 시(時) 선택 그리드 */
.siji-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.siji{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);
  border-radius:10px;padding:11px 6px;cursor:pointer;background:#fff}
.siji input{display:none}
.siji:has(input:checked){border-color:var(--accent);background:#faf6ff}
.sj-n{font-size:14px;font-weight:700}
.sj-t{font-size:11px;color:var(--sub)}

/* ── 입력 폼 ── */
.saju-form{display:flex;flex-direction:column;gap:16px}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
label{font-size:13px;color:var(--sub);display:flex;flex-direction:column;gap:4px}
label.full{width:100%}
input[type=number],input[type=text],input[type=email],input[type=password],input[type=tel],select{
  font-size:16px;padding:13px 14px;border:1.5px solid var(--line);
  border-radius:10px;background:#fff;color:var(--ink);width:100%}
input[type=email]:focus,input[type=password]:focus,input[type=text]:focus,input[type=number]:focus{
  outline:none;border-color:var(--accent2)}
.row label{flex:1;min-width:70px}
.seg{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.seg legend{font-size:12px;color:var(--sub);padding:0 6px}
.chip{flex-direction:row;align-items:center;gap:6px;background:#f7f5f1;border:1px solid var(--line);
  padding:8px 12px;border-radius:999px;cursor:pointer;font-size:14px;color:var(--ink)}
.chip.small{background:#fff}
.note{align-self:center}
.hidden{display:none}
.cta{display:block;width:100%;box-sizing:border-box;text-align:center;
  margin-top:8px;background:var(--accent);color:#fff;border:none;padding:14px;border-radius:12px;
  font-size:16px;font-weight:700;cursor:pointer;letter-spacing:-.3px}
.cta:hover{filter:brightness(1.05)}
.cta.ghost{display:inline-block;text-align:center;text-decoration:none;background:#f0ede7;color:var(--ink);margin-top:24px}

/* ── 팔자 ── */
.palja{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:8px 0}
.pillar{text-align:center}
.plabel{font-size:13px;color:var(--sub);margin-bottom:6px}
.gz{border-radius:12px;padding:12px 6px;margin-bottom:8px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;box-shadow:var(--shadow);
  min-height:72px;box-sizing:border-box}
.gz .ch{font-size:30px;font-weight:800;line-height:1.1}
.gz .oh{font-size:11px;opacity:.85}
.gz.empty{background:#f0ede7!important;color:#bbb!important;box-shadow:none;font-size:15px;line-height:1}

/* ── 오행 ── */
.oheng{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ocell{border-radius:12px;padding:14px 6px;text-align:center;box-shadow:var(--shadow)}
.ocell .on{display:block;font-size:14px;font-weight:700}
.ocell .oc{display:block;font-size:22px;font-weight:800}

/* ── 십성 ── */
.sipseong{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.sip{background:#f7f5f1;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px;
  display:flex;justify-content:space-between}
.sip b{color:var(--sub);font-weight:600}

/* ── 오늘의 한마디 / 마지막 ── */
.today-say{margin:22px 0 6px;padding:16px 18px;background:linear-gradient(135deg,#faf6ff,#f3eefc);
  border:1px solid #e7ddf5;border-radius:14px;font-size:15px;line-height:1.7}
.last-say{margin:22px 0 6px;padding:16px 18px;background:#fff6f2;border:1px solid #f6dfd5;
  border-radius:14px;font-size:15px;line-height:1.7}

/* ── 7개 지표 + 해설 ── */
.ind-list{display:flex;flex-direction:column;gap:16px}
.ind-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.ind-name{font-size:15px;font-weight:700}
.ind-score{font-size:18px;font-weight:800;color:var(--accent)}
.sbar{background:#eee7de;border-radius:999px;height:10px;overflow:hidden}
.sfill{height:100%;background:linear-gradient(90deg,#9b7ebd,#7c5cff);border-radius:999px}
.ind-desc{margin:8px 0 0;font-size:14px;line-height:1.65;color:#444}

/* ── 모바일식 하루운세 배치 ── */
.hero{display:flex;gap:14px;align-items:center;margin:6px 0 8px;padding:16px;
  background:linear-gradient(135deg,#faf1e0,#f7e3ea);border:1px solid #f0dcc8;border-radius:14px}
.hero-circle{width:66px;height:66px;flex-shrink:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff;
  background:radial-gradient(circle at 35% 30%,#ffd9a0,#f5a86a 75%,#ef8f6a);
  box-shadow:0 3px 10px rgba(240,150,100,.4)}
.hero-txt{font-size:14px;line-height:1.6;color:#5a4a3a;font-weight:600}
.fairy{background:#fbf5ff;border:1px solid #ece0f7;border-radius:10px;padding:13px 15px;font-size:14px;line-height:1.6}
.mini-label{font-size:12px;font-weight:700;color:var(--sub);margin:16px 0 8px}
.today-gz{display:flex;gap:8px;justify-content:center}
.today-gz .gz{width:64px;border-radius:12px;padding:12px 6px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.today-gz .gz .ch{font-size:26px;font-weight:800}
.ind-blocks{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.indb{padding:14px 0;border-bottom:1px solid var(--line)}
.indb:last-child{border-bottom:none}
.indb-head{font-size:15px;font-weight:800;margin-bottom:10px}
.indb-row{display:flex;gap:14px;align-items:center}
.score-circle{width:58px;height:58px;flex-shrink:0;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;
  background:radial-gradient(circle at 35% 30%,#ffd0b0,#f5a3b8 70%,#e888a8);
  box-shadow:0 3px 8px rgba(240,140,160,.35)}
.indb-desc{font-size:13.5px;line-height:1.6;color:#444}
.sec-div{margin:26px 0 12px;padding:11px 14px;border-radius:10px;font-size:15px;font-weight:800;
  background:linear-gradient(135deg,#efe6fb,#e3d5f6);color:#7a5aa8;text-align:center}
.sol{background:#faf8ff;border:1px solid #ece3f7;border-radius:12px;padding:13px 15px;margin-bottom:10px}
.sol-t{font-size:14px;font-weight:800;margin-bottom:4px}
.sol p{margin:0;font-size:13.5px;line-height:1.6;color:#444}
.lucky-row{display:flex;justify-content:space-between;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line);font-size:14px}
.lucky-row b{font-size:15px;font-weight:800;color:var(--accent)}
.food-row{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.6;margin-bottom:8px}

/* ── 솔루션 카드 ── */
.cards{display:flex;flex-direction:column;gap:10px}
.scard{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.sc-t{font-size:14px;font-weight:700;margin-bottom:5px}
.scard p{margin:0;font-size:14px;line-height:1.65;color:#444}

/* ── 럭키 아이템 ── */
.lucky{display:flex;flex-direction:column;gap:8px}
.lk{display:flex;justify-content:space-between;align-items:center;background:var(--soft);
  border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.lk-l{color:var(--sub);font-size:14px}
.lk-v{font-weight:700;font-size:15px}

/* ── 음식 / 스팟 ── */
.food{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.food li{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.6}
.spot{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:15px;margin:0}

/* ── 사주 상세(접기) ── */
.detail{margin-top:28px;border-top:1px solid var(--line);padding-top:14px}
.detail summary{cursor:pointer;font-size:14px;color:var(--sub);font-weight:600}
.detail h3{font-size:14px;margin:18px 0 10px}
.det-p{font-size:14px;line-height:1.65;color:#444;background:var(--soft);padding:12px 14px;border-radius:10px}
.detail code,.card code{background:#efe9f7;padding:1px 5px;border-radius:5px;font-size:13px}

/* ── 대운 ── */
.daeun{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
.du{background:#f7f5f1;border:1px solid var(--line);border-radius:10px;padding:8px 4px;text-align:center}
.dage{font-size:11px;color:var(--sub)}
.dgz{font-size:18px;font-weight:800;margin:2px 0}
.dun{font-size:11px;color:var(--sub)}

/* ── AI 해설 ── */
.ai-box{margin-top:28px;padding:20px;border:1px solid var(--accent2);border-radius:14px;background:#faf8ff}
.ai-box h2{margin-top:0}
.ai-text p{margin:0 0 10px;font-size:15px;line-height:1.7}
.ai-text p:last-child{margin-bottom:0}
.ai-box code{background:#efe9f7;padding:1px 5px;border-radius:5px;font-size:13px}

/* ── 로딩 화면 (동글뱅이 스피너; gif로 교체 예정) ── */
/* ── 로딩 화면(20260825 다마고치 시안: 떠있는 알 + 게이지) ── */
.loading-overlay{position:fixed;inset:0;z-index:1000;
  display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;overflow:hidden;
  background:
    repeating-linear-gradient(0deg,rgba(180,150,220,.07) 0 1px,transparent 1px 34px),
    repeating-linear-gradient(90deg,rgba(180,150,220,.07) 0 1px,transparent 1px 34px),
    radial-gradient(circle at 15% 14%,rgba(255,255,255,.7) 0 2px,transparent 3px),
    radial-gradient(circle at 85% 22%,rgba(255,255,255,.6) 0 2px,transparent 3px),
    var(--app-grad)}
.loading-overlay.show{display:flex}
.ld-stage{position:relative;width:260px;height:210px;display:flex;align-items:center;justify-content:center}
.ld-egg-outer{animation:ldFloaty 2.4s ease-in-out infinite;filter:drop-shadow(0 10px 12px rgba(190,130,200,.3))}
.ld-egg{width:138px;height:auto;display:block;image-rendering:pixelated;image-rendering:crisp-edges}
@keyframes ldFloaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.ld-platform{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);width:118px;height:20px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(246,140,200,.45),rgba(246,140,200,0) 70%);animation:ldPulse 2.4s ease-in-out infinite}
@keyframes ldPulse{0%,100%{transform:translateX(-50%) scale(1);opacity:.9}50%{transform:translateX(-50%) scale(.82);opacity:.6}}
.ld-plus{position:absolute;width:14px;height:14px;animation:ldTw 1.8s ease-in-out infinite;color:#b98cf0}
.ld-plus::before,.ld-plus::after{content:"";position:absolute;background:currentColor;border-radius:1px;box-shadow:0 0 6px currentColor}
.ld-plus::before{left:5px;top:0;width:4px;height:14px}
.ld-plus::after{top:5px;left:0;height:4px;width:14px}
@keyframes ldTw{0%,100%{transform:scale(.7);opacity:.5}50%{transform:scale(1.1);opacity:1}}
.ld-p1{top:6px;left:44px;color:#7fd8f2}.ld-p2{top:30px;right:34px;color:#ff8fc8;animation-delay:.3s}
.ld-p3{bottom:34px;left:24px;color:#b6e07a;animation-delay:.6s}.ld-p4{bottom:8px;right:40px;color:#b98cf0;animation-delay:.9s}
.ld-p5{top:70px;right:6px;color:#ffd45e;animation-delay:1.2s}.ld-p6{top:78px;left:2px;color:#ff8fc8;animation-delay:.5s}
.ld-title{font-size:28px;font-weight:800;letter-spacing:8px;margin-top:6px;
  background:linear-gradient(90deg,#f472bd,#a86ee0 55%,#6fc8e6);-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:ldGlow 1.6s ease-in-out infinite}
@keyframes ldGlow{0%,100%{opacity:.85}50%{opacity:1}}
.ld-dots{color:#b98cf0;-webkit-text-fill-color:#b98cf0}
.ld-bar{position:relative;width:264px;height:18px;background:#fff;border:3px solid #ecd9f4;border-radius:999px;overflow:hidden;margin-top:16px;
  box-shadow:0 4px 12px rgba(200,160,220,.22)}
.ld-fill{position:absolute;left:0;top:0;height:100%;width:0;overflow:hidden;border-radius:999px;transition:width .25s ease-out}
.ld-fill .ld-grad{position:absolute;left:0;top:0;height:100%;width:258px;
  background:linear-gradient(90deg,#b98cf0 0%,#c98fe0 40%,#f18fce 72%,#ff9ed2 100%)}
.ld-pct{font-size:14px;font-weight:800;color:#a86ee0;margin-top:9px;letter-spacing:1px}
.ld-tip{font-size:12px;color:#a893c6;margin-top:2px;font-weight:700}
/* (구) 스피너 — index/profile_menu 레거시 오버레이용 유지 */
.spinner{width:58px;height:58px;border:5px solid var(--line);border-top-color:var(--accent);
  border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-msg{color:var(--sub);font-size:15px;letter-spacing:-.3px}

/* ── 로그인 선택 화면(모바일식) ── */
.login-card{padding:0;overflow:hidden}
.welcome-banner{background:#f6efd8;padding:34px 20px;text-align:center;font-size:17px;font-weight:800;color:#8a7b3a}
.pending{display:flex;gap:12px;align-items:center;padding:18px 18px 16px;border-bottom:1px solid var(--line)}
.pd-img{width:58px;height:58px;border-radius:12px;background:linear-gradient(135deg,#c4a3f5,#e0b3e8);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:16px;flex-shrink:0}
.pd-tag{font-size:12px;color:var(--accent2);font-weight:700}
.pd-name{font-size:19px;font-weight:800;margin:2px 0}
.pd-desc{font-size:12px;color:var(--sub)}
.providers{display:flex;flex-direction:column}
.prov{display:flex;align-items:center;gap:12px;width:100%;border:none;border-bottom:1px solid var(--line);
  padding:19px 20px;font-size:16px;font-weight:700;cursor:pointer;text-decoration:none;color:#191919;background:#fff}
.prov .pv-ic{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}
.prov .pv-ar{margin-left:auto;color:#888;font-size:18px}
.prov.kakao{background:#FEE500}.prov.kakao .pv-ic{background:#191919;color:#FEE500}
.prov.naver{background:#03C75A;color:#fff}.prov.naver .pv-ic{background:#fff;color:#03C75A}.prov.naver .pv-ar{color:#e6ffe6}
.prov.google .pv-ic{background:#fff;border:1px solid #ddd;color:#4285F4}
.prov.email .pv-ic{background:#f0ede7;color:#666}
.prov:active{filter:brightness(.97)}

/* ── 계정/프로필 ── */
.card.narrow{max-width:400px;margin-left:auto;margin-right:auto}
.acct-bar{display:flex;justify-content:space-between;align-items:center;font-size:13px;
  color:var(--sub);margin-bottom:14px}
.acct-bar a{color:var(--accent);text-decoration:none}
.authlink{text-align:center;font-size:14px;color:var(--sub);margin-top:18px}
.authlink a{color:var(--accent);font-weight:600;text-decoration:none}
/* 이메일 인증 화면 요소 */
.flash{background:#eafcf1;color:#2e7d54;border:1px solid #bfe9cf;padding:11px 15px;
  border-radius:12px;margin:0 0 16px;font-size:14px;text-align:center}
.center-card{text-align:center}
.center-card .cta,.center-card .saju-form{margin-top:20px}
.big-emoji{font-size:46px;line-height:1;margin:4px 0 10px}
.devbox{background:var(--soft);border:1px dashed var(--accent2);border-radius:12px;
  padding:12px 14px;margin:16px 0;font-size:12px;color:var(--sub);word-break:break-all;text-align:left}
.devbox a{color:var(--accent)}
.cf-turnstile{margin:4px 0 2px}

/* ═══ 마이페이지 패널 · 모달 · 알-모이 교환 ═══ */
.hamburger{background:none;border:none;color:var(--accent);cursor:pointer;padding:4px;display:flex;align-items:center}
/* 슬라이드 패널(앱 폭에 맞춰 오른쪽 정렬) */
.mp-backdrop{position:fixed;inset:0;background:rgba(50,30,70,.42);opacity:0;visibility:hidden;transition:opacity .25s;z-index:75}
.mp-backdrop.show{opacity:1;visibility:visible}
.mp-wrap{position:fixed;inset:0;max-width:440px;margin:0 auto;z-index:80;pointer-events:none;overflow:hidden}
.mp-panel{position:absolute;top:0;right:0;height:100%;width:100%;max-width:440px;background:var(--card);
  box-shadow:-10px 0 30px rgba(120,90,150,.25);transform:translateX(101%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;pointer-events:auto;overflow:hidden}
.mp-panel.open{transform:translateX(0)}
.mp-head{display:flex;align-items:center;justify-content:space-between;color:#fff;padding:16px 18px;font-weight:800;font-size:16px;
  background:linear-gradient(135deg,#9b7ebd,#7d5fa8)}
.mp-close{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;line-height:1}
.mp-body{flex:1;overflow-y:auto;padding:16px 16px 24px}
.mp-login{display:flex;align-items:center;gap:12px;padding:4px 4px 16px}
.mp-login .mp-ico{font-size:22px}
.mp-login b{display:block;font-size:14px;color:var(--ink)}
.mp-email{font-size:13px;color:var(--sub);word-break:break-all}
.mp-sec{border-top:1px solid var(--line);padding:16px 2px}
.mp-sec-t{font-size:13px;font-weight:800;color:var(--accent);margin-bottom:10px}
.mp-rep{display:flex;align-items:center;gap:12px;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:12px}
.mp-av{width:44px;height:44px;border-radius:50%;color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:18px;flex:none;background:linear-gradient(135deg,#ffcb61,#f7a8d8)}
.mp-rep-info{flex:1;min-width:0}
.mp-rep-info b{font-size:15px;color:var(--ink)}
.mp-rel{font-size:12px;color:var(--sub)}
.mp-birth{display:block;font-size:12px;color:var(--sub);margin-top:2px}
.mp-change{font-size:13px;color:var(--accent);text-decoration:none;font-weight:700;border:1.5px solid #e6d6f5;border-radius:999px;padding:5px 12px;flex:none}
.mp-wallet{border-top:1px solid var(--line);padding:14px 2px}
.mp-w-row{display:flex;justify-content:space-between;align-items:center;padding:8px 6px;font-size:14px;color:var(--ink)}
.mp-w-row b{font-size:16px;color:var(--accent)}
.mp-w-row+.mp-w-row{border-top:1px dashed var(--line)}
.mp-menu{border-top:1px solid var(--line);padding-top:6px}
.mp-item{display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;padding:14px 6px;font-size:14px;
  color:var(--ink);cursor:pointer;text-decoration:none;text-align:left;border-bottom:1px solid var(--line);font-weight:600}
.mp-item .mi{font-size:17px;width:22px;text-align:center}
.mp-item i{margin-left:auto;color:var(--sub);font-style:normal;font-size:18px}
.mp-item em{margin-left:auto;font-style:normal;font-size:11px;color:var(--sub);background:#f0ede7;padding:3px 8px;border-radius:999px}
.mp-soon{color:var(--sub)}
.mp-foot{padding-top:4px}
.mp-out{color:var(--sub)}
.mp-del,.mp-del .mi{color:var(--err)}
/* 모달 */
.mp-modal-back{position:fixed;inset:0;background:rgba(40,20,60,.5);display:flex;align-items:center;justify-content:center;
  padding:24px;opacity:0;visibility:hidden;transition:opacity .2s;z-index:90}
.mp-modal-back.show{opacity:1;visibility:visible}
.mp-modal{background:#fff;border-radius:18px;padding:24px 20px;width:100%;max-width:330px;position:relative;text-align:center;
  box-shadow:0 12px 40px rgba(60,30,80,.3)}
.mp-modal-sm{max-width:300px}
.mp-modal-x{position:absolute;top:14px;right:16px;background:none;border:none;font-size:16px;color:var(--sub);cursor:pointer}
.mp-modal-t{font-size:17px;font-weight:800;color:var(--ink);margin:0 0 16px}
.mp-warn-ic{font-size:38px;margin:4px 0 12px}
.mp-warn{font-size:13px;color:var(--sub);line-height:1.6;margin:0 0 14px}
.mp-warn2{font-size:13px;color:var(--ink);margin:0 0 12px}
.mp-warn2 b{color:var(--err)}
.mp-del-input{width:100%;box-sizing:border-box;border:2px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;text-align:center;margin-bottom:16px}
.mp-del-input:focus{outline:none;border-color:var(--accent)}
.mp-modal-btns{display:flex;gap:10px}
.mbtn{flex:1;padding:13px 0;border-radius:12px;font-size:15px;font-weight:800;cursor:pointer;border:none;text-align:center;text-decoration:none;display:block}
.mbtn-ghost{background:#fff;border:2px solid var(--line);color:var(--ink)}
.mbtn-warn,.mbtn-primary{background:#ffcb61;color:#3a2b00}
.mbtn-primary.flip{background:var(--accent);color:#fff}
.mbtn-danger{background:var(--err);color:#fff}
.mbtn-danger:disabled{background:#e6dce8;color:#b6a8be;cursor:not-allowed}
/* 교환 모달 */
.ex-cur{display:flex;background:var(--soft);border-radius:12px;padding:14px;margin-bottom:14px}
.ex-cur>div{flex:1;text-align:center}
.ex-cur span{display:block;font-size:12px;color:var(--sub);margin-bottom:4px}
.ex-cur b{font-size:20px;color:var(--ink)}
.ex-toggle{display:flex;background:#f0ede7;border-radius:999px;padding:4px;margin-bottom:14px}
.ex-dir{flex:1;border:none;background:none;padding:9px 0;border-radius:999px;font-size:13px;font-weight:800;color:var(--sub);cursor:pointer}
.ex-dir.on{background:var(--accent);color:#fff}
.ex-preview{background:var(--soft);border-radius:12px;padding:14px;font-size:17px;font-weight:800;margin-bottom:10px}
.ex-minus{color:var(--err)}
.ex-plus{color:#2e9e5b}
.ex-warn{font-size:12px;color:var(--err);line-height:1.6;margin-bottom:12px}
.ex-warn:empty{margin-bottom:0}
/* 토스트 */
.mp-toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%) translateY(16px);background:rgba(45,25,65,.92);
  color:#fff;padding:11px 20px;border-radius:999px;font-size:13px;font-weight:700;opacity:0;visibility:hidden;
  transition:.25s;z-index:95;max-width:88%;text-align:center}
.mp-toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.profile-list{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.profile-card{display:flex;align-items:stretch;background:#fff;border:1px solid var(--line);
  border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.pc-main{flex:1;padding:14px 16px;text-decoration:none;color:var(--ink)}
.pc-main:hover{background:#faf8ff}
div.pc-name{font-size:16px;font-weight:800}  /* 프로필 카드 이름 전용(메뉴 .pcard.pc-name 충돌 방지) */
.pc-g{font-size:12px;color:var(--sub);font-weight:500;margin-left:4px}
.pc-birth{font-size:13px;color:var(--sub);margin-top:3px}
.pc-del{border:none;background:none;color:#c9c2b8;font-size:15px;padding:0 14px;cursor:pointer}
.pc-del:hover{color:var(--err)}
.empty{background:var(--soft);border:1px dashed var(--line);border-radius:12px;
  padding:26px 16px;text-align:center;color:var(--sub);font-size:14px;margin-bottom:18px}

/* ── 보관함 아카이브(모바일식) ── */
.avatar-row{display:flex;gap:2px;overflow-x:auto;padding:4px 0 12px;margin-bottom:4px;scrollbar-width:none}
.avatar-row::-webkit-scrollbar{display:none}
.av{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;font-size:11px;color:var(--sub);width:52px}
.av-c{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;background:#c4a3f5}
.av.on{color:var(--accent);font-weight:700}
.av.on .av-c{box-shadow:0 0 0 2px var(--accent)}
.av-add{background:#fff!important;border:1.5px dashed var(--accent2);color:var(--accent2)!important}
.av-all{background:linear-gradient(135deg,#f7a8d8,#9b7ebd)}
.av-manage .av-c{background:#f3eefc;color:var(--accent)}
.av-manage .av-c svg{display:block}
.arch-head{background:linear-gradient(90deg,#efe6fb,#e3d5f6);color:#7a5aa8;font-weight:800;font-size:15px;
  padding:11px 15px;border-radius:8px;margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.arch-cnt{background:#fff;color:#8a5ab8;font-size:12px;padding:1px 8px;border-radius:999px}
.arch-item{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}
.ai-main{flex:1;display:flex;align-items:center;gap:12px;padding:14px 6px;text-decoration:none;color:var(--ink)}
.ai-ic{font-size:20px}
.ai-body{flex:1;display:flex;flex-direction:column;gap:2px}
.ai-title{font-size:15px;font-weight:800}
.ai-sub{font-size:12px;color:var(--sub)}
.ai-badge{font-size:11px;color:#2f9e6f;background:#e7f6ee;padding:3px 9px;border-radius:999px;font-weight:700;align-self:center;white-space:nowrap}
.ai-del{border:none;background:none;color:#d88;font-size:14px;padding:0 10px;cursor:pointer}
.arch-empty{text-align:center;color:var(--sub);font-size:13px;padding:18px}
.arch-empty a{color:var(--accent);font-weight:700;text-decoration:none}

/* ── 홈 메뉴 카드 ── */
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.menu-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;
  box-shadow:var(--shadow);transition:transform .08s,border-color .08s}
.menu-card:hover{transform:translateY(-2px);border-color:var(--accent2)}
.m-icon{font-size:24px}
.m-name{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.3px}
.m-price{font-size:12px;font-weight:700;color:var(--accent2);background:#f3eefc;padding:2px 8px;border-radius:999px}
.m-price.free{color:#2f9e6f;background:#e7f6ee}
.m-desc{font-size:11.5px;color:var(--sub);line-height:1.4;margin-top:2px}

/* ── 상품 공통 ── */
.prose{font-size:14.5px;line-height:1.75;color:#3a3a3a;margin:0 0 6px}
.tag{font-size:11px}

/* ── 만세력 상세(990사주) ── */
.manse{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.manse-col{display:flex;flex-direction:column;align-items:stretch;gap:5px;text-align:center}
.mc-label{font-size:12px;color:var(--sub);font-weight:700}
.mc-sip{font-size:11px;color:var(--sub);min-height:14px}
.manse .gz{border-radius:10px;padding:9px 4px;margin:0;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1px}
.manse .gz .ch{font-size:24px;font-weight:800;line-height:1.1}
.manse .gz .oh{font-size:10px;opacity:.85}
.mc-jjg{display:flex;justify-content:center;gap:3px;flex-wrap:wrap;margin-top:2px}
.mc-jjg span{font-size:11px;color:#666;background:#f2efe9;border-radius:5px;padding:1px 5px}
.mc-sinsal,.mc-hapchung{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:3px}
.mc-sinsal span{font-size:10.5px;color:#8a6d3b;line-height:1.25}
.mc-hapchung span{font-size:10.5px;color:#556;line-height:1.25}

/* 모바일식 풀 상세표 — 행 단위 그리드(칸 높이·경계 정렬) */
.manse-grid{display:grid;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:10px;overflow:hidden}
.manse-grid>div{background:var(--card);display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:7px 4px}
.mg-h{font-size:12px;color:var(--sub);font-weight:700}
.mg-gz{gap:1px;padding:9px 4px!important}
.mg-gz .ch{font-size:26px;font-weight:800;line-height:1.05}
.mg-gz .oh{font-size:11px;opacity:.9}
.mg-gz .sp{font-size:11px;font-weight:600;margin-top:2px}
.mg-c{font-size:11.5px;color:var(--sub);line-height:1.4;gap:1px}
.mg-c.jjg{color:var(--sub)}
.mg-c.sinsal{color:#8a6d3b}
.mg-c.hapchung{color:#556}
.mc-un{font-size:11px;color:var(--accent2);font-weight:700}
.mc-legend{font-size:10.5px;color:var(--sub);text-align:center;margin:8px 0 4px}

/* ── 대운 목록 ── */
/* ── 색상 간지쌍(대운/세운/월운 미니칸) ── */
.gzmini{display:flex;gap:3px;flex-shrink:0}
.gzmini .gz{width:42px;min-height:50px;padding:6px 3px;border-radius:9px;margin:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;box-shadow:var(--shadow)}
.gzmini .gz .ch{font-size:20px;font-weight:800;line-height:1.05}
.gzmini .gz .oh{font-size:9px;opacity:.85}

/* 대운/세운 하이라이트 히어로 */
.hero-daeun{gap:12px}

/* ── 대운·세운 타임라인 ── */
.daeun-tl{display:flex;flex-direction:column;gap:8px}
.dtl{display:flex;gap:12px;align-items:center;
  background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.dtl.now{background:#faf6ff;border-color:var(--accent2);box-shadow:0 2px 10px rgba(155,126,189,.15)}
.dtl-info{flex:1;min-width:0}
.dtl-age{font-weight:800;font-size:14px}
.dtl-age span{font-size:11px;color:var(--sub);font-weight:400;margin-left:2px}
.nowbadge{font-size:11px;color:#fff;background:var(--accent2);border-radius:999px;padding:1px 8px;font-weight:700}
.dtl-un{font-size:11px;color:var(--accent2);font-weight:700;margin:1px 0}
.dtl-desc{font-size:12.5px;color:#555;line-height:1.5}

/* ── 고민 입력·상담 ── */
.gomin-field{margin:8px 0 16px;padding:14px;background:#faf6ff;border:1px solid #ece3fa;border-radius:12px}
.gomin-field label{display:block;font-size:14px;font-weight:800;margin-bottom:8px}
.gomin-field .opt{font-size:12px;color:var(--sub);font-weight:400}
.gomin-field textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;font-size:14px;font-family:inherit;resize:vertical;line-height:1.5}
.gomin-field textarea:focus{outline:none;border-color:var(--accent2)}
.gomin-hint{font-size:11.5px;color:var(--sub);margin:6px 2px 0}
.gomin-box{background:#faf6ff;border:1px solid #ece3fa;border-radius:12px;padding:14px 16px}
.gomin-q{font-size:13px;color:var(--accent);font-weight:700;margin-bottom:8px;line-height:1.5}

/* ── 월별 기운 그리드 ── */
.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mcell{display:flex;flex-direction:column;align-items:center;gap:4px;
  background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:9px 4px}
.m-n{font-size:12px;font-weight:700;color:var(--sub)}
.month-grid .gzmini .gz{width:34px;min-height:42px}
.month-grid .gzmini .gz .ch{font-size:17px}

@media(max-width:480px){
  .gz .ch{font-size:24px}
  .ind-top{gap:8px}
  .menu-grid{grid-template-columns:1fr}
}

/* ── 이름·작명 (naming) ───────────────────────────────── */
.fld input[type=text]{width:100%;box-sizing:border-box;border:1px solid var(--line);
  border-radius:10px;padding:11px 12px;font-size:15px;font-family:inherit;background:#fff;color:var(--ink)}
.fld input[type=text]:focus{outline:none;border-color:var(--accent2)}
.need-box{margin:12px 0 4px;padding:11px 14px;background:#f3eefc;border:1px solid #e6dcfb;
  border-radius:12px;font-size:13.5px;color:var(--ink)}
.need-box b{color:var(--accent)}
.score-hero{margin:18px 0 4px;padding:20px;text-align:center;border-radius:16px;
  background:linear-gradient(135deg,#faf6ff,#f0e9fc);border:1px solid #e6dcfb;box-shadow:var(--shadow)}
.sh-num{font-size:56px;font-weight:800;color:var(--accent);line-height:1}
.sh-num span{font-size:22px;font-weight:700;margin-left:4px;color:var(--accent2)}
.sh-grade{margin-top:6px;font-size:16px;font-weight:700;color:var(--ink)}
.bar-list{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.bar-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.bar-name{font-size:14px;font-weight:700}
.bar-pt{font-size:13px;font-weight:800;color:var(--accent)}
.bar-track{height:9px;background:#efeae2;border-radius:999px;overflow:hidden}
.bar-fill{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--accent2),var(--accent))}
.bar-desc{margin-top:5px;font-size:12.5px;color:var(--sub);line-height:1.5}
.cand-list{display:flex;flex-direction:column;gap:10px}
.cand-row{display:flex;align-items:center;gap:12px;background:var(--soft);border:1px solid var(--line);
  border-radius:12px;padding:13px 14px}
.cand-oh{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:800;color:#fff;align-self:flex-start;margin-top:1px}
.cand-body{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
/* 추천 이름 '어울림' 점수 배지 */
.cand-score{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:52px;padding:6px 8px;border-radius:12px;background:#f3eefc;color:var(--accent);
  font-size:10px;font-weight:800;line-height:1}
.cand-score b{font-size:17px;margin-top:2px}
.cand-name{font-size:16px;font-weight:700}
.cand-name em{font-size:12.5px;font-weight:600;color:var(--sub);font-style:normal;margin-left:4px}
.cand-mean{font-size:12.5px;color:var(--sub);line-height:1.45}
.cand-reason{font-size:12.5px;color:#6f6a63;line-height:1.6}
.oh-목{background:#89AC46}.oh-화{background:#F08787}.oh-토{background:#FFCB61;color:#3a3a3a}
.oh-금{background:#9B7EBD}.oh-수{background:#647FBC}
/* 이름·작명 간편입력 폼 */
.fill-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.fill-chip{background:#f3eefc;border:1px solid #e6dcfb;color:var(--accent);font-weight:600;
  padding:7px 14px;border-radius:999px;font-size:13.5px;cursor:pointer}
.fill-chip:hover{border-color:var(--accent2)}
.fill-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.save-box{margin:16px 0 4px;padding:14px 16px;background:#f0faf4;border:1px solid #c9ebd6;border-radius:12px}
.save-q{display:block;font-size:14px;font-weight:700;color:#2f7d4f;margin-bottom:10px}
.save-btns{display:flex;gap:8px}
.save-yes{background:#38b56f;color:#fff;border:none;padding:9px 18px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer}
.save-no{background:#fff;color:var(--sub);border:1px solid var(--line);padding:9px 18px;border-radius:10px;font-size:14px;cursor:pointer}
/* 유료 예정(부분무료) 표시 */
.sec-div.locked{display:flex;align-items:center;justify-content:center;gap:8px}
.lock-tag{font-size:11px;font-weight:800;color:#fff;background:var(--accent2);
  padding:2px 9px;border-radius:999px;letter-spacing:0}
.radio-chip{cursor:pointer}
.radio-chip input{margin-right:3px;accent-color:var(--accent)}
#nameForm .cta{display:block;width:100%;box-sizing:border-box;margin-top:10px}

/* ── 홈 하단 푸터 (밝은 테마: 투명 배경+흰 리스트 카드) ── */
.home-foot{margin:26px -9px -90px;padding:22px 20px 116px;color:#8a78a8;font-size:12px;line-height:1.7}
.foot-sec{margin-bottom:14px}
.foot-h{font-size:18px;font-weight:800;color:#7a5aa8;margin:0 0 6px}
.foot-tag{color:#a893c6;margin:0 0 8px;font-size:12px}
.foot-lead{color:#8a78a8;line-height:1.6;margin:0;font-size:12.5px}
.foot-list{list-style:none;padding:14px 16px;margin:6px 0 14px;background:#fff;
  border:2px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:2px}
.foot-list li{position:relative;padding-left:12px;color:#8a78a8;line-height:1.9;font-size:12px}
.foot-list li::before{content:'·';position:absolute;left:2px;color:var(--accent2);font-weight:800}
.foot-list b{color:#7a5aa8;font-weight:700}
.foot-h4{font-size:14px;font-weight:800;color:#7a5aa8;margin:0 0 5px}
.foot-p{margin:2px 0;font-size:12px;line-height:1.6}
.foot-tags{color:#bcaed8;line-height:1.7;margin:12px 0;font-size:11px;word-break:keep-all}
.foot-social{display:flex;gap:10px;margin:10px 0 16px}
.fs-ic{width:34px;height:34px;display:flex;align-items:center;justify-content:center;
  background:#fff;border:2px solid var(--line);border-radius:50%;font-size:15px;cursor:default}
.foot-co{text-align:left;line-height:1.7;margin-bottom:14px}
.foot-brand{font-weight:800;color:#7a5aa8;margin-bottom:4px;font-size:13px}
.foot-note{color:#b0a0c8;margin-top:3px;font-size:11px}
.foot-links{display:flex;align-items:center;gap:6px;
  font-size:12px;margin:12px 0 8px;flex-wrap:wrap}
.foot-links a{color:#8a5ab8;text-decoration:none;font-weight:700}
.foot-dot{color:#cbb8e0}
.foot-copy{margin-top:8px;color:#bcaed8;font-size:11px}
.tbd{background:#f3eefc;color:#9b7ebd;font-weight:800;padding:1px 7px;border-radius:999px;font-size:11px}

/* ── 정보 페이지(회사소개·약관·개인정보·문의) ── */
.infopage .back-link{display:inline-block;color:var(--sub);text-decoration:none;
  font-size:13px;margin-bottom:12px}
.info-body{color:var(--ink);line-height:1.8;font-size:14px}
.info-body p{margin:0 0 12px}

/* ── 맨 위로 버튼 (모바일식: 아래로 스크롤하면 등장) ── */
.to-top{position:fixed;bottom:81px;right:max(12px,calc(50vw - 216px));z-index:55;
  width:46px;height:46px;border-radius:50%;border:none;background:#fff;color:#a7a1b0;
  box-shadow:0 4px 16px rgba(30,25,40,.16);display:flex;align-items:center;justify-content:center;
  cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px) scale(.94);
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease}
.to-top:hover{color:var(--accent);box-shadow:0 6px 20px rgba(30,25,40,.22)}
.to-top svg{display:block}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0) scale(1)}

/* ── 프로필 선택 모달 (모바일식 중앙 팝업·배경 흐림) ── */
.modal-ov{position:fixed;inset:0;z-index:200;background:rgba(30,25,40,.45);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;padding:24px}
.modal-ov.show{display:flex}
.modal-card{background:#fff;width:100%;max-width:360px;border-radius:18px;
  padding:22px 20px 20px;position:relative;box-shadow:0 12px 40px rgba(0,0,0,.22);
  max-height:80vh;overflow-y:auto;animation:popIn .2s ease}
@keyframes popIn{from{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}
.modal-x{position:absolute;top:14px;right:14px;background:none;border:none;
  font-size:16px;color:var(--sub);cursor:pointer;line-height:1}
.modal-title{text-align:center;font-size:16px;font-weight:800;margin:2px 0 4px}
.modal-sub{text-align:center;font-size:13px;color:var(--sub);margin:0 0 16px}
.pm-empty{text-align:center;padding:30px 6px 10px;color:var(--sub)}
.pm-empty p{margin:0 0 8px}
.pm-empty-sub{font-size:12.5px;color:#a49aa8;line-height:1.55}
/* 모달 '새로운 사람 추가하기' = 가운데 정렬 풀폭 블록 버튼 + 넉넉한 세로 간격 */
.modal-card .cta{display:block;width:100%;box-sizing:border-box;text-align:center;
  text-decoration:none;margin-top:20px;padding:14px}

/* ── 무료운세 사전입력: 단계별 등장(아래에서 위로 슬라이드업) ── */
.q-step.q-hidden{display:none}
@keyframes qUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.q-step.q-in{animation:qUp .34s cubic-bezier(.22,.61,.36,1)}

/* 프로필 선택 모달: 결제·조회 이력 개수 배지(모바일식) */
.pk-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;
  padding:0 6px;border-radius:999px;background:#e9f0ff;color:#4a7fd0;font-size:11.5px;font-weight:800;flex-shrink:0}

/* ── 결제 팝업 (알 결제 — 베타 목업) ── */
.modal-pay{max-width:322px;text-align:center}
.pay-churu{display:flex;gap:10px;margin:16px 0 12px}
.pc-col{flex:1;background:#f7f5f1;border:1px solid var(--line);border-radius:12px;
  padding:12px 8px;display:flex;flex-direction:column;gap:4px}
.pc-label{font-size:12px;color:var(--sub)}
.pc-val{font-size:20px;font-weight:800;color:var(--ink)}
.pc-val.use{color:var(--accent)}
.pay-beta{font-size:11.5px;color:#8a72c4;background:#f6f2fc;border-radius:8px;
  padding:9px 11px;margin:0 0 14px;line-height:1.5}
.pay-actions{display:flex;gap:10px}
.pay-btn{flex:1;padding:13px;border-radius:12px;border:none;font-size:15px;font-weight:700;
  cursor:pointer;letter-spacing:-.3px}
.pay-btn.cancel{background:#eee9e2;color:var(--ink)}
.pay-btn.ok{background:var(--accent);color:#fff}

/* ── 결과지 스크롤 힌트(모바일식: 최상단이면 바운스, 내리면 페이드아웃) ── */
.scroll-hint{position:fixed;left:50%;bottom:104px;z-index:54;
  transform:translateX(-50%);white-space:nowrap;pointer-events:none;
  background:rgba(124,92,255,.94);color:#fff;padding:9px 17px;border-radius:999px;
  font-size:12.5px;font-weight:700;box-shadow:0 5px 16px rgba(124,92,255,.38);
  opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.scroll-hint.show{opacity:1;visibility:visible;animation:shBounce 1.4s ease-in-out infinite}
@keyframes shBounce{0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(7px)}}
.sh-arrow{display:inline-block;font-weight:800}

/* ── 대운 연령대 선택(모바일식 팝업 + 진입 버튼) ── */
.age-picker{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;
  background:#faf6ff;border:1px solid #e7ddf5;border-radius:12px;padding:14px 16px;margin-bottom:16px;
  font-size:14px;color:var(--ink)}
.ap-label{font-weight:700;color:var(--accent2)}
.ap-val{flex:1;color:var(--sub)}
.ap-go{font-size:18px;color:var(--accent2);font-weight:700}
.age-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto;margin-top:4px}
.age-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.age-item:hover{border-color:var(--accent2)}
.age-item.now{border-color:var(--accent);background:#f6f2fc}
.ai-gz{font-size:18px;font-weight:800;color:var(--ink);min-width:34px;text-align:center}
.ai-body{flex:1;display:flex;flex-direction:column;gap:2px}
.ai-age{font-size:14px;font-weight:700}
.ai-year{font-size:11.5px;color:var(--sub)}
.ai-now{font-size:11px;font-weight:800;color:#fff;background:var(--accent);padding:3px 9px;border-radius:999px;flex-shrink:0}

/* ── 연도별 년도 선택(모바일식: 올해±2년 칩 + 직접입력) ── */
.year-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.year-chip{position:relative;flex:1;min-width:60px;padding:14px 6px;border-radius:12px;
  border:1px solid var(--line);background:#fff;font-size:15px;font-weight:700;color:var(--ink);
  cursor:pointer;transition:border-color .08s}
.year-chip:hover{border-color:var(--accent2)}
.year-chip.now{border-color:var(--accent);background:#f6f2fc}
.yc-tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  font-size:10px;font-weight:800;color:#fff;background:var(--accent);padding:2px 8px;border-radius:999px;white-space:nowrap}
.year-direct{width:100%;padding:12px;border-radius:12px;border:1px dashed var(--line);
  background:var(--soft);color:var(--sub);font-size:13.5px;font-weight:600;cursor:pointer;margin-bottom:6px}
.direct-wrap{display:flex;align-items:center;gap:8px;margin:6px 0 4px}
.direct-wrap.hidden{display:none}
.direct-wrap input{flex:1;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;font-size:15px;text-align:center}
.direct-wrap input:focus{outline:none;border-color:var(--accent2)}
.dw-unit{font-size:14px;color:var(--sub)}
.dir-ok{padding:11px 18px;border-radius:10px;border:none;background:var(--accent);color:#fff;
  font-size:14px;font-weight:700;cursor:pointer}

/* ── 최근 로그인 방식 안내(모바일식 툴팁) ── */
.prov{position:relative}
.recent-badge{position:absolute;top:-10px;left:16px;z-index:3;
  background:#2b2b2b;color:#fff;font-size:11px;font-weight:700;letter-spacing:-.2px;
  padding:4px 11px;border-radius:999px;white-space:nowrap;box-shadow:0 3px 8px rgba(0,0,0,.22)}
.recent-badge::after{content:'';position:absolute;left:18px;bottom:-3px;width:8px;height:8px;
  background:#2b2b2b;transform:rotate(45deg)}

/* ── 지역운 카드 배경(비어있던 카드) + BETA 배지 ── */
.pcard-img{position:relative}
.pcard.pc-region .pcard-img{background:linear-gradient(135deg,#f4a259,#e07a5f)}
.pcard-beta{position:absolute;top:8px;right:8px;background:rgba(30,20,15,.32);color:#fff;
  font-size:9.5px;font-weight:800;letter-spacing:.2px;padding:3px 8px;border-radius:999px;
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}

/* 지역운 베타 안내 박스 */
.beta-note{font-size:12.5px;color:#9a5a2e;background:#fdf1e7;border:1px solid #f5d9c2;
  border-radius:10px;padding:11px 13px;margin:10px 0 4px;line-height:1.55}
.beta-note b{color:#c26a2e}

/* ── 보관함 대개편(프로필 요약·확장·팝업·관리) ── */
.av-manage{background:none;border:none;cursor:pointer;padding:0;font-size:11px;color:var(--sub);line-height:1.6}
.sel-card{background:var(--soft);border:1px solid var(--line);border-radius:14px;margin:4px 0 14px;overflow:hidden}
.sel-head{display:flex;align-items:center;gap:12px;padding:14px 15px}
.sel-info{flex:1;min-width:0}
.sel-name{font-size:15px;font-weight:800}
.sel-name b{font-size:12px;color:var(--sub);font-weight:500;margin-left:4px}
.sel-birth{font-size:12.5px;color:var(--sub);margin-top:3px}
.sel-toggle{background:none;border:none;color:var(--sub);cursor:pointer;padding:6px;line-height:1;
  display:flex;align-items:center;justify-content:center}
.sel-toggle svg{display:block;transition:transform .3s ease}
.sel-toggle.up svg{transform:rotate(180deg)}
.sel-actions[hidden]{display:none}
.sel-actions{display:flex;border-top:1px solid var(--line)}
.sel-act{flex:1;display:flex;align-items:center;justify-content:center;padding:14px 0;
  background:none;border:none;cursor:pointer;text-decoration:none;color:var(--ink)}
.sel-act+.sel-act{border-left:1px solid var(--line)}
.sel-act span{font-size:21px}
.sel-act.del{color:var(--err)}
.modal-wide{max-width:400px}
.manse-scroll{overflow-x:auto;margin-top:6px}
.info-table{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:6px 0 14px}
.it-row{display:flex;justify-content:space-between;gap:10px;padding:11px 14px;font-size:13.5px}
.it-row+.it-row{border-top:1px solid var(--line)}
.it-k{color:var(--sub)}
.it-v{font-weight:700;text-align:right}
.warn-box{background:#fdeceb;border:1px solid #f5c9c5;border-radius:12px;padding:13px 14px;
  font-size:13px;font-weight:700;color:var(--err);line-height:1.55;margin-bottom:14px}
.wb-sub{font-size:11.5px;font-weight:500;color:#c0796f}
.del-name{font-size:16px;font-weight:800;color:var(--ink)}
.pay-btn.danger{background:var(--err);color:#fff;width:100%}
.mg-list{display:flex;flex-direction:column;gap:8px;margin:4px 0 14px;max-height:56vh;overflow-y:auto}
.mg-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:12px;padding:11px 12px;touch-action:none}
.mg-row.fav{border-color:var(--accent);background:#f6f2fc}
.mg-row.drag{opacity:.6;box-shadow:0 6px 18px rgba(0,0,0,.16)}
.mg-handle{cursor:grab;color:#c3bdb3;font-size:16px;touch-action:none;user-select:none;flex-shrink:0}
.mg-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.mg-name{font-size:14.5px;font-weight:700}
.mg-sub{font-size:11.5px;color:var(--sub)}
.mg-star{background:none;border:none;font-size:20px;color:#d8d2c8;cursor:pointer;line-height:1;flex-shrink:0}
.mg-star.on{color:#f5b301}
.mg-add{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px;border:1px dashed var(--line);
  border-radius:12px;color:var(--accent);text-decoration:none;font-weight:700;font-size:13.5px;background:var(--soft)}
.mg-add-ic{width:22px;height:22px;border-radius:50%;border:1.5px dashed var(--accent);display:flex;align-items:center;justify-content:center}
.edit-warn{font-size:12.5px;color:#9a5a2e;background:#fdf1e7;border:1px solid #f5d9c2;
  border-radius:10px;padding:10px 13px;margin-bottom:12px;line-height:1.5}
