:root{font-family:system-ui,-apple-system,'Apple SD Gothic Neo',sans-serif;color:#243e37;background:#faf8f0}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:20px;max-width:960px;margin:auto;padding:24px}header a{font-size:24px;font-weight:800;color:#285849;text-decoration:none}header span{font-size:13px}header button{margin-left:auto}main{max-width:820px;margin:30px auto;padding:0 24px}h1{font-size:36px;margin:12px 0 20px}.intro{color:#7a715e}section{background:#fffdf7;padding:26px;border:1px solid #d6dfd3;border-radius:16px;margin:24px 0}label{display:block;font-weight:600;margin-top:18px}input,select{display:block;width:100%;font:inherit;padding:12px;margin-top:8px;border:1px solid #a9b8aa;border-radius:8px;background:white;color:#243e37}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;line-height:1.7}.check input{width:20px;margin:3px 0;flex-shrink:0}button{font:inherit;border:0;border-radius:8px;padding:12px 20px;background:#285849;color:white;cursor:pointer;margin-top:16px}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e6ede3;color:#285849}.buttons{display:flex;gap:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.three{grid-template-columns:2fr 1fr 1fr}p{line-height:1.95}small{display:block;color:#657367;line-height:1.7;margin-top:6px}#message{color:#8a3c22;font-weight:600}#reports button{display:block;width:100%;text-align:left}#report h2{color:#175232;margin-top:50px}#report p{line-height:2.05}#report strong{color:#111111;font-size:inherit;font-weight:700;font-style:normal;text-decoration:none;background:#eef5e7;border-radius:2px;padding:0 2px;box-decoration-break:clone;-webkit-box-decoration-break:clone}#report .section-answer strong.report-trait-highlight{color:#175232;background:#eef5e7;padding:0 2px}table{width:100%;border-collapse:collapse;margin:18px 0}th,td{padding:12px;border:1px solid #d1dbd0;text-align:center}.note{background:#edf2ea;padding:16px}details{line-height:1.8;padding:16px}footer{text-align:center;padding:40px;color:#687568}[hidden]{display:none!important}@media(max-width:520px){header{padding:18px;flex-wrap:wrap;gap:8px}header span{display:none}main{padding:0 16px}section{padding:18px}h1{font-size:30px}.grid{gap:10px}}@media print{body{background:white}header,footer,main>h1,main>.intro,main>p,#account,#workspace,details,#print{display:none!important}main{max-width:none;margin:0;padding:0}#result{border:0;padding:0;margin:0}#report h2{break-after:avoid}#report p{orphans:1;widows:1}p{font-size:11pt}@page{size:A4;margin:22mm 19mm}}

/* Shared account and navigation shell */
body{padding-bottom:90px}header{flex-wrap:wrap;gap:12px}header #back{margin:0;padding:8px 12px}header .brand{font-size:22px}#member{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;max-width:100%}#member span{display:block;overflow-wrap:anywhere;max-width:100%;font-size:14px}#member a{font-size:14px;font-weight:600}#member button{margin:0;padding:9px 12px}#account{max-width:440px;margin:24px auto}#auth-submit{width:100%}#auth-toggle{font-size:14px}a{color:#285849}#message{overflow-wrap:anywhere}.action-link{display:inline-block;margin:8px 16px 8px 0}.bottom-nav{position:sticky;bottom:0;display:flex;justify-content:space-around;background:#e8eedf;border-top:1px solid #d6dfd3;padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:5}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;text-decoration:none;min-width:60px;padding:4px}.bottom-nav svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}body{padding-bottom:0;min-height:100vh;display:flex;flex-direction:column}main{width:100%;flex:1}header{width:100%}@media(max-width:520px){#member{width:100%;gap:10px}header .brand{font-size:20px}#member span{margin-right:auto}#account{padding:20px}h1{font-size:28px}}@media print{.bottom-nav,#member-page,#gift-page{display:none!important}body{display:block}}

/* Compact report reading spacing; screen only. */
@media screen{#report p{line-height:1.65}}

/* Approved mypage B: 2026-09-25. */
#member-page{max-width:520px;margin:20px auto;background:#fffefa;padding:24px;border-radius:20px}#member-page .mp-identity{display:grid;grid-template-columns:minmax(0,1fr) 116px;gap:16px}#member-page h2{margin:14px 0 8px;font-size:26px}#member-page p{font-size:13px;line-height:1.65;color:#69766b}#member-page small{font-size:11px;color:#798674}#member-page a{color:#285849;text-decoration:none}#member-page .mp-animal{border:1px solid #e5ddc7;background:#f4f0e4;border-radius:16px;padding:16px 6px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:7px}#mp-art svg{width:100px;max-width:100%}#mp-art{font-size:52px}#mp-animal-name{font-size:15px}#mp-day{font-size:12px}#member-page .mp-traits{display:grid;grid-template-columns:repeat(3,1fr);background:#f7f8f2;border:1px solid #e3e7dc;border-radius:14px;padding:20px 5px;margin:24px 0}#member-page .mp-traits>div{text-align:center}#member-page .mp-traits>div+div{border-left:1px solid #dce2d2}#member-page .mp-traits b{display:block;font-size:14px;margin-top:12px}#mp-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}#mp-pillars>div{text-align:center;display:flex;flex-direction:column;gap:8px}#mp-pillars b{padding:16px 0;border-radius:10px;font-size:17px;font-weight:500}#member-page .mp-report{background:#2e5143;color:#fffcef;padding:24px;border-radius:14px;margin:24px 0}#member-page .mp-report h3{font-size:25px;line-height:1.45}#member-page .mp-report :is(small,p,a){color:#e3eada}#member-page .mp-link{display:block;padding:18px 0;border-bottom:1px solid #e0e5da}@media(max-width:400px){#member-page{padding:16px}#member-page .mp-identity{grid-template-columns:minmax(0,1fr) 104px;gap:10px}#member-page h2{font-size:23px}}

#member-page .mp-identity a{font-size:13px;line-height:1.65}

/* Approved roly-poly animals: 12 branches x 5 stem elements. */
.ilju-character{display:block;width:100%;max-width:100px;margin:auto;background-image:url(/assets/ilju-animals-v1.png);background-repeat:no-repeat;mix-blend-mode:multiply}
.ilju-e0-b0{aspect-ratio:161.8/155;background-size:500% 1252.90322581%;background-position:0% 0.00000000%}
.ilju-e1-b0{aspect-ratio:161.8/155;background-size:500% 1252.90322581%;background-position:25% 0.00000000%}
.ilju-e2-b0{aspect-ratio:161.8/155;background-size:500% 1252.90322581%;background-position:50% 0.00000000%}
.ilju-e3-b0{aspect-ratio:161.8/155;background-size:500% 1252.90322581%;background-position:75% 0.00000000%}
.ilju-e4-b0{aspect-ratio:161.8/155;background-size:500% 1252.90322581%;background-position:100% 0.00000000%}
.ilju-e0-b1{aspect-ratio:161.8/160;background-size:500% 1213.75000000%;background-position:0% 8.69809203%}
.ilju-e1-b1{aspect-ratio:161.8/160;background-size:500% 1213.75000000%;background-position:25% 8.69809203%}
.ilju-e2-b1{aspect-ratio:161.8/160;background-size:500% 1213.75000000%;background-position:50% 8.69809203%}
.ilju-e3-b1{aspect-ratio:161.8/160;background-size:500% 1213.75000000%;background-position:75% 8.69809203%}
.ilju-e4-b1{aspect-ratio:161.8/160;background-size:500% 1213.75000000%;background-position:100% 8.69809203%}
.ilju-e0-b2{aspect-ratio:161.8/150;background-size:500% 1294.66666667%;background-position:0% 17.57812500%}
.ilju-e1-b2{aspect-ratio:161.8/150;background-size:500% 1294.66666667%;background-position:25% 17.57812500%}
.ilju-e2-b2{aspect-ratio:161.8/150;background-size:500% 1294.66666667%;background-position:50% 17.57812500%}
.ilju-e3-b2{aspect-ratio:161.8/150;background-size:500% 1294.66666667%;background-position:75% 17.57812500%}
.ilju-e4-b2{aspect-ratio:161.8/150;background-size:500% 1294.66666667%;background-position:100% 17.57812500%}
.ilju-e0-b3{aspect-ratio:161.8/183;background-size:500% 1061.20218579%;background-position:0% 26.43547470%}
.ilju-e1-b3{aspect-ratio:161.8/183;background-size:500% 1061.20218579%;background-position:25% 26.43547470%}
.ilju-e2-b3{aspect-ratio:161.8/183;background-size:500% 1061.20218579%;background-position:50% 26.43547470%}
.ilju-e3-b3{aspect-ratio:161.8/183;background-size:500% 1061.20218579%;background-position:75% 26.43547470%}
.ilju-e4-b3{aspect-ratio:161.8/183;background-size:500% 1061.20218579%;background-position:100% 26.43547470%}
.ilju-e0-b4{aspect-ratio:161.8/180;background-size:500% 1078.88888889%;background-position:0% 36.77639047%}
.ilju-e1-b4{aspect-ratio:161.8/180;background-size:500% 1078.88888889%;background-position:25% 36.77639047%}
.ilju-e2-b4{aspect-ratio:161.8/180;background-size:500% 1078.88888889%;background-position:50% 36.77639047%}
.ilju-e3-b4{aspect-ratio:161.8/180;background-size:500% 1078.88888889%;background-position:75% 36.77639047%}
.ilju-e4-b4{aspect-ratio:161.8/180;background-size:500% 1078.88888889%;background-position:100% 36.77639047%}
.ilju-e0-b5{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:0% 46.38655462%}
.ilju-e1-b5{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:25% 46.38655462%}
.ilju-e2-b5{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:50% 46.38655462%}
.ilju-e3-b5{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:75% 46.38655462%}
.ilju-e4-b5{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:100% 46.38655462%}
.ilju-e0-b6{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:0% 55.18207283%}
.ilju-e1-b6{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:25% 55.18207283%}
.ilju-e2-b6{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:50% 55.18207283%}
.ilju-e3-b6{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:75% 55.18207283%}
.ilju-e4-b6{aspect-ratio:161.8/157;background-size:500% 1236.94267516%;background-position:100% 55.18207283%}
.ilju-e0-b7{aspect-ratio:161.8/145;background-size:500% 1339.31034483%;background-position:0% 63.55036171%}
.ilju-e1-b7{aspect-ratio:161.8/145;background-size:500% 1339.31034483%;background-position:25% 63.55036171%}
.ilju-e2-b7{aspect-ratio:161.8/145;background-size:500% 1339.31034483%;background-position:50% 63.55036171%}
.ilju-e3-b7{aspect-ratio:161.8/145;background-size:500% 1339.31034483%;background-position:75% 63.55036171%}
.ilju-e4-b7{aspect-ratio:161.8/145;background-size:500% 1339.31034483%;background-position:100% 63.55036171%}
.ilju-e0-b8{aspect-ratio:161.8/149;background-size:500% 1303.35570470%;background-position:0% 71.77914110%}
.ilju-e1-b8{aspect-ratio:161.8/149;background-size:500% 1303.35570470%;background-position:25% 71.77914110%}
.ilju-e2-b8{aspect-ratio:161.8/149;background-size:500% 1303.35570470%;background-position:50% 71.77914110%}
.ilju-e3-b8{aspect-ratio:161.8/149;background-size:500% 1303.35570470%;background-position:75% 71.77914110%}
.ilju-e4-b8{aspect-ratio:161.8/149;background-size:500% 1303.35570470%;background-position:100% 71.77914110%}
.ilju-e0-b9{aspect-ratio:161.8/162;background-size:500% 1198.76543210%;background-position:0% 80.67415730%}
.ilju-e1-b9{aspect-ratio:161.8/162;background-size:500% 1198.76543210%;background-position:25% 80.67415730%}
.ilju-e2-b9{aspect-ratio:161.8/162;background-size:500% 1198.76543210%;background-position:50% 80.67415730%}
.ilju-e3-b9{aspect-ratio:161.8/162;background-size:500% 1198.76543210%;background-position:75% 80.67415730%}
.ilju-e4-b9{aspect-ratio:161.8/162;background-size:500% 1198.76543210%;background-position:100% 80.67415730%}
.ilju-e0-b10{aspect-ratio:161.8/159;background-size:500% 1221.38364780%;background-position:0% 89.62422883%}
.ilju-e1-b10{aspect-ratio:161.8/159;background-size:500% 1221.38364780%;background-position:25% 89.62422883%}
.ilju-e2-b10{aspect-ratio:161.8/159;background-size:500% 1221.38364780%;background-position:50% 89.62422883%}
.ilju-e3-b10{aspect-ratio:161.8/159;background-size:500% 1221.38364780%;background-position:75% 89.62422883%}
.ilju-e4-b10{aspect-ratio:161.8/159;background-size:500% 1221.38364780%;background-position:100% 89.62422883%}
.ilju-e0-b11{aspect-ratio:161.8/185;background-size:500% 1049.72972973%;background-position:0% 100.00000000%}
.ilju-e1-b11{aspect-ratio:161.8/185;background-size:500% 1049.72972973%;background-position:25% 100.00000000%}
.ilju-e2-b11{aspect-ratio:161.8/185;background-size:500% 1049.72972973%;background-position:50% 100.00000000%}
.ilju-e3-b11{aspect-ratio:161.8/185;background-size:500% 1049.72972973%;background-position:75% 100.00000000%}
.ilju-e4-b11{aspect-ratio:161.8/185;background-size:500% 1049.72972973%;background-position:100% 100.00000000%}

.mp-wallet{padding:22px;background:#f1f3e9;border:1px solid #d8dfd0;border-radius:18px;margin:24px 0}.mp-balance{display:flex;justify-content:space-between;align-items:center;gap:16px}.mp-balance strong{display:block;font-size:30px}.mp-balance p{font-size:13px}.mp-balance button{width:auto}.mp-shortcuts{display:flex;border-top:1px solid #d8dfd0;padding-top:18px;margin-top:16px;gap:12px}.mp-shortcuts button{flex:1;background:#fffdf7;color:#285849;border:1px solid #d8dfd0}.mp-shortcuts svg{display:block;width:25px;height:25px;margin:0 auto 8px;fill:none;stroke:currentColor;stroke-width:1.5}#management-status:empty{display:none}
.mp-wallet>h3{margin:0 0 18px;font-size:17px}.mp-benefit-item{border-top:1px solid #d8dfd0;margin-top:18px;padding-top:18px}.mp-benefit-item>div,.mp-subscription-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mp-wallet h4{margin:0;font-size:14px}.mp-benefit-item strong{font-size:24px}.mp-benefit-item>p,.mp-subscription>p{margin:8px 0 0}.mp-subscription{background:#fffdf7;border:1px solid #d8dfd0;border-radius:12px;padding:16px;margin-top:18px}.mp-subscription-header>span{font-size:12px;color:#4d6556}.mp-benefit-counts{display:grid;grid-template-columns:1fr 1fr;margin:18px 0 0;gap:14px}.mp-benefit-counts>div+div{border-left:1px solid #d8dfd0;padding-left:14px}.mp-benefit-counts dt{font-size:12px;color:#69766b}.mp-benefit-counts dd{margin:8px 0 0;font-size:25px;font-weight:700}.mp-wallet small{font-weight:400}#mp-benefits-status{margin:14px 0 0;font-size:11px;overflow-wrap:anywhere}#mp-benefits-status:empty{display:none}.mp-wallet[aria-busy="true"] :is(.mp-balance strong,.mp-benefit-counts dd,.mp-benefit-item strong){color:#798674}@media(max-width:400px){.mp-wallet{padding:16px}.mp-balance{gap:10px}.mp-balance button{padding:10px 12px}.mp-subscription{padding:13px}.mp-subscription-header{align-items:flex-start;flex-direction:column;gap:6px}.mp-benefit-counts{gap:10px}.mp-benefit-counts>div+div{padding-left:10px}}

/* Approved shared member header: home and all beta views. */
body #member{font:14px/1.4 system-ui,-apple-system,sans-serif;gap:8px}
body #member span{font:400 14px/1.4 system-ui,-apple-system,sans-serif}
body #member :is(#logout,.logout){font:600 14px/1.4 system-ui,-apple-system,sans-serif;background:#eef1e5;color:#244335;border:1px solid #d6dfd3;border-radius:8px;padding:8px 12px;margin:0;white-space:nowrap}

/* Approved single-row inner page header */
body>header{flex-wrap:nowrap;align-items:center;gap:8px;padding:16px 20px}
body>header #back{background:transparent;border:0;border-radius:0;box-shadow:none;color:#285849;font-size:26px;line-height:1;padding:4px;margin:0;flex:none}
body>header #member{width:auto;max-width:calc(100% - 44px);margin-left:auto;flex-wrap:nowrap;gap:8px}
body>header #member span{font-size:14px;margin:0}
body>header #member #logout{padding:5px 8px;min-height:0;font-size:14px;border-radius:6px;flex:none}

/* Login box has its own title: omit duplicate preamble when visible. */
main:has(>#account:not([hidden]))>:is(.intro,#page-title,#service-intro){display:none}
main:has(>#account:not([hidden])){margin-top:12px}
main:has(>#account:not([hidden]))>#account{margin-top:12px}

/* Social sign-in UI: inactive until provider integration is configured. */
#account .social-login{display:grid;gap:10px;margin:16px 0 0}
#account .social-login button{display:block;width:100%;margin:0;padding:13px 16px;border-radius:10px;font:600 16px/1.4 system-ui,-apple-system,sans-serif;border:0}
#account .social-login button:disabled{opacity:1;cursor:not-allowed}
#account .social-kakao{background:#fee500;color:#191919}
#account .social-naver{background:#03c75a;color:#fff}
#account #social-login-status{font-size:12px;line-height:1.5;color:#687568;margin:0}
#account .login-divider{display:flex;align-items:center;gap:12px;margin:18px 0 0;color:#7a8278;font-size:12px}
#account .login-divider:before,#account .login-divider:after{content:"";height:1px;background:#dce2d8;flex:1}

#account:has(.signup-profile-title){max-width:520px}.signup-profile-title{margin:24px 0 12px;font-size:18px}.signup-profile-note{font-size:13px;line-height:1.5;color:#657367}


/* Approved generation screen: scoped to the report request flow. */
#generation-brand,#generation-top-library{display:none}
#birth #generate{display:block;width:100%;background:#315b47;padding:16px;font-weight:650;font-size:16px}
#birth .generation-autosave{font-size:12px;text-align:center;line-height:1.8;color:#78826e;margin:12px 0 0}
#birth:has(#generate[hidden]) .generation-autosave{display:none}
body.generation-active{background:#faf8f0;color:#293e34}
body.generation-active>header{height:66px;max-width:480px;padding:0 22px;justify-content:space-between;border-bottom:1px solid #e8e8dc}
body.generation-active>header #back{color:#315b47;width:40px;padding:10px 0;font-size:25px}
body.generation-active #generation-brand{display:flex;align-items:center;gap:9px;font-weight:750;letter-spacing:-.8px;font-size:20px;white-space:nowrap}
#generation-brand .generation-symbol{width:23px;height:28px;position:relative;display:inline-block;flex:none}
#generation-brand .generation-symbol:before{content:'';position:absolute;left:7px;top:1px;width:10px;height:10px;border-radius:50%;background:#91a977}
#generation-brand .generation-symbol:after{content:'';position:absolute;left:1px;top:10px;width:22px;height:17px;border-radius:40% 40% 50% 50%;background:#315b47}
body.generation-active #generation-top-library{display:flex;align-items:center;justify-content:center;width:40px;padding:10px;color:#315b47}
#generation-top-library svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body.generation-active>main{max-width:480px;margin:0 auto;padding:0}
body.generation-active>main>:is(.intro,#page-title,#service-intro,#workspace,#result,#member-page,#gift-page,#privacy),body.generation-active #member,body.generation-active>.bottom-nav{display:none!important}
body.generation-active #message{margin:0;padding:0 24px;font-size:12px}
body.generation-active #message:empty{display:none}
body.generation-active>footer{padding:14px 22px 22px;font-size:10px;letter-spacing:1px;color:#9b9b8b}
#generation-screen{padding:35px 24px 28px;text-align:center;background:#faf8f0;border:0;border-radius:0;margin:0}
#generation-screen .generation-eyebrow{color:#748568;font-size:11px;letter-spacing:2.5px;font-weight:650;margin:0 0 25px}
#generation-screen .generation-portrait{width:190px;height:190px;margin:0 auto 25px;position:relative;display:grid;place-items:center}
#generation-screen .generation-portrait img{width:166px;height:166px;object-fit:cover;border-radius:50%;display:block}
#generation-screen .generation-orbit{position:absolute;inset:0;border:2px solid #e1e5d7;border-radius:50%}
#generation-screen .generation-orbit:after{content:'';position:absolute;inset:-2px;border:3px solid transparent;border-top-color:#577458;border-right-color:#b8a56c;border-radius:50%;animation:generation-orbit 3.4s linear infinite}
#generation-screen .generation-spark{position:absolute;right:11px;top:5px;color:#9c9158;background:#faf8f0;font-size:20px;padding:2px 6px;line-height:1.2}
#generation-screen .generation-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;background:#eaf0e3;color:#4a6449;font-size:11px;letter-spacing:.2px;border-radius:20px;font-weight:650;margin-bottom:13px}
#generation-screen .generation-dot{height:5px;width:5px;background:#759657;border-radius:50%;animation:generation-breathe 1.8s infinite}
#generation-title{font-size:25px;line-height:1.5;letter-spacing:-1.1px;margin:0;font-weight:700;word-break:keep-all;overflow-wrap:anywhere;white-space:pre-line;outline:none}
#generation-subtext{margin:12px 0 0;font-size:14px;line-height:1.85;color:#737a6c;word-break:keep-all;white-space:pre-line}
#generation-screen .generation-elapsed-row{display:flex;gap:8px;align-items:center;justify-content:center;margin:17px 0 25px;font-size:11px;color:#8c8f82}
#generation-elapsed{font-variant-numeric:tabular-nums;color:#5f6e58;letter-spacing:.5px}
#generation-screen .generation-tip{border:1px solid #dedfce;background:linear-gradient(120deg,#f2f3e7,#f9f7ed);border-radius:17px;padding:21px 22px;text-align:left}
#generation-screen .generation-tip-kicker{font-size:11px;letter-spacing:1px;font-weight:650;color:#6c795f;margin:0 0 13px;display:flex;justify-content:space-between}
#generation-screen .generation-tip-kicker span:last-child{color:#a39b75;font-size:16px;line-height:11px}
#generation-tip-title{font-size:17px;line-height:1.55;letter-spacing:-.6px;margin:0 0 9px}
#generation-tip-body{font-size:13px;line-height:1.85;color:#777c68;margin:0;word-break:keep-all;white-space:pre-line}
#generation-note{margin:23px 0 10px;font-size:11px;color:#858874;line-height:1.8;word-break:keep-all;white-space:pre-line}
#generation-library{display:inline-block;background:none;border:0;padding:10px;color:#5e7056;font-size:12px;text-decoration:underline;text-underline-offset:4px}
#generation-contact,#generation-recheck{display:block;max-width:320px;width:100%;margin:18px auto 6px;padding:14px 18px;border:0;border-radius:10px;background:#315b47;color:#fffef6;font-size:14px;line-height:1.5;text-align:center;text-decoration:none;font-weight:650}
#generation-screen.terminal .generation-orbit:after,#generation-screen.terminal .generation-dot{animation:none}
#generation-screen.terminal .generation-orbit:after{border:2px solid #c6cfb6}
#generation-screen.terminal:is(.hold,.failed) .generation-badge{background:#f2e8d8;color:#8c683d}
#generation-screen.terminal:is(.hold,.failed) .generation-dot{background:#ab8756}
#generation-screen.terminal .generation-elapsed-row{display:none}
#generation-screen.terminal .generation-tip{margin-top:26px}
#generation-screen a:focus-visible,#generation-screen button:focus-visible,#generation-top-library:focus-visible{outline:3px solid #b8a35f;outline-offset:3px}
@keyframes generation-orbit{to{transform:rotate(360deg)}}
@keyframes generation-breathe{50%{opacity:.35}}
@media(max-width:520px){#generation-screen{padding-top:29px}#generation-screen .generation-portrait{width:178px;height:178px;margin-bottom:22px}#generation-screen .generation-portrait img{width:156px;height:156px}#generation-title{font-size:24px}body.generation-active>footer{padding-bottom:18px}}
@media(max-width:350px){#birth .approved-date select{padding-left:6px;padding-right:20px;background-position:right 4px center}#generation-screen{padding-left:18px;padding-right:18px}#generation-title{font-size:22px}#generation-screen .generation-tip{padding:18px}body.generation-active>header{padding:0 16px}}
@media(prefers-reduced-motion:reduce){#generation-screen *,#generation-screen :before,#generation-screen :after{animation:none!important}}
@media print{#generation-screen{display:none!important}}

/* Approved report-first reading layout and compact independent library. */
body.report-reading main>:is(.intro,#page-title,#service-intro),main:has(>#report-list:not([hidden]))>:is(.intro,#page-title,#service-intro){display:none}
body.report-reading main,main:has(>#report-list:not([hidden])){margin-top:12px}
body.report-reading #result{margin:0;padding:22px 26px}
body.report-reading .reader-tools{display:flex;justify-content:flex-end;margin:0 0 10px}
body.report-reading #print{margin:0;padding:8px 12px;font-size:12px;background:#edf1e7;border:1px solid #dae2d2;min-height:36px}
body.report-reading .report-hero{border-radius:16px;margin-bottom:18px;padding:18px 16px}
body.report-reading .report-hero img{max-height:100px}
body.report-reading #report .note{font-size:13px;padding:12px;margin:14px 0;line-height:1.7}
body.report-reading #report table{font-size:14px;margin:16px 0}
body.report-reading #report th,body.report-reading #report td{padding:9px 4px}
body.report-reading #report small{font-size:11px}
body.report-reading #privacy{padding:12px 0;margin:4px 0 0;font-size:12px;color:#657367}
body.report-reading>footer{font-size:12px;padding:24px 0}
#report-list{margin:18px 0 0;padding:16px 22px 5px;border-radius:14px;background:#fffdf7}
#report-list .library-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
#report-list .library-heading h2{font-size:18px;margin:0;color:#244d3c}
#report-list .refresh-compact{margin:0;padding:5px 0 5px 8px;background:none;border-radius:4px;color:#62745f;font-size:12px;min-height:32px}
#report-list .report-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:1px solid #e8ebdf}
#report-list .row-info{min-width:0}
#report-list .row-title{font-weight:600;font-size:14px;display:flex;flex-wrap:wrap;align-items:center;gap:7px}
#report-list .row-info time{font-size:12px;color:#798174;display:block;margin-top:5px}
#report-list :is(.current-tag,.hold-tag,.status-tag){font-size:10px;font-weight:600;border-radius:5px;padding:3px 6px;line-height:1.3}
#report-list .current-tag{color:#355942;background:#e9efe2}
#report-list .hold-tag{color:#94642d;background:#f5ebd7}
#report-list .status-tag{color:#62745f;background:#edf1e7}
#report-list .row-open{margin:0;background:#eaf0e2;color:#2d513e;font-size:12px;padding:8px 10px;min-height:36px;white-space:nowrap;width:auto;flex-shrink:0}
#report-list .row-open:focus-visible,#report-list summary:focus-visible,#report-list .refresh-compact:focus-visible{outline:2px solid #315b47;outline-offset:3px}
#report-list :is(.hold-brief,.status-brief){font-size:11px;color:#947045;line-height:1.5;margin:5px 0 0}
#report-list .hold-info{padding:0;line-height:1.5;flex-shrink:0}
#report-list .hold-info summary{font-size:12px;list-style:none;color:#8b704c;padding:10px 4px;cursor:pointer}
#report-list .hold-info summary::-webkit-details-marker{display:none}
#report-list .report-row:has(.hold-info[open]){flex-wrap:wrap}
#report-list .hold-info[open]{width:100%}
#report-list .hold-info[open] summary{text-align:right;padding:2px 4px 7px}
#report-list .hold-info p{background:#fff9ed;border:1px solid #e9d9b7;border-radius:10px;padding:10px 12px;margin:0;font-size:12px;line-height:1.65}
#report-list .hold-info a{display:inline-block;font-size:12px;margin:8px 0 0;padding:6px 9px;border-radius:6px;background:#f5ebd7;color:#94642d}
#report-list .expired-group{border-top:1px solid #e8ebdf;padding:0;color:#8a9185}
#report-list .expired-group>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;font-size:12px;padding:13px 0;cursor:pointer}
#report-list .expired-group>summary::-webkit-details-marker{display:none}
#report-list .expired-count{font-size:12px}
#report-list .expired-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:9px 0;border-top:1px solid #eceee5}
#report-list .empty-reports{font-size:13px;color:#657367;margin:8px 0 12px;line-height:1.7}
@media(max-width:520px){body.report-reading #result{padding:16px 18px 22px}#report-list{padding:14px 16px 4px}}
@media(max-width:340px){body.report-reading #result{padding:14px}#report-list{padding-left:12px;padding-right:12px}#report-list .row-title{gap:4px}#report-list .row-info time{font-size:11px}#report-list :is(.hold-brief,.status-brief){font-size:10px}}
@media print{#report-list,.reader-tools{display:none!important}body.report-reading #result{border:0;padding:0;margin:0}}

/* Approved customer information card before the saved chart. */
#report .report-profile-card{border:1px solid #d8dfd0;border-radius:12px;padding:16px 18px;background:#f5f7ef;margin:0 0 20px;break-inside:avoid}
#report .report-profile-card h2{margin:0 0 12px;font-size:17px;font-weight:700;line-height:1.5;color:#285849}
#report .report-profile-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;margin:0}
#report .report-profile-grid .wide{grid-column:1/-1}
#report .report-profile-grid dt{font-size:12px;line-height:1.5;color:#71806e;margin:0 0 3px}
#report .report-profile-grid dd{font-size:14px;line-height:1.65;color:#28463b;margin:0;overflow-wrap:anywhere}
#report .report-profile-grid .calendar{display:inline-block;max-width:100%;box-sizing:border-box;vertical-align:middle;background:#fffdf7;border:1px solid #ced9c8;color:#47634a;border-radius:4px;padding:1px 6px;font-size:11px;line-height:1.6}
#report .report-profile-missing{font-size:13px;color:#71806e;line-height:1.7;margin:0}
#report .chart-caption{font-size:13px;font-weight:600;color:#47634a;margin:0 0 4px}
@media(max-width:350px){#report .report-profile-card{padding:14px}#report .report-profile-grid{column-gap:12px}}

/* Question first: extract existing answers; keep manuscript and emphasis intact. */
#report .report-key-summary{background:#f1f5ed;border:1px solid #d4dfcc;border-radius:12px;padding:18px;margin:22px 0 30px;break-inside:avoid}
#report .report-key-summary h3{font-size:18px;margin:0 0 14px;color:#285849}
#report .report-key-summary dl{margin:0;display:grid;gap:14px}
#report .report-key-summary dt{font-size:13px;font-weight:700;margin:0 0 4px}
#report .report-key-summary dd{margin:0;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
#report .section-answer{margin-top:10px}
/* Basis paragraphs use the same body typography; semantic class is retained. */

/* Approved per-section title and extractive customer-specific subtitle. */
#report h2.report-section-title{font-size:22px;line-height:1.5;margin-bottom:8px}
#report .report-section-subtitle{font-size:20px;line-height:1.55;font-weight:600;color:#366a42;margin:7px 0 14px;overflow-wrap:anywhere}
@media(max-width:520px){#report h2.report-section-title{font-size:20px}#report .report-section-subtitle{font-size:18px}}
@media print{#report .report-section-subtitle{break-after:avoid}}

/* Approved clickable terms use blue; the surrounding emphasis retains its green/black style. */
#report button.saju-term{color:#1d4ed8!important}
#report strong button.saju-term{color:#1d4ed8!important;font-style:normal!important;text-decoration:none!important}

/* Account lifecycle controls stay separate from report presentation. */
.account-management{max-width:600px;margin:20px auto;padding:24px;background:#fffefa}
.account-management h2{font-size:23px;margin:0 0 12px;color:#175232}
.account-management h3{font-size:18px;margin:0 0 10px}
.account-management h4{font-size:16px;margin:0 0 8px}
.account-management p{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.account-intro{color:#657367;margin-top:0}
.account-connections{display:grid;gap:10px;margin:18px 0}
.account-connection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:#f4f7ef;border:1px solid #d6dfd3;border-radius:10px}
.account-connection strong,.account-connection small{display:block}
.account-connection small{margin:3px 0 0}
.account-connection button{margin:0;flex:none;padding:9px 12px;font-size:14px}
.account-withdraw-entry{border-top:1px solid #d6dfd3;padding-top:20px;margin-top:24px}
.account-management .account-danger{background:#884331;color:#fff;font-weight:600}
.account-action-panel{margin:24px 0 0;padding:20px;background:#f6f8f0;border-color:#d6dfd3}
.account-verification{border-top:1px solid #d6dfd3;margin-top:18px;padding-top:18px}
.account-provider-proofs{display:flex;flex-wrap:wrap;gap:8px}
.account-provider-proofs button{margin:4px 0;padding:10px 13px;background:#e6ede3;color:#285849;font-size:14px}
.account-provider-proofs button:disabled{cursor:default}
#account-password-form label{font-size:14px;margin-top:18px}
#account-password-form button{margin-top:10px}
.account-final-confirmation{border-top:1px solid #d6dfd3;padding-top:12px;margin-top:20px}
.account-final-confirmation .check{align-items:center}
.account-final-confirmation button{width:100%}
#account-proof-status,#account-action-status,#account-result-status{font-weight:600;color:#244335}
.account-management [aria-busy=true]{cursor:wait}
@media(max-width:400px){.account-management{padding:18px}.account-action-panel{padding:15px}.account-connection{padding:12px}.account-connection button{padding:8px 10px}}
@media print{#account-page,#account-result-page{display:none!important}}

/* Existing report to saved-report consultation, without creating a conversation on navigation. */
#report-list .row-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}
#report-list .row-counsel,.reader-counsel{display:inline-flex;align-items:center;justify-content:center;background:#285849;color:#fff;text-decoration:none;border-radius:8px;font-weight:600}
#report-list .row-counsel{font-size:12px;padding:8px 10px;min-height:36px;white-space:nowrap}
.reader-counsel{font-size:14px;padding:10px 14px;min-height:40px}
#report-list .row-counsel:focus-visible,.reader-counsel:focus-visible{outline:2px solid #315b47;outline-offset:3px}
body.report-reading .reader-tools{gap:10px;flex-wrap:wrap}
@media(max-width:380px){#report-list .report-row{flex-wrap:wrap}#report-list .row-actions{margin-left:auto}}

/* Shared detailed MyPage chart: keep the surrounding approved member layout.
   Reset only the legacy four-pillar grid and its broad b/small typography. */
#mp-pillars.has-detailed-chart{display:block;grid-template-columns:none;gap:0}
#mp-pillars.has-detailed-chart>div{display:grid;text-align:initial;flex-direction:initial;gap:24px}
#member-page #mp-pillars.has-detailed-chart .shared-detailed-charts{margin:16px 0 0}
#member-page #mp-pillars.has-detailed-chart .detailed-chart b{padding:0;border-radius:0;font-weight:400}
#member-page #mp-pillars.has-detailed-chart .person-heading h2{margin:0;font-size:19px}
#member-page #mp-pillars.has-detailed-chart .birth-summary p{font-size:11px;line-height:1.9;margin:2px 0;color:#788276}
#member-page #mp-pillars.has-detailed-chart .chart-caption{font-size:9px;line-height:1.7;margin:11px 18px 13px;color:#96a08c}
#member-page #mp-pillars.has-detailed-chart .hidden-character b{font-size:14px}
#member-page #mp-pillars.has-detailed-chart .chart-table thead small{font-size:9px}
#member-page #mp-pillars.has-detailed-chart .own-master small{font-size:9px}
#member-page #mp-pillars.has-detailed-chart .element-bar-label small{font-size:9px}
#member-page #mp-pillars.has-detailed-chart .element-heading h3{font-size:12px;margin:0}
@media(max-width:700px){#member-page #mp-pillars.has-detailed-chart .person-heading h2{font-size:17px}#member-page #mp-pillars.has-detailed-chart .birth-summary p{font-size:10px}#member-page #mp-pillars.has-detailed-chart .chart-caption{font-size:8px;margin:9px 10px 12px}#member-page #mp-pillars.has-detailed-chart .hidden-character b{font-size:12px}#member-page #mp-pillars.has-detailed-chart .element-bar-label small{font-size:8px}}
/* MyPage stays a narrow single column even in a wide desktop viewport. */
#mp-pillars.has-detailed-chart .hidden-stem{display:flex;flex-direction:column;gap:2px}
#mp-pillars.has-detailed-chart .chart-table td button.saju-term{white-space:nowrap!important}
/* The shared chart already provides its own card and spacing. MyPage's generic
   section padding must not nest inside it and squeeze the four columns. */
#member-page .mp-chart:has(#mp-pillars.has-detailed-chart){padding:0;border:0;background:transparent}
#member-page #mp-pillars.has-detailed-chart .detailed-chart{padding:0;margin:0}
#member-page #mp-pillars.has-detailed-chart .chart-table-wrap{padding:0 8px}
#member-page #mp-pillars.has-detailed-chart .chart-table thead th:first-child{width:42px}
#member-page #mp-pillars.has-detailed-chart .elements{padding:15px 0 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
#member-page #mp-pillars.has-detailed-chart .element-bar-label small{display:inline;margin-top:0}

/* Shared explicit menu purchase choice; no operating payment activation. */
.menu-purchase{margin-top:24px;padding:20px;border:1px solid #d3ddcf;border-radius:14px;background:#f4f6ee;color:#243e37}.menu-purchase h3{margin:0 0 10px;padding:0;border:0;font-size:19px}.menu-purchase p{margin:10px 0}.menu-purchase-balance{font-size:14px;line-height:1.7;color:#526c5a}.menu-purchase-field{display:flex;flex-direction:column;gap:7px;margin:15px 0;font-size:14px;font-weight:600}.menu-purchase-field select,.menu-purchase-field input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #a9b8aa;border-radius:9px;background:#fff;color:#243e37;font:inherit}.menu-purchase-summary{padding:12px;border-radius:8px;background:#fffefa;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.menu-purchase-consent{display:flex;align-items:flex-start;gap:10px;margin-top:16px;font-size:14px;font-weight:400;line-height:1.7}.menu-purchase-consent input{flex:none;width:20px;height:20px;margin:3px 0 0;accent-color:#285849}.menu-purchase-status{font-size:14px;color:#8b4a27;line-height:1.7}.menu-purchase-refresh{display:inline-block;width:auto;padding:8px 0;border:0;background:none;color:#315d46;font-size:13px;text-decoration:underline;cursor:pointer}.menu-purchase :disabled{opacity:.58;cursor:default}.menu-purchase [hidden]{display:none!important}@media(max-width:520px){.menu-purchase{padding:16px}.menu-purchase-summary{padding:10px}}@media print{.menu-purchase{display:none!important}}

/* New subscription entry stays inside the authenticated member wallet. */
#mp-subscription-buy{width:auto;margin-top:14px;padding:9px 14px;font-size:13px}.subscription-purchase-panel{margin:24px 0;padding:22px;border:1px solid #ccd7c6;border-radius:18px;background:#fffdf7}.subscription-purchase-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.subscription-purchase-heading h3{margin:0;font-size:20px}.subscription-purchase-heading button{width:auto;padding:7px 13px;font-size:13px}.subscription-purchase-panel>p{font-size:14px;line-height:1.8}.subscription-plan-field{display:flex;flex-direction:column;gap:8px;margin:20px 0 14px;font-size:14px;font-weight:650}.subscription-plan-field select{width:100%;min-height:48px;padding:11px 12px;border:1px solid #a9b8aa;border-radius:9px;background:#fff;color:#243e37;font:inherit}.subscription-plan-description{padding:14px;background:#edf0e4;border-radius:10px;font-weight:650}.subscription-purchase-terms,.subscription-purchase-notice{color:#64715f}.subscription-terms-choice{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-size:14px;line-height:1.8}.subscription-terms-choice input{width:20px;height:20px;flex:none;margin:4px 0 0;accent-color:#285849}.subscription-purchase-status{padding:13px;border-radius:10px;background:#edf0e4;overflow-wrap:anywhere}.subscription-purchase-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.subscription-purchase-buttons button{width:auto;flex:1;min-width:160px}.subscription-purchase-panel[aria-busy="true"]{opacity:.85}.subscription-purchase-panel [hidden]{display:none!important}@media(max-width:520px){.subscription-purchase-panel{padding:16px}.subscription-purchase-heading h3{font-size:18px}.subscription-purchase-buttons button{width:100%;flex:auto}}@media print{#mp-subscription-buy,.subscription-purchase-panel{display:none!important}}

/* Subscription changes reuse the isolated cash selector; preparing a quote is not payment consent. */
.subscription-management-entry{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.subscription-management-entry button{width:auto;font-size:13px;padding:9px 13px}.subscription-failure-notice{font-size:13px;line-height:1.8;overflow-wrap:anywhere;color:#795636}.subscription-change-panel{padding:22px;margin:24px 0;border:1px solid #ccd7c6;border-radius:18px;background:#fffdf7}.subscription-change-panel>p{font-size:14px;line-height:1.8}.subscription-change-selector--prepare .menu-purchase-consent{display:none}.subscription-change-panel #prepare-subscription-change{width:auto;margin-top:16px}.subscription-change-quote{padding:16px;background:#edf0e4;border-radius:12px;margin-top:18px}.subscription-change-quote h4{font-size:17px;margin:0 0 12px}.subscription-change-quote p{font-size:14px;line-height:1.8;margin:8px 0}.subscription-change-quote dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px 12px;font-size:14px;margin:0}.subscription-change-quote dt{color:#64715f}.subscription-change-quote dd{margin:0;overflow-wrap:anywhere}.subscription-change-panel [hidden]{display:none!important}.subscription-change-panel[aria-busy="true"]{opacity:.85}@media(max-width:520px){.subscription-change-panel{padding:16px}.subscription-management-entry button{width:100%}.subscription-change-quote{padding:13px}.subscription-change-quote dl{grid-template-columns:95px minmax(0,1fr);gap:9px}}@media print{.subscription-management-entry,.subscription-change-panel,.subscription-failure-notice{display:none!important}}

/* Subscription stop/refund stays in the owner wallet; closed or unknown requests never resubmit. */
.subscription-cancellation-entry{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.subscription-cancellation-entry button{width:auto;font-size:13px;padding:9px 13px}.subscription-cancellation-notice{font-size:13px;line-height:1.8;color:#456150;overflow-wrap:anywhere}.subscription-resolution-panel{padding:22px;margin:24px 0;border:1px solid #ccd7c6;border-radius:18px;background:#fffdf7}.subscription-resolution-panel>p{font-size:14px;line-height:1.8}.subscription-resolution-panel .subscription-resolution-policy{font-size:13px;color:#64715f}.subscription-resolution-panel[aria-busy="true"]{opacity:.85}.subscription-resolution-panel [hidden]{display:none!important}@media(max-width:520px){.subscription-resolution-panel{padding:16px}.subscription-cancellation-entry button{width:100%}}@media print{.subscription-cancellation-entry,.subscription-cancellation-notice,.subscription-resolution-panel{display:none!important}}
