*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#F7F4FC;color:#28232E;font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
body{padding:0}.test-shell{width:min(100%,420px);min-height:100dvh;margin:0 auto;background:#F7F4FC}
.test-head{position:sticky;top:0;z-index:50;height:54px;padding:0 14px;display:flex;align-items:center;justify-content:flex-start;background:rgba(255,255,255,.97);border-bottom:1px solid #F0ECF3}
.test-back{flex:0 0 36px;width:36px;height:36px;margin-right:4px;border:0;background:transparent;color:#302A35;font-size:29px;line-height:1;display:grid;place-items:center;cursor:pointer}
.test-title{min-width:0;text-align:left;font-size:19px;line-height:24px;font-weight:800;letter-spacing:-.35px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.test-head>span:empty{display:none}.test-main{padding:14px 14px 40px}
.test-banner{padding:11px 12px;border:1px solid #E2D9F3;border-radius:14px;background:#F1EBFC;color:#6548B7;font-size:10.5px;font-weight:750;line-height:1.55}
.test-pill{display:inline-flex;align-items:center;height:21px;padding:0 8px;margin-right:6px;border-radius:999px;background:#6749BD;color:#fff;font-size:8.5px;font-weight:900;letter-spacing:.04em}
.card{border:1px solid #E8E2EC;border-radius:18px;background:#fff;box-shadow:0 4px 16px rgba(51,41,65,.035)}
.profile-card{margin-top:12px;padding:16px;display:flex;align-items:center;gap:14px}.avatar{width:62px;height:62px;flex:0 0 62px;border-radius:50%;background:#EEE8FA;border:1px solid #DED4F1;overflow:hidden;display:grid;place-items:center;color:#6749BD;font-size:20px;font-weight:900}.avatar img{width:100%;height:100%;object-fit:cover}.avatar img.default-profile-icon{padding:13px;object-fit:contain}.profile-copy{min-width:0;flex:1}.profile-name-row{display:flex;align-items:center;gap:10px;min-width:0}.profile-name{min-width:0;flex:1;font-size:17px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-edit-inline{flex:0 0 auto;color:#6749BD;text-decoration:none;font-size:10.5px;font-weight:850;white-space:nowrap}.profile-sub{margin-top:5px;color:#928A97;font-size:10px}.profile-coin{margin-top:5px;color:#6749BD;font-size:10.5px;font-weight:900}
.section{margin-top:22px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:0 3px 8px}.section-head h2{margin:0;font-size:14px;font-weight:900}.section-note{font-size:9.5px;color:#9B939F}
.menu-card{overflow:hidden}.menu-row{min-height:69px;padding:0 14px;display:flex;align-items:center;color:inherit;text-decoration:none;border-bottom:1px solid #F0ECF2}.menu-row:last-child{border-bottom:0}.menu-icon{width:40px;height:40px;border-radius:13px;background:#F0EBF9;display:grid;place-items:center;font-size:18px}.menu-copy{flex:1;min-width:0;margin-left:11px}.menu-copy b{display:block;font-size:13.5px}.menu-copy span{display:block;margin-top:3px;color:#908895;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chev{margin-left:8px;color:#B5ADB9;font-size:21px}
.tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:5px;margin:12px 0;padding:4px;border-radius:15px;background:#ECE8F1}.tab{height:36px;border:0;border-radius:11px;background:transparent;color:#88808D;font-size:10.5px;font-weight:850;cursor:pointer}.tab.on{background:#fff;color:#44394E;box-shadow:0 2px 8px rgba(45,37,54,.08)}
.segment{display:flex;gap:6px;overflow:auto;margin:10px 0 0;padding-bottom:2px;scrollbar-width:none}.segment::-webkit-scrollbar{display:none}.chip{height:34px;padding:0 12px;border:1px solid #DED8E4;border-radius:999px;background:#fff;color:#7D7581;font-size:10px;font-weight:850;white-space:nowrap;cursor:pointer}.chip.on{border-color:#D7CBF0;background:#EEE8FA;color:#6749BD}
.list{display:grid;gap:9px;margin-top:11px}.item{padding:13px;border:1px solid #EAE5EE;border-radius:15px;background:#fff}.item-head{display:flex;gap:7px;align-items:center}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#F0EBFA;color:#6749BD;font-size:8.8px;font-weight:900}.badge.gray{background:#F1EFF2;color:#817A84}.badge.green{background:#EDF7EF;color:#4B855B}.badge.red{background:#FFF0F2;color:#B65363}.time{margin-left:auto;color:#AAA2AD;font-size:9px}.item-title{margin-top:9px;font-size:13px;line-height:1.45;font-weight:900}.item-body{margin-top:5px;color:#68616D;font-size:10.5px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item-meta{margin-top:7px;color:#978F9B;font-size:9.5px;line-height:1.55}.actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}.btn,.actions button,.actions a{height:34px;padding:0 11px;border:1px solid #DED8E4;border-radius:10px;background:#fff;color:#625B67;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:850;cursor:pointer}.actions .primary,.btn.primary{border-color:#D9CEF0;background:#F1ECFB;color:#6749BD}.actions .danger{border-color:#F0D8DD;background:#FFFAFB;color:#B54F5E}.actions button:disabled,.btn:disabled{opacity:.45}
.empty,.loading,.error{padding:58px 20px;text-align:center;color:#958D99;font-size:11px;line-height:1.65}.empty strong,.error strong{display:block;margin-bottom:6px;color:#3D3741;font-size:14px}.error{color:#B65363}
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.stat{padding:14px;border:1px solid #E8E2EC;border-radius:15px;background:#fff}.stat span{display:block;color:#928A97;font-size:9.5px}.stat b{display:block;margin-top:5px;font-size:20px}.stat small{display:block;margin-top:3px;color:#A49DA7;font-size:8.5px}
.hero-card{margin-top:12px;padding:18px;border-radius:20px;background:linear-gradient(145deg,#2B2630,#6148A3);color:#fff}.hero-card small{font-size:10px;opacity:.72}.hero-card strong{display:block;margin-top:7px;font-size:31px;line-height:1.1}.hero-card .hero-sub{margin-top:7px;font-size:10px;opacity:.78}
.progress{height:7px;margin-top:9px;border-radius:999px;background:#EEEAF2;overflow:hidden}.progress>span{display:block;height:100%;border-radius:999px;background:#8062D8}
.badge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.badge-card{padding:15px 12px;border:1px solid #E7E1EB;border-radius:16px;background:#fff;min-height:158px}.badge-card.locked{filter:grayscale(.75);opacity:.57}.badge-icon{width:46px;height:46px;border-radius:15px;background:#F0EBFA;display:grid;place-items:center;font-size:24px}.badge-name{margin-top:10px;font-size:12px;font-weight:900}.badge-desc{margin-top:4px;color:#8D8591;font-size:9px;line-height:1.5}.badge-progress{margin-top:10px;color:#7B7280;font-size:9px}
.rank-top{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.rank-podium{padding:14px 6px;border:1px solid #E7E1EB;border-radius:16px;background:#fff;text-align:center}.rank-podium .medal{font-size:21px}.rank-podium b{display:block;margin-top:7px;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-podium strong{display:block;margin-top:4px;font-size:16px;color:#6749BD}.rank-list{margin-top:9px;overflow:hidden}.rank-row{min-height:55px;padding:0 12px;display:grid;grid-template-columns:30px 34px minmax(0,1fr) auto;gap:8px;align-items:center;border-bottom:1px solid #F0ECF2}.rank-row:last-child{border-bottom:0}.rank-no{text-align:center;color:#817985;font-size:11px;font-weight:900}.rank-avatar{width:34px;height:34px;border-radius:50%;background:#EEE9F6;overflow:hidden;display:grid;place-items:center;font-size:11px;font-weight:900;color:#6749BD}.rank-avatar img{width:100%;height:100%;object-fit:cover}.rank-name{font-size:11px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-value{font-size:11px;font-weight:900;color:#4F4654}.my-rank{position:sticky;bottom:12px;margin-top:12px;padding:12px 14px;border-radius:14px;background:#28232E;color:#fff;display:flex;justify-content:space-between;gap:12px;font-size:10.5px;font-weight:800;box-shadow:0 8px 24px rgba(27,22,32,.2)}
.switch-row{margin-top:12px;padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.switch-copy b{display:block;font-size:11px}.switch-copy span{display:block;margin-top:3px;color:#918A95;font-size:9px;line-height:1.4}.switch{width:46px;height:27px;border:0;border-radius:999px;background:#D6D1D9;padding:3px;cursor:pointer}.switch:before{content:'';display:block;width:21px;height:21px;border-radius:50%;background:#fff;transition:transform .18s ease}.switch.on{background:#8062D8}.switch.on:before{transform:translateX(19px)}
.visit-box{margin-top:12px;padding:14px}.visit-status{color:#817985;font-size:10px;line-height:1.55}.nearby{display:grid;gap:7px;margin-top:10px}.nearby-row{padding:10px 11px;border:1px solid #E9E4ED;border-radius:12px;display:flex;align-items:center;gap:10px}.nearby-copy{min-width:0;flex:1}.nearby-copy b{display:block;font-size:10.5px}.nearby-copy span{display:block;margin-top:3px;color:#99919D;font-size:8.8px}.toast{position:fixed;left:50%;bottom:22px;z-index:500;transform:translate(-50%,10px);padding:10px 13px;border-radius:999px;background:rgba(35,31,40,.94);color:#fff;font-size:10px;font-weight:800;opacity:0;pointer-events:none;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:360px){.test-main{padding-left:12px;padding-right:12px}.menu-copy span{font-size:9.5px}.badge-grid{grid-template-columns:1fr}.rank-row{grid-template-columns:27px 31px minmax(0,1fr) auto}}

/* MY test hub parity with production MY */
body.my-test-hub .test-main{padding-bottom:118px}
body.my-test-hub .portal-header{position:sticky!important;top:0!important;z-index:55!important;height:54px!important;padding:0 14px!important;display:flex!important;align-items:center!important;background:rgba(255,255,255,.97)!important;border:0!important;box-shadow:none!important}
body.my-test-hub .portal-brand{height:100%!important;display:flex!important;align-items:center!important;gap:0!important}
body.my-test-hub .portal-logo{width:30px!important;height:34px!important;display:block!important}
body.my-test-hub .portal-logo img{width:30px!important;height:34px!important;display:block!important}
body.my-test-hub .portal-brand strong{font-size:19px!important;font-weight:800!important;letter-spacing:-.025em!important}
.test-settings-card,.test-support-card{overflow:hidden}
.test-language-row{min-height:56px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #EEEAF1}
.test-support-label{font-size:13.5px;font-weight:700;color:#514B56}
.test-language-toggle{height:34px;padding:2px;border-radius:17px;background:#F1EDF6;display:flex;align-items:center}
.test-language-option{height:30px;min-width:52px;padding:0 10px;border:0;border-radius:15px;background:transparent;color:#8F8794;font-size:11px;font-weight:800;cursor:pointer}
.test-language-option.is-on{background:#6749BD;color:#fff}
.test-support-row{min-height:52px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;color:inherit;text-decoration:none;border-bottom:1px solid #EEEAF1}
.test-support-row:last-child{border-bottom:0}
.test-account-actions{margin-top:18px;display:flex;flex-direction:column;align-items:center}
.test-logout-button{width:100%;height:54px;border:0;border-radius:16px;background:#6749BD;color:#fff;font-size:13px;font-weight:900;cursor:pointer}
.test-delete-button{margin-top:8px;min-height:34px;padding:0 12px;border:0;background:transparent;color:#B42318;font-size:12px;font-weight:800;cursor:pointer}
.test-logout-button:disabled,.test-delete-button:disabled{opacity:.55}
.test-message{margin-top:10px;color:#B42318;text-align:center;font-size:11px;line-height:1.5}
.test-legal-links{margin-top:22px;display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap}
.test-legal-links a{color:#8F8794;text-decoration:none;font-size:10.5px;font-weight:700}
.test-legal-divider{color:#C5BDC9;font-size:10px}
.test-hub-toast{position:fixed;left:50%;bottom:calc(82px + env(safe-area-inset-bottom,0px));z-index:2147483600;transform:translate(-50%,12px);max-width:calc(100% - 36px);padding:10px 14px;border-radius:999px;background:rgba(32,29,36,.92);color:#fff;font-size:11px;font-weight:750;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .2s ease}
.test-hub-toast.show{opacity:1;transform:translate(-50%,0)}

/* MY test hub profile + settings refinements */
body.my-test-hub .profile-card{display:flex!important;align-items:center!important}
body.my-test-hub .test-profile-main{display:contents}
body.my-test-hub .test-profile-edit{display:none!important}
body.my-test-hub .test-setting-row{min-height:69px;padding:0 14px;display:flex;align-items:center;color:inherit;text-decoration:none;border-bottom:1px solid #EEEAF1}
body.my-test-hub .test-setting-row:last-child{border-bottom:0}
body.my-test-hub .test-setting-row .menu-icon{flex:0 0 auto}
body.my-test-hub .test-setting-language .test-language-toggle{margin-left:8px;flex:0 0 auto}

/* Common back-header optical alignment fallback for MY pages that only load my-v2.css */
.test-head{align-items:center!important}
.test-back{position:relative!important;font-size:0!important;line-height:0!important;display:grid!important;place-items:center!important}
.test-back::before{content:"";box-sizing:border-box;position:absolute;left:50%;top:50%;display:block;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translate(-38%,-50%) rotate(135deg);transform-origin:center;margin:0}
.test-title{align-self:center!important;line-height:24px!important}
