@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap');
:root{font-family:'Noto Sans TC',sans-serif;color:#183e49;background:#f2f6f8;font-size:16px;--teal:#086b74;--ink:#143d49;--muted:#617783;--line:#dae5e9;--orange:#e7a43a}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ecac43;outline-offset:3px}a{color:inherit;text-decoration:none}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;padding:30px 20px;background:#133f4a;color:white;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800}.brandmark{display:grid;place-items:center;font-size:32px;color:#fac564;border:1px solid #69878c;border-radius:13px;width:47px;height:49px}.brand small{display:block;letter-spacing:2px;font-size:11px;color:#b9d6db;margin-top:5px}.school{font-size:13px;color:#b7d0d5;margin:28px 0 20px}nav{display:grid;gap:9px}nav a{padding:14px 15px;border-radius:10px;color:#c4dce0;display:flex;align-items:center;gap:13px}nav a.active{color:white;background:#2b6069;border-left:3px solid #f2bd5c}nav a:hover{background:#265660}.sidebar-foot{margin-top:auto;border-top:1px solid #3b626b;padding-top:24px;font-size:14px}.sidebar-foot p{font-size:12px;color:#b7d0d5}.domain{font-size:12px;color:#e4c17c}.workspace{margin-left:242px}header{height:74px;padding:0 36px;background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:14px}.demo-label{background:#eef4f6;border:1px solid var(--line);padding:6px 12px;border-radius:20px}.notice{padding:11px 36px;background:#fff7e5;color:#795b24;font-size:13px;line-height:1.8}main{padding:30px 36px;max-width:1550px;margin:auto;min-height:77vh}h1{font-size:29px;line-height:1.35;margin:6px 0 10px;letter-spacing:-.5px}h2{font-size:19px;margin:0 0 16px}h3{font-size:16px;margin:0 0 10px}p{line-height:1.8}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:#1b858b}.muted{color:var(--muted)}.intro{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:25px}.intro p{margin:0;font-size:14px;color:var(--muted)}.tag{font-size:12px;background:#e6f2ef;color:#147267;padding:5px 9px;border-radius:6px}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 4px 14px #143d4903}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:25px}.stat{padding:18px 22px;border:1px solid var(--line);border-radius:13px;background:white}.stat span{font-size:13px;color:var(--muted)}.stat strong{display:block;font-size:27px;margin-top:6px}.stat small{font-weight:400;font-size:13px;color:var(--muted);margin-left:8px}.workgrid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px}.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:22px}label{font-size:14px;color:var(--muted);display:grid;gap:7px}select,input{min-height:44px;border:1px solid #cbdbe0;border-radius:8px;background:white;padding:9px 12px;max-width:100%;color:var(--ink)}input[type=checkbox]{min-height:auto;width:20px;height:20px;accent-color:var(--teal)}.search{flex:1;min-width:130px}.search input{width:100%}.btn{border:1px solid #ccdde2;background:white;color:var(--ink);padding:11px 16px;min-height:44px;border-radius:8px;font-weight:600;font-size:14px}.btn.primary{background:var(--teal);border-color:var(--teal);color:white}.btn.danger{color:#ad3c36}.btn.small{padding:7px 11px;font-size:13px;min-height:38px}.students{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.student{position:relative;display:flex;flex-direction:column;align-items:center;padding:19px 8px 14px;min-height:151px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}.student[aria-pressed=true]{background:#eaf7f5;border:2px solid #218f89;padding:18px 7px 13px}.student .seat{position:absolute;top:9px;left:11px;font-size:12px;color:var(--muted)}.student .check{position:absolute;right:10px;top:9px;color:var(--teal);font-weight:700}.avatar{width:47px;height:47px;border-radius:50%;background:#e8f1f6;display:grid;place-items:center;font-size:23px;margin-bottom:10px}.student:nth-child(3n) .avatar{background:#fff1d6}.student b{font-size:14px}.student small{font-size:12px;color:var(--muted);margin-top:6px}.reward-list{display:grid;gap:10px;margin:18px 0}.reward{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:#f7fafb;border:1px solid var(--line);border-radius:10px;padding:14px 12px;color:var(--ink);font-size:14px}.reward.selected{border-color:var(--teal);background:#e8f5f2}.reward strong{color:var(--teal)}.full{width:100%}.selection{background:#eef5f6;border-radius:10px;padding:14px;font-size:14px;line-height:1.8;margin:16px 0}.hint{font-size:13px;line-height:1.8;color:var(--muted)}.divider{height:1px;background:var(--line);margin:20px 0}.empty{text-align:center;padding:32px;color:var(--muted)}.log{padding:14px 0;border-bottom:1px solid var(--line)}.log p{margin:0;font-size:14px}.log small{font-size:12px;color:var(--muted)}.student-layout{display:grid;grid-template-columns:minmax(260px,1fr) 1.1fr;gap:24px}.character{background:#dfeff4;overflow:hidden;text-align:center;padding:25px 20px 18px;position:relative}.character img{display:block;width:100%;max-width:360px;aspect-ratio:1;object-fit:contain;margin:auto;border-radius:18px}.character .charlabel{background:white;display:inline-block;padding:9px 22px;border-radius:30px;margin-top:14px;font-size:15px}.level{font-size:42px;font-weight:800;color:var(--teal)}progress{width:100%;height:13px;border:none;border-radius:10px;overflow:hidden;background:#e4edf0;accent-color:var(--teal)}progress::-webkit-progress-bar{background:#e4edf0}progress::-webkit-progress-value{background:var(--teal);border-radius:10px}.next{background:#fff6e6;border:1px solid #eddfbf;padding:15px;border-radius:10px;margin:20px 0;font-size:14px;line-height:1.8}.badges{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.badge-card{text-align:center;border:1px solid var(--line);padding:20px 12px;border-radius:13px;background:white}.badge-card .symbol{font-size:34px;display:block;margin-bottom:12px}.badge-card p{font-size:13px;color:var(--muted);margin:5px 0}.badge-card.locked{background:#f5f7f8;color:#6a7d85}.badge-card.locked .symbol{filter:grayscale(1);opacity:.45}.products{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.product-icon{font-size:45px;padding:24px;background:#eef6f7;text-align:center;border-radius:11px;margin-bottom:20px}.product p{font-size:14px;color:var(--muted)}.product .price{font-size:24px;font-weight:800;color:var(--teal)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th{color:var(--muted);font-weight:500;background:#f4f8f9}th,td{padding:13px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settings label{margin:15px 0}.pill{padding:6px 10px;background:#edf4f6;border-radius:6px;font-size:13px}.actions{margin-top:20px;display:flex;justify-content:flex-end;gap:10px}dialog{border:1px solid var(--line);border-radius:18px;width:min(92vw,460px);padding:27px;color:var(--ink)}dialog::backdrop{background:#0c303d77}dialog label{margin:15px 0}#toast{position:fixed;bottom:28px;left:55%;transform:translateX(-50%);background:#123f4a;color:white;padding:15px 24px;box-shadow:0 8px 30px #16394033;border-radius:12px;z-index:10;display:none;max-width:90vw}footer{padding:20px 36px;font-size:12px;color:#6b828b;display:flex;justify-content:space-between}.radio-row{display:flex;gap:9px;margin:14px 0}.color-button{width:44px;height:44px;border-radius:50%;border:3px solid transparent}.color-button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.timeline{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:20px}.milestone{padding:12px 6px;background:#edf4f6;border-radius:9px;text-align:center;font-size:12px}.milestone.active{background:#d9eee9;color:#09675e}.milestone b{display:block;margin-bottom:5px}.caption{font-size:12px;color:var(--muted)}@media(min-width:1450px){.students{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:1100px){.sidebar{width:205px;padding:25px 14px}.brand{font-size:17px}.workspace{margin-left:205px}main{padding:25px 22px}.workgrid{grid-template-columns:1fr 260px;gap:16px}.students{grid-template-columns:repeat(3,minmax(0,1fr))}.products{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.sidebar{position:static;width:auto;padding:15px 18px}.brand small,.school,.sidebar-foot{display:none}nav{display:flex;overflow-x:auto;margin-top:14px;gap:5px}nav a{white-space:nowrap;font-size:14px;padding:11px}.workspace{margin-left:0}header{height:55px;padding:0 20px}.notice{padding:9px 20px}main{padding:24px 20px}.workgrid{grid-template-columns:1fr 255px}.students{grid-template-columns:repeat(2,minmax(0,1fr))}.student-layout{grid-template-columns:1fr 1fr}.timeline{grid-template-columns:repeat(4,1fr)}}@media(max-width:600px){.workgrid,.student-layout,.admin-grid{grid-template-columns:1fr}.students{grid-template-columns:repeat(3,minmax(0,1fr))}.stats{gap:8px}.stat{padding:14px 11px}.stat strong{font-size:23px}.stat small{display:block;margin:3px 0 0}.panel{padding:18px}.intro{align-items:flex-start;flex-direction:column}h1{font-size:25px}.products,.badges{grid-template-columns:repeat(2,1fr)}main{padding:22px 14px}.demo-label{font-size:12px}footer{padding:20px 15px}footer span{display:none}.character img{max-width:290px}.toolbar{gap:9px}.search{width:100%;flex-basis:100%}}
/* Compact desktop teaching workspace */
.teacher-view header{height:44px;padding:0 24px}.teacher-view .notice{padding:5px 24px;font-size:12px;line-height:1.6}.teacher-view main{padding:14px 24px;max-width:none;min-height:0}.compact-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.compact-title h1{font-size:22px;margin:0}.summary-chips{display:flex;gap:16px;font-size:13px;color:var(--muted)}.teacher-view .workgrid{grid-template-columns:minmax(0,1fr) 270px;gap:16px}.teacher-view .panel{padding:14px}.teacher-view .toolbar{gap:8px;margin-bottom:10px;align-items:end;flex-wrap:nowrap}.teacher-view .toolbar label{font-size:13px;gap:4px;min-width:0}.teacher-view .toolbar select,.teacher-view .toolbar input{font-size:14px;min-height:36px;padding:6px 8px;width:100%}.teacher-view .toolbar .search{min-width:85px}.teacher-view .toolbar label:first-child{max-width:155px}.roster-actions{margin-bottom:10px;gap:8px}.roster-actions h2{margin:0;font-size:16px}.roster-actions .row{gap:6px}.teacher-view .btn.small{min-height:34px;padding:6px 9px;font-size:14px}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.student-group{border:1px solid #cfdee3;background:#f3f8f9;border-radius:11px;padding:8px;min-width:0}.group-heading{display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:32px;margin-bottom:6px;font-size:14px}.group-heading small{font-weight:400;font-size:12px;color:var(--muted)}.group-check{display:flex;gap:5px;align-items:center;font-size:13px;cursor:pointer;min-height:32px}.group-check input{margin:0}.group-members{display:grid;gap:6px}.teacher-view .student{flex-direction:row;min-height:48px;padding:5px 8px;gap:8px;text-align:left;border-radius:7px;width:100%}.teacher-view .student[aria-pressed=true]{padding:4px 7px}.teacher-view .student .seat,.teacher-view .student .check{position:static;flex-shrink:0}.teacher-view .student .seat{font-size:14px;font-weight:700;min-width:21px}.teacher-view .student .check{margin-left:auto;font-size:17px}.card-copy{display:grid;gap:2px;min-width:0}.teacher-view .student b{font-size:14px;overflow-wrap:anywhere}.teacher-view .student small{margin:0;font-size:12px}.roster-caption{margin:8px 0 0;line-height:1.5}.reward-panel h2{font-size:17px;margin:0}.teacher-view .reward-list{gap:7px;margin:12px 0}.teacher-view .reward{padding:10px;font-size:14px;min-height:42px}.teacher-view .selection{margin:10px 0;padding:10px;font-size:14px;line-height:1.65}.teacher-view .reward-panel .caption{margin:8px 0 0}.recent-details{margin-top:12px}.recent-details summary{cursor:pointer;font-size:14px;font-weight:600}.teacher-view footer{padding:10px 24px}.favorite-list{display:grid;gap:8px}.favorite-list label{display:flex;align-items:center;gap:10px;margin:0;padding:10px;background:#f4f8f9;border-radius:7px;color:var(--ink)}.favorite-list b{margin-left:auto;color:var(--teal)}.favorite-list input{margin:0;flex-shrink:0}.catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog-grid .reward{gap:8px}.group-editor{max-height:42vh;overflow:auto;padding-right:6px}.group-editor label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:7px 0}.group-editor select{min-height:38px;padding:6px 8px}.catalog-admin{margin-top:24px}.catalog-admin h2{margin-bottom:8px}dialog{max-height:90vh;overflow:auto}dialog:has(.catalog-grid),dialog:has(.favorite-list){width:min(94vw,600px)}
@media(min-width:1200px) and (max-height:800px){.teacher-view .sidebar{width:210px;padding:22px 15px}.teacher-view .workspace{margin-left:210px}.teacher-view .brand{font-size:17px}.teacher-view .school{margin:18px 0 14px}.teacher-view nav a{padding:11px 12px}}
@media(max-width:1100px){.teacher-view main{padding:12px 16px}.teacher-view .workgrid{grid-template-columns:minmax(0,1fr) 235px;gap:10px}.teacher-view .toolbar{flex-wrap:wrap}.teacher-view .toolbar .search{flex-basis:110px}.group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-chips{gap:9px}.compact-title{flex-wrap:wrap}}
@media(max-width:820px){.teacher-view .sidebar{padding:10px 16px}.teacher-view nav{margin-top:8px}.teacher-view header{height:38px}.teacher-view .notice{padding:4px 16px}.teacher-view .workgrid{grid-template-columns:minmax(0,1fr) 235px}.teacher-view .student{min-height:48px}.teacher-view .toolbar .search{flex-basis:100%}}
@media(max-width:600px){.teacher-view .workgrid{grid-template-columns:1fr}.teacher-view main{padding:12px}.group-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.teacher-view .panel{padding:10px}.teacher-view .toolbar{flex-wrap:wrap}.teacher-view .toolbar .search{flex-basis:100%}.teacher-view .toolbar label:first-child{max-width:none;flex:1}.teacher-view .student{padding:6px;gap:5px;min-height:52px}.teacher-view .student[aria-pressed=true]{padding:5px}.teacher-view .student .seat{min-width:18px}.summary-chips{font-size:12px;flex-wrap:wrap}.roster-actions .row{flex-wrap:wrap}.catalog-grid{grid-template-columns:1fr}.teacher-view .notice{font-size:12px}.group-heading{flex-wrap:wrap}}
.layout-switch{display:flex;gap:0;border:1px solid #b9d1d7;border-radius:8px;overflow:hidden}.layout-switch .btn{border:0;border-radius:0;background:#fff}.layout-switch .btn[aria-pressed=true]{background:var(--teal);color:white}.seat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.teacher-view .student.seat-card{position:relative;flex-direction:column;align-items:center;text-align:center;padding:20px 6px 8px;gap:3px;min-height:126px}.teacher-view .student.seat-card[aria-pressed=true]{padding:19px 5px 7px}.teacher-view .seat-card .seat{position:absolute;top:5px;left:8px;font-size:12px;min-width:0}.teacher-view .seat-card .check{position:absolute;top:4px;right:7px;font-size:14px}.roster-character{display:block;width:66px;height:66px;object-fit:cover;border-radius:50%;background:#dfeff4}.teacher-view .seat-card b{line-height:1.4}.teacher-view .seat-card small{line-height:1.4}.teacher-view .roster-actions{align-items:center}.teacher-view .roster-actions>.row{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1100px){.seat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}}
@media(max-width:600px){.seat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-view .roster-actions>.row{justify-content:flex-start}.teacher-view .student.seat-card{min-height:132px}.layout-switch .btn{min-height:40px}}
.role-toolbar{display:flex;align-items:end;gap:14px;margin-bottom:12px;flex-wrap:wrap}.role-toolbar label{font-size:13px;gap:4px}.role-toolbar select{min-height:36px;padding:6px 8px;font-size:14px}.channel-tabs{display:flex;gap:6px;flex-wrap:wrap}.admin-tabs{margin-bottom:20px}.inline-choice{display:flex;align-items:center;gap:5px}.course-row{display:flex;gap:8px;margin:8px 0}.course-row input{min-width:0;flex:1}.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.activity-grid article{padding:18px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.activity-roster{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:10px}.activity-roster details{padding:5px}.activity-roster summary{cursor:pointer;padding:9px;background:#eef5f6;border-radius:6px;font-weight:600}.member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0}.member-row label{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink)}.member-row select{min-height:36px;padding:6px 8px;font-size:14px}.wide-dialog{width:min(94vw,760px)}.teacher-view .seat-card .seat{font-size:12px}.teacher-view .seat-card b{font-size:14px}.teacher-view .seat-card{min-height:140px}.roster-actions h2 small{font-size:12px;font-weight:400;color:var(--muted)}
@media(max-width:1100px){.activity-grid{grid-template-columns:1fr 1fr}.channel-tabs{gap:4px}}@media(max-width:600px){.activity-grid,.form-pair{grid-template-columns:1fr}.role-toolbar{align-items:stretch}.channel-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.course-row{flex-wrap:wrap}.member-row{gap:6px}.member-row label{font-size:13px}.compact-title:has(#role-teacher){flex-direction:column;align-items:start}}
.layered-explorer{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;isolation:isolate}.explorer-layer{position:absolute;inset:0;display:block;background-image:none;background-size:300% 300%;background-repeat:no-repeat;pointer-events:none}.layer-0{background-position:0% 0%}.layer-1{background-position:50% 0%}.layer-2{background-position:100% 0%}.layer-3{background-position:0% 100%}.layer-4{background-position:50% 100%}.layer-5{background-position:100% 100%}.closet-layout{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(400px,1.2fr);gap:24px;align-items:start}.fitting-room{background:linear-gradient(145deg,#e0f2f6,#c9e4eb);text-align:center;position:sticky;top:20px}.fitting-room>.layered-explorer{max-width:460px;margin:-15px auto -5px}.outfit-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.closet-actions{display:flex;gap:8px;justify-content:center;margin-top:22px}.closet-wallet{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:18px}.closet-wallet b{font-size:28px;color:var(--teal)}.closet-tabs,.slot-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.closet-tabs .btn{flex:1}.closet-item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.closet-item{padding:14px}.closet-item.is-preview{border:2px solid var(--teal);padding:13px}.closet-item h3{margin:12px 0}.closet-item .btn+.btn{margin-top:8px}.item-preview{display:block;width:100%;padding:0;border:0;border-radius:10px;background:#edf5f7;cursor:pointer;margin-bottom:12px}.item-preview>.layered-explorer{width:100%;max-width:180px;margin:auto}.purchase-history{margin-top:20px}.character>.layered-explorer{max-width:360px;margin:auto}.teacher-view .seat-card>.layered-explorer{width:66px;height:66px;flex-shrink:0;background:#e2f0f5;border-radius:8px}.teacher-view .seat-card>.layered-explorer .explorer-layer{transform:scale(1.22);transform-origin:center 42%}
@media(max-width:1100px){.closet-layout{grid-template-columns:minmax(260px,.9fr) minmax(280px,1fr);gap:16px}.fitting-room{padding:16px}.closet-actions{flex-wrap:wrap}}
@media(max-width:760px){.closet-layout{grid-template-columns:1fr}.fitting-room{position:static}.fitting-room>.layered-explorer{max-width:310px}.closet-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Registration of independently cropped equipment layers on the same body. */
.explorer-layer{inset:auto;background-size:contain;background-position:center;background-image:none;opacity:0}.wardrobe-ready .explorer-layer{opacity:1}.layer-0{left:27.5%;top:8%;width:45%;height:89%;background-image:var(--wardrobe-part-0)}.layer-1{left:30%;top:5%;width:41%;height:29%;background-image:var(--wardrobe-part-1)}.layer-2{left:37%;top:40%;width:27%;height:27%;background-image:var(--wardrobe-part-2)}.layer-3{left:24%;top:1%;width:54%;height:28%;background-image:var(--wardrobe-part-3)}.layer-4{left:59%;top:42%;width:24%;height:43%;background-image:var(--wardrobe-part-4)}.layer-5{left:28%;top:1%;width:47%;height:27%;background-image:var(--wardrobe-part-5)}html:not(.wardrobe-ready) .layered-explorer::after{content:'角色載入中…';position:absolute;inset:40% 0 auto;text-align:center;font-size:13px;color:#456774}.wardrobe-error .layered-explorer::after{content:'圖片尚未載入'!important}.teacher-view .seat-card>.layered-explorer .explorer-layer{transform:none}
.shop-levels{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.shop-levels .hint{width:100%;margin:3px 0}.layer-collection-0{left:21%;top:-3%;width:60%;height:40%;background-image:var(--collection-0)}.layer-collection-1{left:37%;top:34%;width:27%;height:23%;background-image:var(--collection-1)}.layer-collection-2{left:59%;top:52%;width:22%;height:30%;background-image:var(--collection-2)}.layer-collection-3{left:54%;top:35%;width:37%;height:56%;background-image:var(--collection-3)}.layer-collection-4{left:61%;top:55%;width:21%;height:32%;background-image:var(--collection-4)}.layer-collection-5{left:60%;top:43%;width:24%;height:36%;background-image:var(--collection-5)}.layer-collection-6{left:22%;top:-4%;width:57%;height:40%;background-image:var(--collection-6)}.layer-collection-7{left:36%;top:34%;width:29%;height:23%;background-image:var(--collection-7)}.layer-collection-8{left:55%;top:37%;width:35%;height:53%;background-image:var(--collection-8)}.layer-collection-9{left:57%;top:53%;width:28%;height:27%;background-image:var(--collection-9)}.layer-collection-10{left:57%;top:55%;width:31%;height:31%;background-image:var(--collection-10)}.layer-collection-11{left:53%;top:44%;width:9%;height:12%;background-image:var(--collection-11)}html:not(.collection-ready) [class*="layer-collection-"]{opacity:0}.collection-error .fitting-room:after{content:'新配件圖片載入失敗，請重新整理';font-size:14px;color:#96433b}
.layer-collection-0,.layer-collection-6{left:25%;top:0%;width:51%;height:27%;background-size:100% 100%}
/* Fitted body includes headwear and vest; accessories retain front/back depth. */
.fitted-explorer .fitted-body{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;z-index:1;transform:none;margin:0;filter:none}
.fitted-explorer:after{display:none!important}
.fitted-loading{position:absolute;inset:45% 0 auto;text-align:center;font-size:12px;color:#718477}
.fitted-explorer .explorer-layer{z-index:2}
.fitted-explorer .layer-4{z-index:0;left:53%;top:41%;width:18%;height:35%}
.fitted-explorer .layer-collection-3,.fitted-explorer .layer-collection-8{z-index:0;left:49%;top:38%;width:26%;height:43%}
.fitted-explorer .layer-collection-1,.fitted-explorer .layer-collection-7{left:41%;top:36%;width:15%;height:16%}
.fitted-explorer .layer-collection-11{left:53%;top:47%;width:5%;height:7%}
.fitted-explorer .layer-collection-2{left:59%;top:60%;width:13%;height:19%}
.fitted-explorer .layer-collection-4{left:60%;top:60%;width:10%;height:19%}
.fitted-explorer .layer-collection-5{left:59%;top:54%;width:13%;height:22%}
.fitted-explorer .layer-collection-9{left:58%;top:60%;width:17%;height:17%}
.fitted-explorer .layer-collection-10{left:57%;top:61%;width:19%;height:19%}
/* Single-image outfits: no body-part masks, filters or layered accessories. */
.complete-outfit{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;background:white;border-radius:18px;margin:0 auto;transform:none!important;filter:none!important}
.complete-fitting .complete-outfit{max-width:400px;margin:12px auto}
.item-preview .complete-outfit{max-width:220px;width:100%;height:auto}
.seat-card .complete-outfit{width:66px;height:66px;border-radius:10px;margin:0 auto}
#character-panel .complete-outfit{width:100%;height:auto;max-width:360px;margin:12px auto;transform:none}
#dialog .complete-outfit{max-width:180px;margin:12px auto}
.complete-fitting .closet-actions{margin:12px 0}
.complete-grid .item-preview{width:100%;padding:0;background:white;border-radius:16px}
.outfit-loading{display:grid;place-items:center;aspect-ratio:1;width:100%;min-height:66px;background:#f2f6f8;border-radius:16px;color:#52636e}
.seat-card .outfit-loading{width:66px;height:66px;font-size:12px}
.badge-art{display:block;width:176px;height:176px;max-width:100%;aspect-ratio:1;background-image:url('assets/nine-explorer-badges-41aeac914929.webp');background-repeat:no-repeat;background-size:300% 300%;margin:0 auto 12px;border-radius:20px;background-color:white}
.badge-art-small{width:64px;height:64px;flex-shrink:0;float:left;margin:0 14px 8px 0;border-radius:10px}
.badge-illustrated-log:after{content:'';display:block;clear:both}
.badge-choice-preview .badge-art{width:160px;height:160px}
.badge-card.locked .badge-art{filter:grayscale(1);opacity:.55}
@media(max-width:600px){.badge-art{width:140px;height:140px}.badge-art-small{width:52px;height:52px}}

.reward-photo{display:block;width:100%;height:180px;object-fit:contain;background:#f3f6f8;border-radius:14px;margin-bottom:16px}
.reward-no-photo{display:grid;place-items:center;color:#657785;font-size:14px}
#product-photo-preview .reward-photo{max-width:240px;height:150px}
.product .btn{margin-top:8px}
.character-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.character-choice{border:2px solid #d8e5e9;border-radius:18px;background:#fff;padding:10px;cursor:pointer;display:flex;flex-direction:column;gap:8px;align-items:center;color:inherit;font:inherit}
.character-choice.chosen{border-color:#167d8e;box-shadow:0 0 0 2px #167d8e}
.character-choice:focus-visible{outline:3px solid #df9c2c;outline-offset:3px}
.character-choice>span:not(.outfit-loading){font-size:14px;color:#667782}
.character-choice .complete-outfit{border-radius:12px}
@media(max-width:650px){.character-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
