:root{--bg: #f6f4ef;--surface: #fffdf8;--surface-2: #f2f0ea;--ink: #26231f;--muted: #746f66;--line: #ded9cf;--brand: #7f0019;--brand-deep: #5f1720;--gold: #9a7d4f;--green: #64745f;--blue: #566b78;--shadow: none;--tabbar-height: 68px;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);font-size:15px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,.doc-link,.actions a,a.icon-button{min-height:40px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 12px;border-radius:4px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}button.primary{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:none}button.tonal{background:var(--surface);color:var(--ink);border-color:var(--line)}button:disabled{opacity:.42}button:active,a:active{transform:translateY(1px)}svg{flex:0 0 auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{max-width:760px;min-height:100vh;margin:0 auto;padding:8px 8px calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 16px)}.surface,.panel,.ticket,.hotel,.poster,.form{background:var(--surface);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow)}.auth-page{position:relative;min-height:100vh;overflow-x:hidden;background:#dff3ef;color:var(--ink)}.auth-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,#ffffff05,#ffffff14 52%,#dff3ef66)}.auth-hero{position:relative;height:clamp(318px,43vh,402px);max-width:760px;margin:0 auto;overflow:hidden;background:#dff3ef}.auth-bg{position:absolute;left:0;right:0;top:max(18px,env(safe-area-inset-top));width:100%;height:calc(100% - max(18px,env(safe-area-inset-top)));object-fit:contain;object-position:center top}.auth-hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#00000005,#0000 58%,#0000003d)}.auth-content{position:relative;z-index:2;max-width:760px;margin:-18px auto 0;padding:11px 14px calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;background:linear-gradient(180deg,#ffffff8a,#ffffff5c);border:1px solid rgba(255,255,255,.34);border-bottom:0;border-radius:18px 18px 0 0;box-shadow:inset 0 1px #ffffff57;-webkit-backdrop-filter:blur(12px) saturate(1.08);backdrop-filter:blur(12px) saturate(1.08)}.auth-back{position:absolute;top:max(14px,env(safe-area-inset-top));right:14px;z-index:3;width:44px;height:44px;min-height:44px;border:1px solid rgba(255,255,255,.24);background:#00000052;color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.auth-title h1{margin:0 0 1px;color:var(--brand-deep);font-size:clamp(24px,6.2vw,34px);line-height:1.04;text-shadow:none}.auth-title p{margin:0;color:#57514d;font-size:12px;line-height:1.3;max-width:26em}.auth-card{border-color:#ffffff94;background:#ffffffa8;box-shadow:0 18px 44px #0c0a0829;-webkit-backdrop-filter:blur(18px) saturate(1.12);backdrop-filter:blur(18px) saturate(1.12)}.auth-card.modern-form{gap:7px;padding:8px}.auth-card .form-step{font-size:14px}.auth-card label{gap:5px}.auth-card .label-row{font-size:14px}.auth-card input,.auth-card select{min-height:40px;padding:8px 10px;background:#fffdf9db}.auth-card button{min-height:42px}.auth-card .note-line{color:#5f5b55;font-size:12px;line-height:1.45;margin:2px 0 0}.compact-auth-card{border-radius:12px}.compact-field{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;min-height:56px;padding:7px 12px;border:1px solid rgba(255,255,255,.72);border-radius:9px;background:#fffc;color:#5f5f5f;box-shadow:inset 0 1px #ffffff57}.compact-field input{min-height:40px!important;padding:4px 0!important;border:0;background:transparent!important;border-radius:0;color:var(--ink);font-size:20px;font-weight:700}.compact-field input::placeholder{color:#777;font-weight:700}.auth-button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px}.auth-button-row button{width:100%}.version-stamp{max-width:760px;margin:-8px auto calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 12px);padding:0 10px;color:var(--muted);font-size:11px;line-height:1.5;text-align:center;opacity:.72}.user-bar{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto;align-items:center;gap:9px;margin-bottom:8px;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:4px}.user-bar .avatar{width:38px;height:38px;border-radius:999px;display:grid;place-items:center;background:#ebe7df;color:var(--brand-deep);font-size:13px;font-weight:650}.user-bar b{display:block;color:#25231f;font-size:14px;line-height:1.25}.user-bar span{display:block;color:#777;font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-bar button{min-height:32px;padding:5px 9px;font-size:12px;color:#5b564f;background:#f8f6f1;border-color:var(--line)}.guest-user .avatar{color:#777064}.editable-avatar{position:relative;cursor:pointer;overflow:hidden;border:0;padding:0}.editable-avatar input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.editable-avatar img,.editable-avatar .system-avatar{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.editable-avatar em{position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;display:grid;place-items:center;border-radius:999px;background:#7d2b21eb;color:#fff;font-size:10px;font-style:normal;line-height:1;border:1px solid #fff}.profile-avatar-wrap{position:relative;width:38px;height:38px;display:block;flex:none}.profile-avatar-wrap.me-avatar{width:64px;height:64px;margin:0}.user-bar .profile-avatar-button,.profile-avatar-button{width:100%;height:100%;min-height:0;padding:0;border:0;border-radius:999px;display:grid;place-items:center;overflow:hidden;background:#ebe7df;color:var(--brand-deep);box-shadow:none;font-size:13px;font-weight:650}.profile-avatar-button:active{transform:none;opacity:.78}.profile-avatar-button img,.profile-avatar-button .system-avatar{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.avatar-change-badge{position:absolute;right:-1px;bottom:-1px;z-index:2;width:18px;height:18px;display:grid;place-items:center;border-radius:999px;background:#7d2b21eb;color:#fff;border:1px solid #fff;cursor:pointer;overflow:hidden}.profile-avatar-wrap.me-avatar .avatar-change-badge{right:1px;bottom:1px;width:20px;height:20px}.avatar-change-badge input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.avatar-change-badge em{font-size:10px;font-style:normal;line-height:1;pointer-events:none}.person-avatar{position:relative;width:42px;height:42px;display:block;border-radius:999px}.person-avatar .system-avatar{width:100%;height:100%;display:block;border-radius:inherit}.small-class-avatar{position:relative;overflow:visible!important;box-shadow:0 0 0 2px #cfaa50,0 0 0 4px #fff8e0f5}.small-class-avatar:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:inherit;border:1px solid rgba(151,111,35,.32);pointer-events:none}.small-action{min-width:44px}.hero{overflow:hidden}.hero-visual{margin:0;background:#ede8dc;border-bottom:1px solid var(--line)}.hero-visual img{display:block;width:100%;aspect-ratio:1056 / 584;object-fit:cover}.invite-full-visual img{object-fit:contain;object-position:center;background:#eee9dd}.compact-visual img{aspect-ratio:1056 / 300;object-position:center 55%}.hero-content,.panel,.ticket,.hotel,.form{padding:12px}.hero-topline,.eyebrow,.pill,.label-row,.section-title,.status-card,.wechat,.success-ribbon,.ticket-head,.code-row,.status-row,.route-card,.hotel-head,.metric-line,.source-row,.page-title,.hotel-summary article,.scanner-wrap{display:flex;align-items:center;gap:8px}.hero-topline{justify-content:space-between;color:var(--green);font-size:13px;font-weight:700}.hero-topline span:first-child,.eyebrow{display:inline-flex;align-items:center;gap:7px}.pill,.inline-chip{border:1px solid #ead0cb;background:#fff;color:var(--brand-deep);border-radius:999px;padding:6px 9px}.hero-title-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:12px;align-items:center}h1,h2,.number b,.claim-code{letter-spacing:0}h1{font-size:clamp(25px,6.7vw,38px);line-height:1.14;margin:8px 0 6px;color:var(--ink);font-weight:650}h2{font-size:17px;margin:0;color:var(--ink);font-weight:650}.subtitle{color:var(--muted);line-height:1.48;margin:0}.body,.panel p,.hotel p,.hint{line-height:1.65;color:var(--muted)}.status-card{margin:16px 0;padding:12px;border:1px solid #ead5b0;background:linear-gradient(90deg,#fff7e9,#f8ead6);border-radius:8px;color:var(--muted)}.status-card b{font-size:32px;color:var(--brand)}.status-card span{margin-left:auto;font-size:13px}.fission-home{min-height:0}.fission-home-body{padding:12px}.fission-home h1{font-size:clamp(28px,7vw,38px);margin:6px 0 5px;line-height:1.1}.fission-home .subtitle{font-size:15px;line-height:1.45}.muji-invite{background:var(--surface);border-color:var(--line);color:var(--ink)}.muji-visual{background:#eee9dd;border-bottom-color:var(--line)}.muji-visual img{filter:saturate(.76) contrast(.96)}.muji-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#6b6b62;font-size:12px;line-height:1.35;margin-bottom:12px}.muji-kicker span{display:inline-flex;align-items:center;gap:6px;min-width:0}.muji-kicker span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.muji-kicker span:last-child{flex:0 0 auto;border:1px solid #d9d4ca;border-radius:999px;padding:4px 8px;color:#777064}.muji-invite h1{color:#25231f;font-size:clamp(28px,7vw,38px);font-weight:620;line-height:1.12;margin:2px 0 7px}.muji-invite .subtitle{color:#696969;font-size:14px;line-height:1.55}.fission-gift-card{width:100%;display:grid;grid-template-columns:72px minmax(0,1fr) 22px;gap:10px;align-items:center;margin:12px 0 10px;padding:10px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;text-align:left}.fission-gift-card>img{width:72px;aspect-ratio:1;border-radius:4px;border:1px solid var(--line);object-fit:cover;background:#fffaf2}.fission-gift-card .gift-image-button img{width:72px;aspect-ratio:1;border-radius:4px}.fission-gift-card b{display:inline-flex;align-items:center;gap:6px;color:#2a2926;font-weight:720}.fission-gift-card p{margin:4px 0 0;color:#70706b;font-size:13px;line-height:1.46}.gift-info-card{cursor:pointer}.gift-card-arrow{justify-self:end;color:#9b948b}.fission-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0}.fission-steps span{min-height:34px;display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid var(--line);border-radius:4px;background:#f8f6f1;color:#57534c;font-size:12px;font-weight:600;text-align:center}.compact-fission-steps{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0 10px}.compact-fission-steps span{min-height:0;justify-content:flex-start;gap:4px;border:0;border-radius:0;padding:0;background:transparent;color:#6f6a62;font-size:12px;font-weight:650}.compact-fission-steps span+span:before{content:"";width:4px;height:4px;border-radius:999px;background:#d8d2c8;margin-right:6px}.fission-meta{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}.single-line-meta{margin-top:10px}.fission-meta span{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:5px 8px;color:var(--muted);background:transparent;font-size:12px}.invite-notice{display:flex;align-items:center;gap:8px;margin:12px 0;padding:10px;border:1px solid #d9e5d3;border-radius:8px;background:#f2f7ee;color:#315f36;font-weight:750;line-height:1.45}.fission-main-cta{width:100%;min-height:52px;font-size:17px;box-shadow:none;margin-top:12px}.quiet-link{width:100%;margin-top:8px;border-color:transparent;color:#6f625b;background:#f7f7f5}.muji-dashboard{display:grid;gap:10px;margin-top:14px}.muji-dashboard .claim-sticky{border:1px solid #e5e1d8;background:#faf9f5;border-radius:8px;padding:10px 12px;color:#5f5a52}.muji-dashboard .claim-sticky span{display:inline-flex;align-items:center;gap:7px;font-weight:650}.muji-dashboard .claim-sticky p{margin:5px 0 0;color:#706b63;font-size:12px;line-height:1.45}.muji-dashboard .claim-sticky.eligible{border-color:#d7dfcf;background:#f4f7f0;color:#4d6046}.muji-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.muji-stats.single-stat{grid-template-columns:1fr}.invite-count-card{border:1px solid #e8e4dc;border-radius:8px;background:#fff;padding:12px}.invite-count-card strong{display:block;color:#282622;font-size:28px;line-height:1;font-weight:620}.invite-count-card span{display:block;margin-top:6px;color:#77736b;font-size:12px}.compact-claim-card{margin-top:0;padding:10px;background:#fff}.compact-claim-card img{width:132px;max-width:48%;margin:8px auto 0}.compact-invitee-list{border-top:1px solid #ece8df;padding-top:8px}.compact-invitee-list b{color:#4c4943;font-size:13px;font-weight:650}.compact-invitee-list p{display:flex;align-items:center;gap:6px;margin:6px 0 0;color:#706b63;font-size:13px;line-height:1.4}.muji-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.muji-actions>*{flex:initial;min-height:44px;box-shadow:none}.muji-actions .primary{background:#6f2d25;border-color:#6f2d25}.single-action{display:grid;grid-template-columns:1fr}.single-action>*{flex:initial;min-height:48px}.fission-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.fission-secondary button{min-height:42px;padding:8px 6px;font-size:13px}.info-grid,.stats,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.info,.stat{background:#fffdf8;border:1px solid var(--line);border-radius:8px;padding:12px;min-height:94px}.icon-badge{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:#f7f7f7;color:var(--brand-deep);margin-bottom:8px}.info span,.stat span{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}.info strong{line-height:1.45}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.actions>*{flex:1 1 140px}.section-title{margin:8px 0 10px;align-items:flex-start}.section-title>span{width:28px;height:28px;border-radius:0;display:grid;place-items:center;background:transparent;color:var(--brand-deep)}.section-title p{margin:4px 0 0;font-size:13px;color:var(--muted)}.guest-list,.hotel-list,.route-list{display:grid;gap:8px}.guest{justify-content:space-between;padding:13px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.guest strong{display:block;margin-bottom:6px}.guest span{color:var(--muted);line-height:1.55}.wechat-panel,.gift-panel,.booking-note{margin-top:16px}.wechat{justify-content:center;font-size:27px;font-weight:800;color:var(--brand-deep);padding:12px;background:#f7e5d4;border-radius:8px}.note-line{font-size:13px}.gift-panel{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;align-items:center}.gift-panel img,.claim-panel img{width:100%;border-radius:8px;border:1px solid var(--line);object-fit:cover}.gift-image-button{width:100%;min-height:0;padding:0;border:0;background:transparent;color:var(--muted);display:grid;gap:5px;justify-items:center;font-weight:600}.gift-image-button img{display:block;width:100%;border-radius:8px;border:1px solid var(--line);object-fit:cover;background:#fff}.gift-image-button span{font-size:12px;line-height:1.3}.invite-gift .gift-image-button img{width:92px;aspect-ratio:1}.claim-gift-image{max-width:220px;margin:0 auto 12px}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:grid;place-items:center;padding:18px;background:#000000b8}.image-lightbox-inner{width:min(520px,100%);display:grid;gap:12px;justify-items:center;padding:14px;border-radius:8px;background:var(--surface)}.image-lightbox-inner img{display:block;width:100%;max-height:68vh;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff}.image-lightbox-inner b{color:var(--ink);font-size:20px;line-height:1.3}.image-lightbox-inner button{width:100%;min-height:48px}.gift-dialog{align-items:start;justify-items:stretch}.gift-dialog img{max-height:46vh}.gift-dialog-copy{display:grid;gap:7px}.gift-dialog-copy p{margin:0;color:#4c4943;line-height:1.55}.gift-dialog-copy ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.6;font-size:14px}.gift-dialog-copy li+li{margin-top:3px}.invite-clean{overflow:hidden}.invite-clean-body{padding:14px}.invite-facts{display:grid;gap:0;margin:12px 0 0;border-top:1px solid #ededed}.invite-facts p{display:flex;align-items:center;gap:8px;margin:0;padding:9px 0;border:0;border-bottom:1px solid #ededed;border-radius:0;background:transparent;color:#696969;line-height:1.45}.invite-facts svg{color:#777064}.invite-gift{display:grid;grid-template-columns:92px minmax(0,1fr) 22px;gap:12px;align-items:center;margin:14px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.invite-gift>img{width:92px;aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:8px}.invite-gift b{display:inline-flex;align-items:center;gap:6px;color:var(--brand-deep)}.invite-gift p{margin:6px 0 0;color:var(--muted);line-height:1.55;font-size:14px}.invite-fission h1{margin-bottom:8px}.invite-gift-hero{grid-template-columns:92px minmax(0,1fr);border-color:#ededed;background:#fff;box-shadow:none}.invite-gift-hero>img{width:92px}.invite-rule-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 16px}.invite-rule-strip span{min-height:40px;display:flex;align-items:center;justify-content:center;gap:5px;text-align:center;border:1px solid #ededed;border-radius:8px;background:#fafafa;color:#57534c;font-size:12px;font-weight:650}.invite-cta{width:100%;margin-top:8px}.invite-code{margin:12px 0 0;color:#9a9a92;text-align:center;font-size:12px}.tabs{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(760px,100vw);min-height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,1fr);align-items:end;overflow:visible;background:#fffffffa;border:1px solid rgba(232,232,232,.95);border-bottom:0;border-radius:8px 8px 0 0;padding:5px 8px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -6px 18px #0000000f;z-index:1000;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.app-tabs{grid-template-columns:repeat(5,1fr)}.tabs button{border:0;background:transparent;min-height:54px;color:#6d665f;display:flex;flex-direction:column;gap:3px;padding:5px 4px;font-size:13px;font-weight:600}.tabs button svg{width:22px;height:22px}.tabs button.active{background:transparent;color:var(--brand)}.tabs .entry-tab{position:relative;min-height:62px;padding:0;gap:0;transform:translateY(-9px)}.entry-tab-icon{width:62px;height:62px;display:grid;place-items:center;border:1px solid rgba(127,0,25,.18);border-radius:999px;background:var(--brand);color:#fff;box-shadow:0 10px 24px #7f001938,inset 0 1px #fff3}.entry-tab-icon svg{width:30px!important;height:30px!important;color:#fff}.entry-tab-label{position:absolute;left:50%;top:64px;transform:translate(-50%);color:var(--brand-deep);font-size:11px;line-height:1;font-weight:760;white-space:nowrap}.tabs .entry-tab.active .entry-tab-icon{background:var(--brand);color:#fff}.admin-tabs{grid-template-columns:repeat(5,1fr)}.admin-workspace{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 18px)}.admin-workspace .subhead{margin-bottom:8px}.subhead{display:flex;gap:10px;align-items:center;margin-bottom:10px}.subhead h1,.page-title h1{font-size:28px;margin:0 0 2px}.subhead p,.page-title p{margin:0;color:var(--muted)}.icon-button{width:44px;height:44px;padding:0;border-radius:8px}.modern-form{display:grid;gap:14px;padding:18px}.registration-form{gap:10px}.registration-form textarea{min-height:78px}.registration-form small{color:#77736b;font-size:12px;line-height:1.45;font-weight:500}.choice-stack{display:grid;gap:7px}.choice-title{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-weight:750}.choice-row{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fffdf9db;color:#4f4a43;font-size:14px;line-height:1.45}.choice-row input{width:18px;min-height:18px;height:18px;margin:1px 0 0;padding:0;accent-color:var(--brand)}.small-class-fields{display:grid;gap:10px;padding-top:8px;border-top:1px solid rgba(222,217,207,.9)}.form-jump-note{margin:-2px 0 2px;color:#6d675f;font-size:13px;line-height:1.5}.login-card{margin-top:12px}.form-step{display:inline-flex;align-items:center;gap:8px;color:var(--brand-deep);font-weight:800}label,.field-block{display:grid;gap:7px;color:var(--muted);font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);background:#fffdf9;border-radius:8px;min-height:48px;padding:11px 12px;color:var(--ink);outline-color:var(--brand)}textarea{min-height:96px;resize:vertical}.required-star{color:var(--brand);font-style:normal;font-weight:900;margin-left:1px}.gender-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gender-segment button{width:100%;min-height:44px;background:#fffdf9;color:#615b54;border-color:var(--line)}.gender-segment button.active{background:#f4f7f0;border-color:#bdcdb4;color:#395335}.login-support{margin:1px 0 0;color:#5f5b55;font-size:12px;line-height:1.45}.login-support button{min-height:0;padding:0 2px;border:0;background:transparent;color:var(--brand-deep);font-weight:800}.pin-field{display:grid;grid-template-columns:minmax(0,1fr) 78px;gap:8px;align-items:center}.pin-visibility{width:78px;min-height:48px;padding:0 8px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;background:#fffdf9;color:var(--brand-deep);border-color:var(--line);font-size:13px;font-weight:800}.inline-chip{display:inline-flex;align-items:center;gap:7px;width:fit-content}.error{color:var(--brand-deep);background:#b94a351c;padding:10px;border-radius:8px;border:1px solid rgba(185,74,53,.22)}.success-ribbon{margin-bottom:12px;padding:12px;border-radius:8px;background:#e7f0df;border:1px solid #cdddbf;color:#315f36;font-weight:800}.success-wechat{align-items:flex-start}.success-wechat b{display:block;line-height:1.35}.success-wechat span{display:block;margin-top:3px;color:#3f5739;font-size:14px;line-height:1.45;font-weight:650}.ticket{text-align:center;padding:10px}.ticket-head{justify-content:center;color:var(--brand-deep)}.code-row{justify-content:center;flex-wrap:wrap;margin:10px 0}.code-row span{color:var(--muted)}.code-row b{font-size:24px;color:var(--brand-deep)}.ticket p{display:flex;justify-content:center;align-items:center;gap:7px;color:var(--muted)}.ticket img{width:min(720px,calc(100vw - 16px));max-width:100%;background:#fff;padding:6px;border-radius:8px;border:1px solid var(--line)}.qr-wrap{position:relative;display:block;width:fit-content;max-width:100%;margin:8px auto;border-radius:8px;overflow:hidden}.qr-wrap img{display:block;margin:0}.qr-wrap.done:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:#46464694;-webkit-backdrop-filter:grayscale(1);backdrop-filter:grayscale(1)}.qr-wrap.done:after{content:attr(data-label);position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-10deg);min-width:5em;padding:10px 16px;border:4px solid rgba(255,255,255,.9);border-radius:10px;background:#232323b8;color:#fff;font-size:clamp(34px,9vw,72px);line-height:1;font-weight:950;letter-spacing:0;text-align:center;box-shadow:0 8px 24px #00000038}.ticket-qr-state{width:fit-content;max-width:100%;display:inline-flex;align-items:center;gap:7px;margin:2px auto 8px;padding:8px 12px;border-radius:999px;border:1px solid #d8d1c4;background:#fffaf2;color:var(--brand-deep);font-weight:900}.ticket-qr-state.ok{border-color:#b7d6ac;background:#ecf6e7;color:#286438}.ticket-prize-qrs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}.ticket-prize-qr{min-width:0;padding:12px;border:2px solid var(--line);border-radius:8px;background:#fff;text-align:center;box-shadow:var(--shadow)}.ticket-prize-qr>div{display:flex;align-items:center;justify-content:center;gap:7px;min-height:32px;font-weight:900}.qr-status{width:fit-content;max-width:100%;display:inline-flex;align-items:center;justify-content:center;margin:6px auto 2px;padding:6px 10px;border-radius:999px;background:#fff3c8;color:#8b6412;font-size:14px;font-weight:900}.ticket-prize-qr.invite .qr-status{background:#e5f4df;color:#286438}.qr-status.done{background:#ece7df!important;color:#6d665d!important}.ticket-prize-qr img{width:min(245px,100%);aspect-ratio:1;margin:8px auto;display:block;padding:8px;border-radius:8px;background:#fff}.ticket-prize-qr .qr-wrap{margin:8px auto}.ticket-prize-qr .qr-wrap img{margin:0}.ticket-prize-qr .qr-wrap.done:after{font-size:clamp(26px,7vw,42px)}.ticket-prize-qr p{margin:0 auto;max-width:18em;color:var(--muted);font-size:12px;line-height:1.45}.ticket-prize-qr .qr-finished-note{display:grid;place-items:center;min-height:110px;margin:8px auto;border-radius:8px;border:1px solid var(--line);background:#ffffffb8;color:#6d665d;font-weight:800}.ticket-prize-qr.quiz{border-color:#d3ae45;background:#fffaf0}.ticket-prize-qr.quiz>div{color:#8b6412}.ticket-prize-qr.quiz img{border:4px solid #d3ae45;box-shadow:inset 0 0 0 3px #fff3c8}.ticket-prize-qr.invite{border-color:#76a96b;background:#f5fbf1}.ticket-prize-qr.invite>div{color:#286438}.ticket-prize-qr.invite img{border:4px dashed #76a96b;box-shadow:inset 0 0 0 3px #e5f4df}.status-row{justify-content:center;flex-wrap:wrap;margin-top:12px}.status-row span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#fffdf8}.status-row .ok{color:#286438;border-color:#c4dcb6;background:#ecf6e7}.me-tab{display:grid;gap:10px}.me-profile{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:center}.me-avatar{width:64px;height:64px;border-radius:999px;background:#ebe7df}.me-profile h2{margin:0 0 3px;font-size:22px;line-height:1.18}.me-profile p{margin:0;font-size:13px;line-height:1.35;color:var(--muted)}.me-profile span{display:inline-block;margin-top:6px;color:#8b867d;font-size:12px}.me-ticket{padding:14px}.me-ticket img{width:min(560px,calc(100vw - 42px));max-width:100%}.me-info-form{gap:10px}.me-empty{display:grid;gap:10px;text-align:center}.me-empty>svg{justify-self:center;color:var(--brand-deep)}.course-status-list{display:grid;gap:7px}.course-status{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#f8f8f6;padding:9px 10px}.course-status span{display:inline-flex;align-items:center;gap:6px;color:#5f5a52;font-weight:750;min-width:0}.course-status b{color:#77736b;font-size:13px;white-space:nowrap}.course-status p{grid-column:1 / -1;margin:0;color:#7b756c;font-size:12px;line-height:1.42}.course-status button{grid-column:1 / -1;min-height:36px;margin-top:2px}.course-status.ok{background:#f3f8ef;border-color:#ccdcbf}.course-status.ok span,.course-status.ok b{color:#315f36}.game-entry-card{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:12px;align-items:center;border-color:#e6e1d8;background:linear-gradient(180deg,#fffdf8,#f9f7f1)}.game-entry-card span{display:inline-flex;align-items:center;gap:6px;color:var(--brand-deep);font-size:12px;font-weight:780}.game-entry-card h2{margin:5px 0 4px;font-size:20px;line-height:1.22}.game-entry-card p{margin:0;color:#6b665e;font-size:13px;line-height:1.45}.game-entry-card button{min-height:48px}.achievement-panel{display:grid;gap:8px}.achievement-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.achievement-list button{min-height:92px;display:grid;align-content:center;justify-items:start;gap:4px;padding:10px;text-align:left;background:#fff}.achievement-list span{color:#fff;background:var(--brand);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.achievement-list b{color:var(--ink);font-size:14px}.achievement-list small{color:var(--muted);font-size:12px;line-height:1.3}.achievement-empty{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;color:var(--muted)}.achievement-empty p{margin:0;font-size:13px;line-height:1.45}.game-tab,.game-page{display:grid;gap:10px;background:#f7f5ef}.game-start-card{position:relative;overflow:hidden;display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.game-start-card>*{position:relative;z-index:1}.game-ambassador{display:grid;grid-template-columns:60px minmax(0,1fr);gap:10px;align-items:center}.game-ambassador img{width:60px;height:60px;border-radius:0;object-fit:contain;border:0;background:transparent;box-shadow:none;filter:drop-shadow(0 8px 12px rgba(0,0,0,.1))}.game-ambassador span{display:block;color:var(--brand-deep);font-size:11px;font-weight:820}.game-ambassador b{display:block;color:var(--ink);font-size:16px;line-height:1.25}.game-ambassador small{display:block;color:var(--muted);font-size:12px;line-height:1.35}.game-ambassador.compact{grid-template-columns:44px minmax(0,1fr);gap:8px;min-width:0}.game-ambassador.compact img{width:44px;height:44px}.game-ambassador.compact b{font-size:14px}.game-ambassador.compact small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-ambassador.hero{grid-template-columns:minmax(142px,42%) minmax(0,1fr);align-items:end;gap:12px;padding:0 2px}.game-ambassador.hero img{width:min(220px,44vw);height:min(220px,44vw);justify-self:center;animation:ambassadorFloat 3.4s ease-in-out infinite}.game-ambassador.hero span{font-size:12px}.game-ambassador.hero b{font-size:20px}.game-ambassador.hero small{margin-top:2px;font-size:13px}.game-start-copy{display:grid;gap:4px}.game-start-copy>span{color:var(--brand-deep);font-size:12px;font-weight:850}.game-start-copy h1{margin:0;font-size:24px;line-height:1.14;font-weight:720;color:#211f1b}.game-start-copy p{margin:0;color:#676158;font-size:13px;line-height:1.45}.game-start-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-start-rules article{min-width:0;display:grid;gap:4px;padding:9px 8px;border:1px solid #e6e0d5;border-radius:8px;background:#ffffffa3}.game-start-rules svg{color:var(--brand-deep)}.game-start-rules b{color:var(--ink);font-size:13px;line-height:1.2}.game-start-rules span{color:var(--muted);font-size:11px;line-height:1.25}.game-start-button{width:100%;min-height:48px;font-size:16px}.game-rank-ticker{min-width:0;display:inline-flex;align-items:center;gap:6px;color:#655f56;font-size:12px;font-weight:720}.game-rank-ticker svg{color:var(--gold)}.game-rank-ticker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yesterday-top-card{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:8px 12px;padding:12px;border:1px solid #e1d3bd;border-radius:8px;background:linear-gradient(135deg,#fff8e8,#fbf4e8 58%,#f8f6f1);color:var(--ink)}.yesterday-top-kicker{grid-column:1 / -1;display:inline-grid;grid-template-columns:18px auto auto;align-items:center;justify-content:start;gap:6px;color:var(--brand-deep);font-size:13px;font-weight:850}.yesterday-top-kicker svg{color:var(--gold)}.yesterday-top-kicker small{color:#8c8274;font-size:12px;font-weight:650}.yesterday-top-avatar{position:relative;width:72px;height:72px;display:grid;place-items:center;border-radius:999px;background:#fffdf8;box-shadow:0 0 0 3px #fffdf8eb,0 8px 18px #5337191f}.yesterday-top-avatar .person-avatar,.yesterday-top-avatar .system-avatar{width:100%;height:100%;border-radius:999px}.yesterday-top-avatar i{position:absolute;left:50%;top:-8px;width:28px;height:28px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(160,117,39,.42);background:#fff8df;color:#a07527;transform:translate(-50%);box-shadow:0 6px 14px #50370f1f}.yesterday-top-name{min-width:0;display:grid;gap:4px}.yesterday-top-name h2{color:#211f1b;font-size:22px;line-height:1.12;font-weight:760}.yesterday-top-name p{margin:0;color:#655f56;font-size:12px;line-height:1.35}.yesterday-top-metrics{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.yesterday-top-metrics article{min-width:0;display:grid;justify-items:center;gap:2px;padding:7px 4px;border:1px solid #e3d8c6;border-radius:8px;background:#fffdf8c7;text-align:center}.yesterday-top-metrics b{color:var(--brand-deep);font-size:22px;line-height:1;font-weight:820}.yesterday-top-metrics span{color:#6f695f;font-size:11px;font-weight:720;line-height:1.15}.yesterday-top-strength{grid-column:1 / -1;margin:0;color:#4f493f;font-size:13px;line-height:1.45}.yesterday-top-gap{grid-column:1 / -1;color:#7b746b;font-size:12px;line-height:1.35}.game-arena{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;overflow-y:auto;background:radial-gradient(circle at 50% -12%,#fffaf0 0,#fffaf0 30%,#f4f1ea 68%,#ebe5dc);padding:max(10px,env(safe-area-inset-top)) 8px max(14px,env(safe-area-inset-bottom));animation:gameArenaIn .16s ease-out both}.game-arena-shell{width:min(760px,100%);min-height:calc(100vh - max(10px,env(safe-area-inset-top)) - max(14px,env(safe-area-inset-bottom)));margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr);gap:10px}.game-arena-head{min-width:0;display:grid;grid-template-columns:42px minmax(0,1fr) minmax(0,auto);gap:8px;align-items:center;padding:4px 0}.game-arena-loading .game-arena-head{grid-template-columns:minmax(0,1fr) auto}.game-exit-button{width:42px;height:42px;min-height:42px;border-radius:999px;border-color:#00000014;background:#ffffffb8;color:#5a554d}.game-arena-stage{align-content:start;animation:gameCardRise .34s ease-out both}.game-feed-page{display:grid;gap:8px}.game-feed-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 2px}.game-feed-head div{min-width:0}.game-feed-head b{display:block;color:var(--ink);font-size:16px;line-height:1.25}.game-feed-head span{display:block;color:var(--muted);font-size:12px}.game-feed-head small{color:var(--brand-deep);border:1px solid #e5ded1;border-radius:999px;padding:4px 8px;background:#fffdf8;white-space:nowrap}.game-timer{min-width:78px;display:inline-grid;grid-template-columns:16px auto auto;align-items:baseline;justify-content:center;gap:4px;padding:7px 10px;border:1px solid #d8d1c6;border-radius:999px;background:#ffffffc7;color:#4e4a43}.game-timer b{display:inline;color:inherit;font-size:19px;line-height:1}.game-timer span{display:inline;color:inherit;font-size:11px}.game-timer.warn{color:#806123;border-color:#e1cb8a;background:#fff8df}.game-timer.danger{color:var(--brand);border-color:#e8beb7;background:#fff4f2;animation:timerPulse .72s ease-in-out infinite}.game-feed-card{display:grid;align-content:start;gap:10px;padding:14px 12px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.game-feed-card.answered{gap:8px}.game-progress{position:relative;height:6px;border-radius:999px;overflow:hidden;background:#ede8df}.game-progress i,.game-progress em{position:absolute;inset:0 auto 0 0;display:block;height:100%;border-radius:inherit;transition:width .22s ease}.game-progress i{background:#7f001938}.game-progress em{background:var(--brand);opacity:.95}.game-topic{justify-self:start;color:var(--brand-deep);border:1px solid #ead0cb;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:760}.game-feed-card h1{margin:0;color:#22201c;font-size:clamp(22px,6vw,30px);line-height:1.25;font-weight:700}.game-feed-card.answered h1{font-size:clamp(20px,5.4vw,26px);line-height:1.22}.game-feed-card p{margin:0;color:#777064;font-size:13px;line-height:1.45}.game-options{display:grid;gap:8px}.game-options button{min-height:54px;display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#fff;text-align:left}.game-options button b{width:32px;height:32px;display:grid;place-items:center;border-radius:999px;background:#f1eee8;color:var(--brand-deep);font-size:14px}.game-options button span{color:var(--ink);line-height:1.4;font-weight:670}.game-options.answered{gap:6px}.game-options.answered button{min-height:42px;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:7px 10px}.game-options.answered button b{width:28px;height:28px;font-size:13px}.game-options.answered button span{font-size:14px;line-height:1.32}.game-options.answered button:not(.selected):not(.correct){background:#fbfaf7;color:#777064}.game-options button:disabled{opacity:1;transform:none}.game-options button.selected{border-color:var(--brand);background:#fff7f6}.game-options button.selected b{background:var(--brand);color:#fff}.game-options button.correct{border-color:#b7d0aa;background:#f4f8f1}.game-options button.correct b{background:#315f36;color:#fff}.game-options button.wrong{border-color:#e6c0ba;background:#fff5f3}.game-options button.wrong b{background:var(--brand);color:#fff}.game-feed-card>small{color:var(--muted);text-align:center}.game-learning-panel{display:grid;gap:8px;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.game-learning-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.game-learning-panel article{min-width:0;display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;align-items:center;padding:7px 6px;border-radius:6px;background:#f8f6f1}.game-learning-panel svg{color:var(--brand-deep)}.game-learning-panel b{display:block;color:var(--ink);font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-learning-panel span{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35}.game-learning-panel p{display:flex;align-items:center;gap:6px;margin:0;padding:0 2px;color:var(--muted);font-size:12px;line-height:1.4}.game-report-summary{display:grid;gap:3px;padding:8px 10px;border-radius:6px;background:#f8f6f1}.game-report-summary b{font-size:13px}.game-report-summary span,.game-report-summary small{color:#6f695f;font-size:12px;line-height:1.45}.game-profile-card{display:grid;gap:7px;padding:11px 10px;border:1px solid #e6ded0;border-radius:8px;background:linear-gradient(180deg,#fff,#fbf8f0)}.game-profile-card>span{display:inline-flex;align-items:center;gap:5px;color:var(--brand-deep);font-size:12px;font-weight:820}.game-profile-card b{color:#211f1b;font-size:16px;line-height:1.25}.game-profile-card p{display:block;padding:0;color:#5f5a52;font-size:13px;line-height:1.55}.game-profile-card div{display:flex;flex-wrap:wrap;gap:6px}.game-profile-card em{padding:4px 7px;border-radius:999px;background:#f1eee8;color:#5f5147;font-size:11px;line-height:1;font-style:normal;font-weight:720}.game-report-button{width:100%;min-height:38px;font-size:13px}.game-feedback{display:grid;gap:6px;scroll-margin:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 18px);padding:10px;border-radius:8px;border:1px solid var(--line);background:#faf8f2}.game-feedback b{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-size:15px}.game-feedback.correct{border-color:#c9dcc0;background:#f4f8f1}.game-feedback.correct b{color:#315f36}.game-feedback.wrong{border-color:#ead0cb;background:#fff7f6}.game-feedback.wrong b{color:var(--brand-deep)}.game-feedback small{color:#565149;line-height:1.55}.game-next-button{width:100%;min-height:48px}.game-loading-card,.game-result-card{display:grid;justify-items:center;gap:12px;padding:18px 14px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;text-align:center}.game-loading-card span,.game-result-card span{display:inline-flex;align-items:center;gap:6px;color:var(--brand-deep);font-size:13px;font-weight:800}.game-loading-card h1{max-width:11em;margin:0;color:#25231f;font-size:clamp(25px,7.5vw,38px);line-height:1.28;font-weight:630}.game-loading-card p,.game-result-card p{margin:0;color:var(--muted)}.game-wait-time{color:#5d584f!important;font-weight:650}.game-loading-bar{width:min(280px,72vw);height:5px;overflow:hidden;border-radius:999px;background:#eee8df}.game-loading-bar i{display:block;height:100%;border-radius:inherit;background:var(--brand);transition:width .3s ease}.memorize-card{width:100%;display:grid;gap:7px;padding-top:12px;border-top:1px solid var(--line)}.memorize-card small,.memorize-card em{color:var(--muted);font-size:12px;font-style:normal}.game-result-card h1{margin:0;color:var(--brand);font-size:clamp(64px,22vw,110px);line-height:.9;font-weight:760}.game-result-card button{width:min(360px,100%);min-height:52px}.game-result-card small{max-width:23em;color:var(--muted);line-height:1.45}.game-result-ceremony{position:relative;overflow:hidden;padding-top:20px;animation:gameCardRise .36s ease-out both}.game-result-ceremony .game-ambassador.hero{justify-self:center;width:min(430px,100%);grid-template-columns:minmax(128px,42%) minmax(0,1fr)}.game-result-ceremony .game-ambassador.hero img{width:min(205px,42vw);height:min(205px,42vw)}.game-result-ceremony>span{margin-top:2px}.game-result-ceremony h1{position:relative;min-width:2.2em;animation:scorePop .82s cubic-bezier(.2,.9,.2,1) both}.game-result-ceremony.perfect h1{color:#8a001d;text-shadow:0 10px 24px rgba(127,0,25,.14)}.game-result-ceremony.great h1{color:#7f0019}.game-result-ceremony.steady h1{color:#566b78}.game-result-ceremony.practice h1{color:#64745f}.game-teacher-feedback{display:grid;gap:4px;width:min(360px,100%);padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff9e;text-align:left}.game-teacher-feedback b{color:var(--ink);font-size:16px}.game-teacher-feedback small{color:#615b52;max-width:none}.game-value-badge{display:inline-grid;grid-template-columns:18px auto auto;align-items:baseline;gap:6px;padding:8px 12px;border:1px solid #e4ddd1;border-radius:999px;background:#f7f5ef;color:#6a645b}.game-value-badge svg{align-self:center;color:var(--gold)}.game-value-badge b{color:var(--ink);font-size:18px;line-height:1}.game-value-badge span{color:inherit;font-size:12px;font-weight:760}.game-value-badge.earned{border-color:#d8c58a;background:#fff8dc;color:#735b20}.game-confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.game-confetti i{position:absolute;left:calc((var(--i) * 5.5%) + 1%);top:-22px;width:7px;height:13px;border-radius:2px;background:hsl(calc(12 + var(--i) * 19),62%,48%);transform:rotate(calc(var(--i) * 18deg));animation:confettiFall 1.8s cubic-bezier(.2,.65,.3,1) both;animation-delay:calc(var(--i) * 42ms)}.certificate-teaser{border-color:#d9dfcf!important;background:#f4f7f0!important;color:#315f36!important}.game-rank-panel,.game-review{margin-top:10px}.game-rank-loading{display:grid;justify-items:center;gap:7px;padding:16px 10px;border-radius:8px;background:#fff9ef;color:var(--brand-deep);text-align:center}.game-rank-loading span{width:28px;height:28px;border:3px solid #eadfcd;border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.game-rank-loading b{font-size:15px}.game-rank-loading small{color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.quiz-gift-dialog-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:18px;background:#12100d94}.quiz-gift-dialog{width:min(420px,100%);display:grid;justify-items:center;gap:10px;padding:22px 16px 16px;border-radius:10px;background:#fffdf8;border:1px solid #eadfcd;box-shadow:0 18px 60px #0000003d;text-align:center}.quiz-gift-dialog>svg{color:var(--brand)}.quiz-gift-dialog span{color:var(--brand-deep);font-size:14px;font-weight:900}.quiz-gift-dialog h1{margin:0;color:var(--ink);font-size:25px;line-height:1.22}.quiz-gift-dialog p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.quiz-gift-dialog div{width:100%;display:grid;grid-template-columns:1fr 1.35fr;gap:8px;margin-top:4px}.quiz-gift-dialog button{min-height:44px}.game-rank-list{display:grid;gap:0}.game-rank-row{display:grid;grid-template-columns:30px 42px minmax(0,1fr) 54px 44px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.game-rank-row:last-child{border-bottom:0}.game-rank-row>b{color:var(--muted);text-align:center;font-size:16px}.game-rank-row .person-avatar,.game-rank-row .system-avatar{width:42px;height:42px;border-radius:999px}.game-rank-row strong{display:block;color:var(--ink);font-size:15px;line-height:1.3}.game-rank-row span{display:block;margin-top:2px;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-rank-row em{justify-self:end;display:grid;justify-items:end;gap:2px;color:var(--brand);font-size:18px;line-height:1;font-style:normal;font-weight:820}.game-rank-row em small{color:var(--muted);font-size:10px;line-height:1;font-weight:720}.game-rank-row button small{font-size:10px;color:inherit}.game-rank-row>i{display:block}.game-rank-row.is-me{background:linear-gradient(90deg,rgba(127,0,25,.06),transparent);border-radius:8px;padding-left:6px;padding-right:6px}.rank-avatar-button{position:relative;width:42px;height:42px;min-height:42px;padding:0;border:0;border-radius:999px;background:transparent;box-shadow:none;color:inherit}.rank-avatar-button:active{transform:none;opacity:.78}.rank-avatar-button .person-avatar{display:block}.rank-crown{position:absolute;right:-5px;top:-8px;width:22px;height:22px;display:grid;place-items:center;border:1px solid rgba(160,117,39,.42);border-radius:999px;background:#fff8df;color:#a07527;box-shadow:0 4px 10px #50370f1f}.rank-level-number{position:absolute;right:-2px;bottom:-1px;display:block;color:#7d2b21;font-size:8px;line-height:1;font-weight:900;text-shadow:0 1px 2px rgba(255,253,248,.95);pointer-events:none}.game-profile-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2600;display:grid;place-items:center;padding:18px;background:#1f1d196b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.game-profile-dialog{position:relative;width:min(392px,100%);max-height:min(78vh,620px);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fffdf8f5;color:var(--ink);box-shadow:0 18px 45px #0000002e}.game-profile-head{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;padding-right:34px}.game-profile-head .person-avatar,.game-profile-head .system-avatar{width:58px;height:58px;border-radius:999px}.game-profile-head b{display:block;color:#25231f;font-size:21px;line-height:1.25}.game-profile-head span{display:block;margin-top:3px;color:var(--muted);font-size:14px;line-height:1.35}.game-profile-level-card{margin:12px 0 0;padding:11px 12px;border:1px solid #e4dac9;border-radius:8px;background:#fffaf0;color:#5e5344}.game-profile-level-card div:first-child{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 8px;align-items:baseline}.game-profile-level-card span{padding:2px 7px;border-radius:999px;background:#7d2b21;color:#fff;font-size:12px;font-weight:800}.game-profile-level-card b{color:#25231f;font-size:18px;line-height:1.2}.game-profile-level-card em{grid-column:1 / -1;color:var(--muted);font-size:12px;font-style:normal}.game-profile-level-card p{margin:8px 0 0;color:#5e5344;font-size:14px;line-height:1.45}.game-level-progress{height:10px;margin-top:9px;border-radius:999px;overflow:hidden;background:#eadfce}.game-level-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7d2b21,#b88a42)}.game-profile-badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.game-badge{min-height:58px;display:grid;align-content:center;gap:3px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.game-badge b{color:#25231f;font-size:14px;line-height:1.2}.game-badge small{color:var(--muted);font-size:11px;line-height:1.3}.game-badge.gold{border-color:#d9bf75;background:#fff8dc}.game-badge.red{border-color:#7f001938;background:#fff6f5}.game-badge.green{border-color:#3d8a7c40;background:#f3fbf8}.game-badge.ink{background:#faf9f5}.game-profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.game-profile-stats article{padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.game-profile-stats b{display:block;color:#25231f;font-size:22px;line-height:1.1}.game-profile-stats span{display:block;margin-top:4px;color:var(--muted);font-size:12px}.game-profile-meta{display:grid;gap:4px;margin-top:10px;color:var(--muted);font-size:13px;line-height:1.45}.game-profile-section{margin-top:14px}.game-profile-section>b{display:block;margin-bottom:8px;color:#25231f;font-size:16px}.game-profile-section p{margin:0;color:var(--muted);font-size:14px}.classic-bars{display:grid;gap:8px}.classic-bars article{display:grid;grid-template-columns:42px minmax(0,1fr) 74px;gap:8px;align-items:center}.classic-bars span{color:#3f3a32;font-weight:760;font-size:13px}.classic-bars div{height:9px;border-radius:999px;overflow:hidden;background:#eee7da}.classic-bars i{display:block;height:100%;border-radius:inherit;background:#7d2b21}.classic-bars em{color:var(--muted);font-size:12px;font-style:normal;text-align:right}.topic-chips{display:flex;flex-wrap:wrap;gap:6px}.topic-chips span{padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#4d4942;font-size:12px}.game-rank-rule{display:flex;align-items:center;gap:5px;margin:8px 0 0;color:#6f695f;font-size:12px;line-height:1.45}.game-rank-rule svg{flex:0 0 auto;color:var(--gold)}.quiz-gift-card{margin-top:10px;display:grid;gap:10px;border-color:#d9c08b;background:#fffdf7}.quiz-gift-card.highlight{box-shadow:0 10px 28px #7f00191a}.quiz-gift-body{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:center}.quiz-gift-body img{width:112px;height:112px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:6px}.quiz-gift-body b{display:block;color:var(--ink);font-size:17px;line-height:1.3}.quiz-gift-body p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.game-rank-cumulative{margin-top:6px;border-top:1px solid var(--line)}.game-rank-cumulative summary{min-height:42px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:8px;color:var(--ink);font-weight:760;list-style:none;cursor:pointer}.game-rank-cumulative summary::-webkit-details-marker{display:none}.game-rank-cumulative summary small{color:var(--muted);font-size:12px;font-weight:650}.game-rank-cumulative summary svg{color:var(--gold)}.game-rank-cumulative[open]{padding-bottom:2px}.game-review{display:grid;gap:0}.game-review article{padding:12px 0;border-bottom:1px solid var(--line)}.game-review article:last-child{border-bottom:0}.game-review b{color:var(--brand-deep);font-size:13px}.game-review p{margin:5px 0;color:var(--ink);line-height:1.55}.game-review span,.game-review em,.game-review small{display:block;color:var(--muted);font-size:12px;line-height:1.5;font-style:normal}.game-review em{color:#315f36;font-weight:760}.game-review article.review-wrong em{color:var(--brand-deep)}.game-review article.review-correct{background:linear-gradient(90deg,rgba(49,95,54,.05),transparent)}.game-review article.review-wrong{background:linear-gradient(90deg,rgba(127,0,25,.04),transparent)}.game-submit-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2200;display:grid;place-items:center;align-content:center;gap:10px;background:#fffdf8d1;color:var(--brand-deep);font-weight:800;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.certificate-card{width:min(360px,calc(100vw - 36px));min-height:520px;display:grid;align-content:center;justify-items:center;gap:12px;padding:30px 24px;border:1px solid #d8d1c3;border-radius:4px;background:linear-gradient(135deg,rgba(154,125,79,.12) 0 1px,transparent 1px 100%) 0 0 / 28px 28px,linear-gradient(180deg,#fffdf8,#f7f2e7);text-align:center;color:var(--ink);box-shadow:0 24px 60px #00000047}.certificate-card span{color:var(--brand-deep);font-size:13px;font-weight:800}.certificate-card h1{max-width:5em;margin:0;color:#25231f;font-size:38px;line-height:1.08;font-weight:720}.certificate-card p{margin:8px 0 0;color:#4c4943;font-size:18px}.certificate-card b{color:var(--brand);font-size:18px}.certificate-card small{color:var(--muted);font-size:13px}.certificate-card em{margin-top:18px;color:var(--gold);font-style:normal;font-size:13px;letter-spacing:0}.certificate-card button{width:100%;margin-top:12px}.share-panel{margin-top:16px;background:linear-gradient(180deg,#fffaf2,#fff4df)}.compact-share-panel{text-align:left}.share-benefit{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #dec393;border-radius:8px;padding:12px;background:#fff8e9}.share-benefit>svg{width:44px;height:44px;padding:10px;border-radius:8px;background:var(--brand);color:#fff}.share-benefit b{color:var(--brand-deep)}.share-benefit p{margin:4px 0 0;font-size:13px;line-height:1.55}.share-link{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fffdf8}.share-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--blue);font-size:13px}.center{text-align:center}.claim-panel img{max-width:220px;margin:0 auto 12px}.claim-panel .section-title{justify-content:center}.claim-code{font-size:54px;color:var(--brand);letter-spacing:0}.claim-qr-card,.claim-placeholder{margin-top:10px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:12px;text-align:center}.claim-qr-card b{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--brand-deep)}.claim-qr-card img{display:block;width:190px;max-width:74%;margin:10px auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.claim-placeholder{color:var(--muted);background:#f7f7f7}.claim-placeholder p{margin:6px 0 0}.progress-line{height:8px;background:#eadcc7;border-radius:999px;overflow:hidden;margin:8px auto 14px;max-width:300px}.progress-line span{display:block;height:100%;background:var(--brand)}.poster-page{padding-bottom:8px;min-height:auto}.poster-page .subhead{margin-bottom:8px}.poster{width:min(calc(100vw - 16px),386px);aspect-ratio:2 / 3;min-height:0;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;gap:4px;padding:12px;position:relative;overflow:hidden;-webkit-text-size-adjust:none;text-size-adjust:none;background:linear-gradient(135deg,rgba(154,125,79,.12) 0 1px,transparent 1px 100%) 0 0 / 26px 26px,linear-gradient(180deg,#fffdf8,#f7f2e7)}.poster:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(154,125,79,.46);pointer-events:none}.poster:after{display:none}.poster h1{max-width:11.5em;margin:0;color:#25231f;font-size:22px;line-height:1.12;font-weight:760;letter-spacing:0}.poster h1 span{display:block;white-space:nowrap}.poster h2{margin:0;color:#3f3a32;font-size:13px;line-height:1.2;font-weight:650;letter-spacing:0}.poster p{position:relative;z-index:1;margin:0;color:#3f3a32;line-height:1.34;font-size:13px;letter-spacing:0}.poster img{position:relative;z-index:1;width:92px;background:#fff;padding:6px;border:1px solid var(--line);border-radius:6px}.poster .poster-hero{width:calc(100% - 12px);height:auto;object-fit:contain;padding:0;margin-bottom:1px;border-color:#9a7d4f4d;background:#fbf5e8}.poster .poster-qr{width:68px;padding:5px}.poster-free{color:#7d2b21!important;font-weight:700;font-size:12px!important}.poster-gift{padding:4px 8px;border:1px solid rgba(154,125,79,.34);border-radius:999px;background:#ffffff80;color:#25231f!important;font-weight:650;font-size:12px!important}.poster-scan{color:#25231f!important;font-weight:700;font-size:12px!important}.poster-tip{width:min(calc(100vw - 16px),386px);margin:8px auto 0;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink)}.poster-tip b{display:block;font-size:18px;line-height:1.35}.poster-tip span{display:block;margin-top:2px;color:var(--muted);font-size:14px;line-height:1.4}.poster-actions{display:grid;grid-template-columns:1fr;gap:8px;margin:8px 8px 6px}.poster-actions>*{flex:initial;min-height:44px}.detail-intro p{margin:0;color:#4f4b45}.detail-page{display:grid;gap:10px}.invite-detail-section{margin-top:10px}.invite-detail-section .page-title{padding-top:4px}.detail-brief{display:grid;gap:8px}.detail-kicker{margin:0;color:#7d2b21!important;font-weight:700}.detail-brief h2{font-size:28px;line-height:1.16;font-weight:720}.detail-meta{display:grid;gap:0;border-top:1px solid var(--line)}.detail-meta span{display:flex;align-items:center;gap:7px;padding:8px 0;border-bottom:1px solid var(--line);color:#4d4942;font-weight:650}.venue-photo-panel{margin:0 calc(50% - 50vw);width:100vw;overflow:hidden;background:#f5f1e8}.venue-photo-panel img{display:block;width:100%;aspect-ratio:1707 / 900;object-fit:cover;object-position:center}.venue-photo-panel figcaption{padding:8px 12px;color:var(--muted);font-size:13px;line-height:1.35}.message-entry{display:grid;gap:8px}.message-entry button{width:100%}.message-page{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.message-form,.message-list,.message-login{display:grid;gap:10px}.message-form textarea{min-height:128px;resize:vertical;line-height:1.55}.message-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.message-item:last-child{border-bottom:0}.message-item .person-avatar,.message-item .system-avatar{width:42px;height:42px;border-radius:999px;background:#ebe7df}.message-item b{display:block;color:var(--ink);font-size:15px;line-height:1.3}.message-item small{display:block;margin-top:2px;color:var(--muted);font-size:12px}.message-item p{margin:7px 0 0;color:#3f3a32;font-size:14px;line-height:1.55;overflow-wrap:anywhere}.detail-track-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.detail-track-grid article{min-height:96px;display:grid;align-content:center;gap:6px;text-align:center;border:1px solid var(--line);background:#fffdf8;border-radius:4px;padding:10px 6px}.detail-track-grid b{color:#3f3a32;line-height:1.28}.detail-track-grid span{color:#af6a36;font-weight:700;font-size:13px}.detail-track-grid em{justify-self:center;font-style:normal;color:#fff;background:#3d8a7c;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:700}.speaker-panel,.schedule-panel{box-shadow:none}.speaker-list{display:grid;gap:0}.speaker-row{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.speaker-row:last-child{border-bottom:0}.speaker-row b{display:block;color:#25231f;font-size:17px;line-height:1.25}.speaker-row small{display:block;margin-top:2px;color:#7d2b21;font-weight:700}.speaker-row p{margin:6px 0 0;color:#5f5b55;font-size:13px;line-height:1.55}.speaker-avatar{width:64px;height:64px;border-radius:4px;border:1px solid var(--line);background-color:#f5f1e8;object-fit:cover;object-position:center top}.schedule-table{display:grid;gap:0;border-top:1px solid var(--line)}.schedule-table article{display:grid;grid-template-columns:86px minmax(0,1fr) 64px;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.schedule-table time{color:#3d8a7c;font-weight:700;font-size:12px;font-variant-numeric:tabular-nums}.schedule-table p{margin:0;color:#302d29;line-height:1.36;font-size:13px}.schedule-table span{color:#6b665e;font-size:12px;text-align:right;white-space:nowrap}.schedule-table article.schedule-row-with-action{grid-template-columns:86px minmax(0,1fr) 64px 74px}.schedule-quick-action{min-height:30px;padding:4px 7px;border-radius:999px;border-color:#7f001933;background:#fff8f7;color:var(--brand-deep);font-size:12px;line-height:1;white-space:nowrap}.schedule-quick-action svg{width:14px;height:14px}.schedule-quick-action.question-action{background:#f4fbf7;border-color:#3d8a7c40;color:#276f62}.schedule-quick-action.photo-action{background:#fffdf8;border-color:#a084464d;color:#7a6027}.schedule-quick-action.photo-action:disabled{opacity:.42;filter:grayscale(1);color:#8f8981;background:#f4f2ed}.schedule-quick-action.factory-action{background:#f6f4ef;border-color:#5c503d38;color:#5b5140}.schedule-tab{display:grid;gap:12px}.schedule-panel-prominent{border-color:#7f00192e}.schedule-panel-prominent .schedule-table article{grid-template-columns:92px minmax(0,1fr) 58px;padding:11px 0}.schedule-panel-prominent .schedule-table article.schedule-row-with-action{grid-template-columns:92px minmax(0,1fr) 64px 76px}.schedule-panel-prominent .schedule-table time{color:var(--brand-deep);font-size:13px;font-weight:860}.schedule-panel-prominent .schedule-table p{font-size:14px;font-weight:720}.schedule-intro-panel h2{margin:6px 0;color:var(--ink);font-size:22px;line-height:1.22}.schedule-intro-panel>p{margin:5px 0;color:var(--muted);line-height:1.55}.schedule-intro-panel .detail-meta{margin-top:10px}.schedule-venue-panel p,.schedule-invite-soft p{margin:5px 0 0;color:var(--muted);line-height:1.5}.schedule-venue-panel b{color:var(--ink)}.schedule-invite-soft{background:#fbfaf6;border-style:dashed;box-shadow:none}.schedule-invite-soft button{margin-top:10px;width:100%}.roundtable-question-page{display:grid;gap:12px}.roundtable-question-form{display:grid;gap:10px}.roundtable-teacher-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.roundtable-teacher-picker button{min-height:38px;padding:6px 5px;border-radius:999px;background:#f7f5ef;color:#5f5b55;font-size:13px}.roundtable-teacher-picker button.active{background:var(--brand);color:#fff;border-color:var(--brand)}.roundtable-question-form textarea{min-height:150px;font-size:16px;line-height:1.55}.roundtable-my-questions{display:grid;gap:8px}.roundtable-my-questions article{padding:10px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.roundtable-my-questions b{display:block;color:var(--brand-deep);font-size:13px}.roundtable-my-questions p{margin:5px 0;color:var(--ink);font-size:15px;line-height:1.5}.roundtable-my-questions small{color:var(--muted)}.calendar-strip-panel{box-shadow:none}.event-calendar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.calendar-day{min-height:82px;display:grid;align-content:center;gap:3px;padding:8px 4px;border:1px solid var(--line);border-radius:4px;text-align:center;background:#fff}.calendar-day span{color:#6f6a62;font-size:12px;font-weight:760}.calendar-day b{color:#27241f;font-size:16px;line-height:1.15}.calendar-day p{margin:0;color:#68635c;font-size:11px;line-height:1.25}.calendar-day.main{border-color:#7f001940;background:#fff8f7}.calendar-day.main b,.calendar-day.main p{color:var(--brand-deep)}.calendar-day.warm{background:#fffdf8}.calendar-day.soft{background:#f8f8f6}.claim-public-card{margin-top:12px}.page-title{margin:2px 4px 8px;gap:0}.page-title>span{display:none}.compact-panel .section-title{margin-top:0}.destination-panel{margin-bottom:8px}.route-card{align-items:flex-start;border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px}.compact-route-list{grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0}.compact-route-list .route-card{padding:10px;gap:8px}.compact-route-list .icon-badge{width:34px;height:34px;margin-bottom:0}.route-card strong{display:block;margin-bottom:4px}.route-card span{color:var(--blue);font-size:13px}.route-card p{margin:4px 0 0;font-size:13px;line-height:1.45}.food-map-section{display:grid;gap:10px;margin:10px 0}.food-map-section .map-panel{box-shadow:none}.food-guide-list{display:grid;gap:8px}.food-guide-card{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.food-guide-card b{display:block;color:var(--ink);font-size:15px;line-height:1.25}.food-guide-card span{display:block;margin-top:4px;color:var(--brand-deep);font-size:12px;line-height:1.4;font-weight:760}.food-guide-card p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.food-guide-card small{display:block;margin-top:4px;color:#6f6a62;font-size:12px;line-height:1.35;overflow-wrap:anywhere}.food-guide-actions{grid-template-columns:repeat(2,38px);justify-content:end;gap:7px}.food-guide-note{margin:0 2px}.address-grid,.hotel-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.address-grid article,.hotel-summary article{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fffdf8}.address-grid b{display:block;margin:8px 0}.map-panel{position:relative}.map-panel-head{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;align-items:start}.map-panel-head .section-title{margin-top:0}.map-fullscreen-button{margin-top:2px;background:#ffffffeb}.map-panel-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2400;border:0;border-radius:0;padding:max(12px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--surface)}.map-panel-fullscreen .map-shell{height:auto;min-height:0}.map-shell{position:relative;height:clamp(270px,38vh,380px);border-radius:4px;border:1px solid var(--line);overflow:hidden;background:#f1f1f1}.map{width:100%;height:100%;display:block;color:var(--muted);overflow:hidden;background:#f1f1f1;text-align:center}.map-shell-ready .map{padding-top:0;background:transparent}.map .amap-container{text-align:left}.map-message{position:absolute;inset:auto 12px 12px;z-index:2;display:grid;place-items:center;text-align:center;padding:8px 10px;color:var(--muted);background:#fffdf9e0;border:1px solid rgba(0,0,0,.06);border-radius:999px;pointer-events:none}.map-fallback-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(255,250,242,.32) 1px,transparent 1px) 0 0 / 54px 54px,linear-gradient(0deg,rgba(255,250,242,.32) 1px,transparent 1px) 0 0 / 54px 54px}.fallback-pin{position:absolute;transform:translate(-15px,-15px);display:inline-flex;align-items:center;gap:4px;min-width:30px;height:30px}.fallback-marker{width:22px;height:22px;display:grid;place-items:center;border-radius:999px;color:#fff;border:1px solid #fffaf2;box-shadow:0 6px 14px #00000024}.fallback-pin b{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);background:#fffdf9f2;border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:4px 8px;font-size:11px;line-height:1;box-shadow:0 4px 10px #0000001a}.fallback-pin-venue b{color:#a40020;border-color:#a400203d;font-weight:850}.fallback-marker-venue{background:var(--brand)}.fallback-marker-field{background:var(--green)}.fallback-marker-hotel{background:var(--gold)}.fallback-marker-food{background:#a94a2c}.fallback-marker-transit{background:var(--blue)}.amap-marker{min-height:0;border:0;background:transparent;padding:0;box-shadow:none;display:inline-flex;align-items:center;gap:2px;color:var(--ink);font-size:11px;line-height:1;font-weight:700;white-space:nowrap}.amap-marker i{width:11px;height:11px;display:grid;place-items:center;border-radius:999px;border:1px solid #fff;box-shadow:0 3px 8px #00000026;color:#fff;font-size:8px;font-style:normal;line-height:1}.amap-marker b{display:block;min-width:58px;max-width:184px;overflow:visible;text-overflow:clip;text-align:center;border-radius:999px;padding:4px 8px;background:#fffdf9f5;border:1px solid rgba(0,0,0,.08);box-shadow:0 4px 10px #0000001a}.amap-marker-hotel b{color:var(--brand-deep);font-weight:850}.amap-marker-hotel i{display:none}.amap-marker-venue i{background:#a40020}.amap-marker-venue b{color:#a40020;border-color:#a400203d;font-weight:850}.amap-marker-field i{background:var(--green)}.amap-marker-hotel i{background:var(--gold)}.amap-marker-food i{display:block;background:#a94a2c}.amap-marker-food b{color:#7a2e1b;border-color:#a94a2c47;font-weight:850}.amap-marker-transit i{background:var(--blue)}.amap-marker-airport i{background:#4f7f95}.amap-marker-rail i{background:var(--blue)}.map-info{min-width:220px;line-height:1.6;color:var(--ink)}.map-info em{display:inline-block;margin-top:6px;color:var(--brand-deep);font-style:normal;font-size:12px;border:1px solid #ead0cb;border-radius:999px;padding:2px 7px}.map-info p{margin:6px 0;color:var(--muted)}.map-info .map-price{color:var(--brand-deep);font-weight:700}.map-info .map-distance{color:#1f1f1f;font-weight:700}.map-safe-detail{position:absolute;left:12px;right:12px;bottom:12px;z-index:8;background:#fffffff7;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #00000029;padding:12px;color:var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.map-safe-detail b{display:block;padding-right:28px;font-size:16px;line-height:1.35}.map-safe-detail span{display:inline-block;margin:6px 0 2px;color:var(--brand-deep);border:1px solid #ead0cb;border-radius:999px;padding:2px 7px;font-size:12px}.map-safe-detail p{margin:5px 0;line-height:1.45;font-size:13px;color:var(--muted)}.map-safe-detail .map-price,.map-safe-detail .map-distance{color:var(--ink);font-weight:700}.map-safe-detail .map-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.map-safe-close{position:absolute;top:8px;right:8px;width:28px;height:28px;min-height:28px;padding:0;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1}.map-info span{display:inline-block;color:var(--brand-deep);margin-bottom:8px}.map-actions{display:flex;gap:8px;margin-top:8px}.map-actions button,.map-actions a{min-height:34px;padding:6px 9px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--brand-deep);text-decoration:none;font-weight:700}.icon-only-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.icon-only-actions>*{flex:initial;min-width:0}.destination-actions{grid-template-columns:repeat(2,52px);justify-content:start;gap:12px;margin:8px 0 0}.route-suggestion{min-height:40px;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d8e0d2;border-radius:8px;background:#f4f7f0;color:#3b5537;text-decoration:none;font-weight:750}.map-location-board{display:grid;gap:8px;margin-top:12px}.map-location{display:grid;grid-template-columns:54px minmax(0,1fr) 38px 38px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fffdf8}.map-location>span{display:inline-flex;justify-content:center;border-radius:999px;padding:4px 7px;font-size:12px;font-weight:800;color:#fff;background:var(--gold)}.map-location-venue>span{background:var(--brand)}.map-location-field>span{background:var(--green)}.map-location-transit>span{background:var(--blue)}.map-location b{display:block;color:var(--ink);overflow-wrap:anywhere}.map-location p{margin:3px 0;font-size:13px;line-height:1.45}.map-location small{color:var(--blue);overflow-wrap:anywhere}.hotel-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.hotel-summary article{gap:8px;color:var(--muted)}.hotel-summary b{color:var(--brand-deep);font-size:20px}.hotel-head{justify-content:space-between;align-items:flex-start}.hotel{overflow:hidden;padding:0;break-inside:avoid;margin:0 0 8px;display:inline-block;width:100%;vertical-align:top}.hotel-photo{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#eadfcd;border-bottom:1px solid var(--line)}.hotel-tab{padding-bottom:0}.hotel-body{padding:9px}.hotel strong{font-size:15px;color:var(--brand-deep);line-height:1.32}.hotel-head span{display:inline-flex;margin-top:5px;color:var(--green);border:1px solid rgba(95,127,99,.35);padding:2px 6px;border-radius:999px;font-size:11px;line-height:1.3}.hotel-distance-line{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.venue-hotel{border-color:#ead0cb;background:#fff}.hotel-facts{display:grid;gap:5px;margin-top:8px}.hotel p{display:flex;align-items:flex-start;gap:5px;margin:0;font-size:12px;line-height:1.4}.hotel p svg{width:14px;height:14px}.hotel-address,.hotel-price,.hotel-note{display:-webkit-box!important;-webkit-box-orient:vertical;overflow:hidden}.hotel-address{-webkit-line-clamp:2}.hotel-price{-webkit-line-clamp:2;color:var(--ink)!important;font-weight:650}.hotel-note{-webkit-line-clamp:2}.hotel-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px}.hotel-actions>*{flex:initial;min-height:34px;padding:5px 4px;font-size:12px;gap:3px;white-space:nowrap}.hotel-stay-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;margin-top:8px}.hotel-stay-box-three{grid-template-columns:repeat(3,minmax(0,1fr))}.hotel-stay-button,.hotel-stay-count{min-height:34px;padding:6px 5px;font-size:12px;border-radius:4px;gap:3px;white-space:nowrap}.hotel-stay-button{color:#4f5f46;background:#f4f7f0;border-color:#d6dfcf}.hotel-stay-button.checked{color:#fff;background:#4f6b43;border-color:#4f6b43}.hotel-stay-count{color:var(--brand-deep);background:#fffaf2;border-color:var(--line);white-space:nowrap}.hotel-message-button{justify-content:center}.hotel-people-avatars{display:flex;flex-wrap:wrap;gap:6px}.hotel-people-avatars span{width:30px;height:30px;display:block;border-radius:999px;overflow:visible;border:1px solid var(--line);background:#ebe7df}.hotel-people-avatars .person-avatar,.hotel-people-avatars .system-avatar{width:100%;height:100%;display:block;object-fit:cover}.custom-avatar-img{object-fit:cover}.hotel-people-avatars.large{gap:8px;margin-top:12px}.hotel-people-avatars.large span{width:42px;height:42px}.hotel-people-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2600;display:grid;place-items:center;padding:18px;background:#1f1d196b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hotel-people-modal section{position:relative;width:min(360px,100%);padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 45px #0000002e}.hotel-people-modal b{display:block;padding-right:30px;color:var(--ink);font-size:18px;line-height:1.35}.hotel-people-modal p{margin:5px 0 0;color:var(--muted);font-size:14px}.factory-contact-modal section{display:grid;gap:10px}.factory-contact-modal .factory-contact-lead{margin:0;color:var(--muted);font-size:13px}.factory-contact-card{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.factory-contact-card span{color:var(--muted);font-size:12px}.factory-contact-card strong{color:var(--ink);font-size:24px;line-height:1.1;letter-spacing:0}.factory-contact-card em{color:var(--brand-deep);font-size:13px;font-style:normal;font-weight:800}.factory-legal-note{width:100%;display:grid;gap:5px;justify-items:start;min-height:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#f7f5ef;color:#5d564b!important;text-align:left;font-size:13px!important;line-height:1.55}.factory-legal-note span{color:var(--brand-deep);font-size:12px;font-weight:850}.factory-legal-detail{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fffdf8}.factory-legal-detail p{margin:0;color:#504a40;font-size:13px;line-height:1.55}.factory-legal-detail button{min-height:34px}.compact-actions{margin-bottom:0}.admin-login-page{display:grid;align-content:start;gap:12px;padding-top:22px;background:#f7f5ef}.admin-login-hero{padding:18px 4px 10px;border-bottom:1px solid var(--line)}.admin-login-hero span{display:inline-flex;align-items:center;gap:6px;color:var(--brand-deep);font-size:13px;font-weight:800}.admin-login-hero h1{margin:8px 0 6px;color:var(--ink);font-size:36px;line-height:1.05;font-weight:650;letter-spacing:0}.admin-login-hero p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}.admin-login-card{padding:14px 4px 0;border:0;background:transparent;box-shadow:none}.admin-login-submit{width:100%;min-height:54px;border-radius:4px;background:var(--brand)!important;color:#fff!important;font-size:17px;line-height:1}.admin-login-submit span,.admin-login-submit svg{color:#fff!important;opacity:1}.admin-topbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px;padding:8px 0 12px;border-bottom:1px solid var(--line);margin-bottom:10px}.admin-topbar span{display:inline-flex;align-items:center;gap:6px;color:var(--brand-deep);font-size:12px;font-weight:800}.admin-topbar h1{margin:4px 0 2px;color:var(--ink);font-size:27px;line-height:1.1;font-weight:680}.admin-topbar p{margin:0;color:var(--muted);font-size:13px}.admin-command-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:10px;align-items:stretch}.admin-scan-card,.admin-search-card,.admin-person-card,.admin-pending-card,.admin-data-panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px}.admin-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--brand-deep)}.admin-card-head b{display:block;color:var(--ink);font-size:15px;line-height:1.25}.admin-card-head span{display:block;color:var(--muted);font-size:12px;line-height:1.35}.admin-search-card{display:grid;gap:10px}.scanner{background:#fbfaf6;border:1px dashed var(--line);border-radius:8px;overflow:hidden;width:100%;min-height:176px}.scanner video{display:block;width:100%!important;border-radius:8px}.scanner-wrap{align-items:flex-start;color:var(--brand-deep)}.search-form{margin-bottom:14px}.admin-person-card{display:grid;gap:12px;margin-top:10px}.admin-person-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding-bottom:10px;border-bottom:1px solid var(--line)}.admin-person-head span{color:var(--muted);font-size:12px}.admin-person-head h2{margin:3px 0 2px;color:var(--ink);font-size:27px;line-height:1.15;font-weight:680}.admin-person-head p{margin:0;color:var(--brand-deep);font-size:13px;font-weight:800}.admin-state{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:34px;padding:0 10px;border-radius:999px;background:#f4f2ed;color:var(--muted);border:1px solid var(--line);font-size:13px;font-weight:800;white-space:nowrap}.admin-state.ok{background:#edf5e9;color:#35613b;border-color:#cbdcc3}.admin-person-grid{margin:0}.admin-code-records{display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fbfaf6}.admin-code-record{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;min-height:50px;padding:8px;border-radius:6px;background:#fff;border:1px solid #ede7dc}.admin-code-record.ready{border-color:#d5c48a;background:#fffaf0}.admin-code-record.ok{border-color:#cbdcc3;background:#f3f8ef}.admin-code-icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:#f1eee7;color:var(--brand-deep)}.admin-code-record.ready .admin-code-icon{background:#fff0c8;color:#84620f}.admin-code-record.ok .admin-code-icon{background:#dfeedd;color:#35613b}.admin-code-record b{display:block;color:var(--ink);font-size:14px;line-height:1.25}.admin-code-record small{display:block;margin-top:2px;color:var(--muted);font-size:12px;line-height:1.3}.admin-code-record em{justify-self:end;color:var(--muted);font-size:13px;font-style:normal;font-weight:850;white-space:nowrap}.admin-code-record.ready em{color:#84620f}.admin-code-record.ok em{color:#35613b}.admin-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.admin-subsection{padding-top:4px;border-top:1px solid var(--line)}.admin-claim-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;padding-top:10px;border-top:1px solid var(--line)}.admin-card{display:grid;gap:12px}.admin-grid p{margin:0;display:flex;align-items:center;gap:7px;color:var(--muted)}.admin-nav-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.admin-registration-list{display:grid;gap:8px;margin-top:10px}.admin-registration-card{display:grid;gap:8px}.admin-registration-card>div:first-child{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.admin-registration-card>div:first-child b{color:var(--ink);font-size:18px}.admin-registration-card>div:first-child span{color:var(--muted);font-size:12px}.admin-registration-card p{margin:0;display:flex;align-items:center;gap:6px;color:var(--muted);line-height:1.45}.admin-list-search{margin-bottom:10px}.admin-pending-card{margin-top:10px}.admin-ledger-card{display:grid;gap:10px}.admin-ledger-list{display:grid;gap:8px}.admin-ledger-panel{border:1px solid var(--line);border-radius:8px;background:#fffdf8;overflow:hidden}.admin-ledger-panel summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:58px;padding:10px;cursor:pointer;list-style:none}.admin-ledger-panel summary::-webkit-details-marker{display:none}.admin-ledger-panel summary:after{content:"展开";justify-self:end;grid-column:2;color:var(--muted);font-size:11px;font-weight:800}.admin-ledger-panel[open] summary:after{content:"收起"}.admin-ledger-title{display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--brand-deep)}.admin-ledger-title b{color:var(--ink);font-size:16px;line-height:1.25}.admin-ledger-counts{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:132px}.admin-ledger-counts em{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#f4f2ed;color:var(--muted);font-size:12px;font-style:normal;font-weight:850;white-space:nowrap}.admin-ledger-counts em:first-child{background:#edf5e9;color:#35613b}.admin-ledger-body{display:grid;gap:10px;padding:0 10px 10px;max-height:460px;overflow:auto;border-top:1px solid var(--line)}.admin-ledger-group{display:grid;gap:7px;padding-top:10px}.admin-ledger-group strong{color:var(--ink);font-size:14px;line-height:1.25}.compact-admin-list{max-height:340px;overflow:auto}.admin-guest-row{width:100%;min-height:48px;justify-content:space-between;text-align:left;background:#fffdf8}.admin-guest-row.claimed{background:#f4f8f1}.admin-guest-row.pending{background:#fffdf8}.admin-guest-row span{display:grid;gap:2px;min-width:0}.admin-guest-row b{font-size:15px;color:var(--ink)}.admin-guest-row small{color:var(--muted);font-size:12px}.admin-guest-row em{color:var(--brand-deep);font-style:normal;font-size:12px;white-space:nowrap}.stat b{font-size:30px;color:var(--brand)}.admin-stat-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}.admin-stat-hero article{padding:13px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface)}.admin-stat-hero span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.admin-stat-hero b{color:var(--brand);font-size:30px;line-height:1;font-weight:760}.admin-stat-hero small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.25}.refined-stats{margin-bottom:10px}.refined-stats article{min-height:84px;display:grid;align-content:center}.admin-stat-line{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.admin-stat-line span{display:inline-flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:#ffffffad;color:var(--muted);font-size:12px}.admin-stat-line b{color:var(--ink);font-size:13px}.admin-data-panel{display:grid;gap:8px}.admin-data-panel h2{margin:8px 0 0;color:var(--ink);font-size:16px}.admin-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}.admin-progress-card{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-progress-card span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px}.admin-progress-card b{display:block;color:var(--ink);font-size:22px;line-height:1;font-weight:730}.admin-progress-card em{color:var(--muted);font-size:12px;font-style:normal;font-weight:600}.admin-progress-card small{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.25}.admin-progress-card strong{justify-self:end;color:var(--brand-deep);font-size:13px;line-height:1}.admin-progress-bar{grid-column:1 / -1;height:6px;overflow:hidden;border-radius:999px;background:#eeeae1}.admin-progress-bar i{display:block;height:100%;border-radius:inherit;background:var(--brand)}.admin-work-panel,.admin-course-panel,.admin-trend-panel,.admin-game-pool-panel,.admin-online-panel{display:grid;gap:10px;margin-bottom:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-work-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.admin-work-grid article{min-height:54px;padding:8px 6px;border-radius:6px;background:#f7f5ef;text-align:center}.admin-work-grid span{display:block;color:var(--muted);font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-work-grid b{display:block;margin-top:5px;color:var(--brand);font-size:23px;line-height:1}.admin-roundtable-pane{display:grid;gap:10px}.admin-roundtable-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-roundtable-head button{min-height:42px;white-space:nowrap}.admin-roundtable-grid{display:grid;gap:8px}.admin-roundtable-group{border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.admin-roundtable-group summary{min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;list-style:none}.admin-roundtable-group summary::-webkit-details-marker{display:none}.admin-roundtable-group summary span{display:inline-flex;align-items:center;gap:8px;color:var(--brand-deep)}.admin-roundtable-group summary b{color:var(--ink);font-size:18px}.admin-roundtable-group summary em{padding:5px 9px;border-radius:999px;background:#f4f2ed;color:var(--brand-deep);font-style:normal;font-size:13px;font-weight:850}.admin-roundtable-list{display:grid;gap:8px;padding:0 10px 10px;border-top:1px solid var(--line)}.admin-roundtable-actions{display:flex;justify-content:flex-end;padding-top:10px}.admin-roundtable-actions button{min-height:38px}.admin-roundtable-list article{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;padding:10px;border-radius:7px;background:#fffdf8;border:1px solid #ede7dc}.admin-roundtable-list article>span{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:#fff;font-weight:900}.admin-roundtable-list b{display:block;color:var(--ink);font-size:16px;line-height:1.45}.admin-roundtable-list small{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.35}.admin-group-photo-pane{display:grid;gap:10px}.admin-group-photo-card{display:grid;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.admin-photo-state{display:grid;gap:4px;padding:14px;border:1px dashed var(--line);border-radius:8px;background:#fbfaf6}.admin-photo-state.ready{border-style:solid;border-color:#cbdcc3;background:#f3f8ef}.admin-photo-state b{color:var(--ink);font-size:18px;line-height:1.25}.admin-photo-state span{color:var(--muted);font-size:13px;line-height:1.45}.admin-photo-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:center}.admin-photo-upload{position:relative;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0;overflow:hidden;cursor:pointer}.admin-photo-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.admin-photo-upload input:disabled{cursor:wait}.admin-game-pool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.admin-game-pool-grid article{min-height:66px;padding:9px 8px;border-radius:6px;background:#f7f5ef}.admin-game-pool-grid span{display:block;color:var(--muted);font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-game-pool-grid b{display:block;margin-top:5px;color:var(--brand);font-size:24px;line-height:1}.admin-game-pool-grid small{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.25}.admin-game-pool-bar{margin-top:-2px}.admin-game-pool-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;gap:7px;align-items:center}.admin-game-pool-actions button{min-height:42px}.kiosk-page{max-width:none;min-height:100vh;display:grid;place-items:center;padding:28px;background:#f3f0e8}.kiosk-login{width:min(620px,100%);display:grid;gap:18px;padding:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.kiosk-login h1{margin:0;color:var(--brand);font-size:44px}.kiosk-login p{margin:0;color:var(--muted);font-size:18px;line-height:1.55}.kiosk-login form{display:grid;gap:12px}.kiosk-login input{min-height:62px;font-size:28px;text-align:center;letter-spacing:0}.kiosk-login button{min-height:58px;font-size:20px}.kiosk-screen{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#050505;color:#fff}.kiosk-camera-panel{position:absolute;top:0;right:0;bottom:0;left:0;min-width:0;overflow:hidden;background:#050505}.kiosk-camera-panel header{position:absolute;z-index:12;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.kiosk-camera-panel header span{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:6px 10px;border-radius:999px;background:#00000075;color:#fff;font-size:15px;font-weight:820;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.kiosk-camera-panel header button{pointer-events:auto;min-height:44px;padding:8px 16px;border-color:#17f2a1d1;border-radius:999px;background:#17f2a1;color:#062017;font-size:16px;font-weight:900;box-shadow:0 0 0 5px #17f2a129,0 10px 30px #00000047}.kiosk-reader-wrap,.kiosk-reader{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#050505}.kiosk-reader{display:grid;place-items:center}.kiosk-reader video{width:100%!important;height:100%!important;object-fit:cover;transform:scaleX(-1)}.kiosk-scan-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;display:grid;place-items:center}.kiosk-scan-overlay span{position:relative;width:min(74vh,58vw);min-width:360px;max-width:780px;aspect-ratio:1;border:3px solid rgba(255,255,255,.88);border-radius:22px;box-shadow:0 0 0 999px #0000000d,0 0 34px #ffffff29}.kiosk-scan-overlay span:before,.kiosk-scan-overlay span:after{content:"";position:absolute;width:46px;height:46px;border-color:#fff;border-style:solid}.kiosk-scan-overlay span:before{left:-3px;top:-3px;border-width:8px 0 0 8px;border-radius:20px 0 0}.kiosk-scan-overlay span:after{right:-3px;bottom:-3px;border-width:0 8px 8px 0;border-radius:0 0 20px}.kiosk-scan-overlay i{position:absolute;width:min(68vh,52vw);min-width:320px;max-width:720px;height:4px;border-radius:999px;background:#17f2a1;box-shadow:0 0 22px #17f2a1db;animation:kioskScanLine 1.25s ease-in-out infinite}.kiosk-scan-overlay em{position:absolute;width:min(20vh,15vw);min-width:108px;aspect-ratio:1;border:2px solid rgba(23,242,161,.9);border-radius:999px;opacity:0;transform:scale(1.35);box-shadow:0 0 30px #17f2a152,inset 0 0 22px #17f2a133}.kiosk-scan-overlay.checking span{border-color:#17f2a1;box-shadow:0 0 0 999px #0000000a,0 0 42px #17f2a18f}.kiosk-scan-overlay.checking span:before,.kiosk-scan-overlay.checking span:after{border-color:#17f2a1}.kiosk-scan-overlay.checking em{opacity:1;animation:kioskLockTarget .62s ease-out infinite}.kiosk-start-hint{position:absolute;z-index:6;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;color:#ffffffeb;text-align:center;background:radial-gradient(circle at center,#00000075,#0000002e 45%,#00000057)}.kiosk-start-hint b{font-size:24px}.kiosk-start-hint button{min-height:64px;padding:12px 28px;border:0;border-radius:999px;background:#17f2a1;color:#062017;font-size:24px;font-weight:900;box-shadow:0 0 0 8px #17f2a129,0 12px 36px #00000057}.kiosk-start-hint p{max-width:24em;margin:0;color:#ffffffc2;font-size:14px;line-height:1.5}.kiosk-camera-error{position:absolute;z-index:8;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(620px,calc(100vw - 28px));margin:0;padding:10px 12px;border-radius:999px;background:#fff1f1f2;color:#8a001d;text-align:center;font-size:14px;font-weight:800}.kiosk-result-panel{position:absolute;z-index:5;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));min-height:96px;display:grid;grid-template-columns:68px minmax(0,1fr) minmax(320px,.64fr);align-items:center;gap:12px;padding:12px 16px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:#00000080;text-align:left;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:background .16s ease,color .16s ease,transform .16s ease}.kiosk-result-icon{width:60px;height:60px;display:grid;place-items:center;border-radius:999px;background:#ffffff24;color:#fff}.kiosk-result-icon svg{width:40px;height:40px}.kiosk-result-panel h1{margin:0;color:#fff;font-size:clamp(34px,4.4vw,58px);line-height:.95;font-weight:900;white-space:nowrap}.kiosk-result-panel p{grid-column:2 / 3;margin:4px 0 0;color:#ffffffd1;font-size:clamp(16px,1.8vw,24px);line-height:1.15;font-weight:760;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kiosk-person{min-width:0;max-width:none;display:grid;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:6px 12px;padding:9px 11px;border-radius:16px;background:#ffffff24;text-align:left}.kiosk-person .person-avatar,.kiosk-person .system-avatar{width:62px;height:62px;border-radius:999px}.kiosk-person b{display:block;color:#fff;font-size:clamp(30px,3.6vw,48px);line-height:.95;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kiosk-person small{display:block;margin-top:5px;color:#ffffffc7;font-size:clamp(15px,1.5vw,21px);line-height:1.1;white-space:nowrap}.kiosk-person em{grid-column:1 / -1;justify-self:end;padding:5px 10px;border-radius:999px;background:#ffffff2e;color:#fff;font-size:clamp(15px,1.45vw,20px);font-style:normal;font-weight:900;white-space:nowrap}.kiosk-result-panel>small{grid-column:2 / 3;color:#ffffff9e;font-size:13px}.kiosk-screen.checking .kiosk-result-panel{background:#176a8adb}.kiosk-screen.checking .kiosk-result-icon{background:#fff;color:#176a8a;animation:kioskPulse .78s ease-in-out infinite alternate}.kiosk-screen.ok .kiosk-result-panel{background:#1f7a3be6;animation:kioskSuccessPop .46s cubic-bezier(.2,1.5,.35,1)}.kiosk-screen.ok .kiosk-result-icon{background:#fff;color:#1f7a3b;animation:kioskSuccessIcon .5s ease-out}.kiosk-screen.ok .kiosk-scan-overlay span{border-color:#17f2a1;box-shadow:0 0 0 999px #17f2a10f,0 0 54px #17f2a1b3;animation:kioskSuccessFrame .54s ease-out}.kiosk-screen.ok .kiosk-scan-overlay em{opacity:1;animation:kioskLockSuccess .54s ease-out both}.kiosk-screen.warn .kiosk-result-panel{background:#b27a16e6}.kiosk-screen.warn .kiosk-result-icon{background:#fff;color:#9b6610}.kiosk-screen.error .kiosk-result-panel{background:#9a1c31eb}.kiosk-screen.error .kiosk-result-icon{background:#fff;color:#9a1c31}@keyframes kioskScanLine{0%,to{transform:translateY(calc(min(165px,19vw)*-1));opacity:.35}50%{transform:translateY(min(165px,19vw));opacity:1}}@keyframes kioskPulse{0%{transform:scale(.96)}to{transform:scale(1.06)}}@keyframes kioskLockTarget{0%{opacity:.16;transform:scale(1.45)}55%{opacity:1;transform:scale(.92)}to{opacity:.54;transform:scale(1.04)}}@keyframes kioskLockSuccess{0%{opacity:.2;transform:scale(1.32)}35%{opacity:1;transform:scale(.82)}to{opacity:0;transform:scale(1.9)}}@keyframes kioskSuccessFrame{0%{transform:scale(.96);opacity:.6}45%{transform:scale(1.06);opacity:1}to{transform:scale(1);opacity:1}}@keyframes kioskSuccessPop{0%{transform:translateY(14px) scale(.98)}62%{transform:translateY(-4px) scale(1.015)}to{transform:translateY(0) scale(1)}}@keyframes kioskSuccessIcon{0%{transform:scale(.72);opacity:.2}60%{transform:scale(1.18);opacity:1}to{transform:scale(1);opacity:1}}@media(max-width:920px){.kiosk-result-panel{grid-template-columns:54px minmax(0,1fr);min-height:110px;gap:8px 10px;padding:11px}.kiosk-result-icon{width:50px;height:50px}.kiosk-result-icon svg{width:32px;height:32px}.kiosk-result-panel h1{font-size:32px}.kiosk-result-panel p{font-size:15px}.kiosk-person{grid-column:1 / -1;grid-template-columns:52px minmax(0,1fr) auto}.kiosk-person .person-avatar,.kiosk-person .system-avatar{width:52px;height:52px}.kiosk-person b{font-size:31px}.kiosk-person small{font-size:14px}.kiosk-person em{grid-column:3 / 4;font-size:15px}.kiosk-result-panel>small{display:none}}.admin-course-row{display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.admin-course-row:first-of-type{border-top:0}.admin-course-row b{display:block;color:var(--ink);font-size:15px}.admin-course-row span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.admin-course-row em{justify-self:end;min-width:42px;padding:5px 7px;border-radius:999px;background:#f7f5ef;color:var(--brand-deep);text-align:center;font-size:13px;font-style:normal;font-weight:800}.admin-trend-bars{height:126px;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;align-items:end}.admin-trend-bars article{min-width:0;display:grid;grid-template-rows:1fr auto auto;gap:3px;height:100%;text-align:center}.admin-trend-bars div{display:flex;align-items:end;justify-content:center;min-height:66px}.admin-trend-bars i{width:100%;max-width:14px;min-height:8px;display:block;border-radius:999px 999px 2px 2px;background:var(--green)}.admin-trend-bars span{color:var(--muted);font-size:10px;white-space:nowrap}.admin-trend-bars b{color:var(--ink);font-size:11px;line-height:1}.admin-stat-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px}.metric-line{justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px;min-width:0}.metric-line span{min-width:0;display:grid;gap:2px;color:var(--ink)}.metric-line small{color:var(--muted);font-size:11px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-line b{color:var(--brand-deep)}.admin-recent-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px;margin:0;padding-bottom:8px;border-bottom:1px solid var(--line)}.admin-recent-row span{min-width:0;display:grid;gap:2px}.admin-recent-row b{color:var(--ink);font-size:15px}.admin-recent-row small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-recent-row em{justify-self:end;color:var(--brand-deep);font-size:12px;font-style:normal;font-weight:750}.admin-export-link{width:100%;margin-top:8px}.toast{position:fixed;left:50%;top:calc(70px + env(safe-area-inset-top));transform:translate(-50%);width:min(680px,calc(100vw - 32px));background:var(--brand-deep);color:#fff;padding:12px 14px;border-radius:8px;z-index:3200;box-shadow:0 10px 30px #0000002e}.invite-landing-page{max-width:760px;padding:8px 8px calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 18px)}.invite-landing-page .fission-home{min-height:calc(100vh - 16px - env(safe-area-inset-bottom));border-color:#e7e2d8;background:#fffdf8}.invite-landing-page .fission-home-body{padding:18px 20px 22px}.invite-landing-page .invite-full-visual img{aspect-ratio:1056 / 584;object-fit:contain;object-position:center}.invite-landing-page .muji-kicker{margin-bottom:17px;color:#726d64;font-size:12px}.invite-landing-page .muji-kicker span:last-child{border-color:#d8d1c5;background:transparent}.invite-landing-page .muji-invite h1{margin:0 0 10px;font-size:clamp(36px,10.2vw,52px);line-height:1.04;font-weight:630;color:#201f1c}.invite-landing-page .muji-invite .subtitle{max-width:21em;color:#5f5b55;font-size:16px;line-height:1.72}.invite-landing-page .invite-notice{margin:20px 0 14px;padding:0;border:0;border-radius:0;background:transparent;color:#486340;font-size:16px;font-weight:650}.invite-landing-page .invite-notice svg{width:19px;height:19px}.invite-landing-page .fission-gift-card{margin:22px 0 12px;padding:16px 0;grid-template-columns:66px minmax(0,1fr) 18px}.invite-landing-page .fission-gift-card>img{width:66px}.invite-landing-page .fission-gift-card b{color:#282622;font-size:16px;font-weight:680}.invite-landing-page .fission-gift-card p{color:#68635c;font-size:13px}.invite-landing-page .compact-fission-steps{margin:13px 0 18px}.invite-landing-page .fission-main-cta{min-height:56px;margin-top:0;border-radius:4px;font-size:18px;font-weight:720}.invite-landing-page .fission-meta{margin:16px 0 0;gap:8px}.invite-landing-page .fission-meta span{padding:7px 11px;color:#68635c;background:#ffffff85}@keyframes gameArenaIn{0%{opacity:.78;transform:scale(.995)}to{opacity:1;transform:scale(1)}}@keyframes gameCardRise{0%{opacity:.72;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes gameGlow{0%,to{transform:translateZ(0) scale(1);opacity:.68}50%{transform:translate3d(14px,10px,0) scale(1.08);opacity:.95}}@keyframes ambassadorFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.015)}}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes scorePop{0%{opacity:0;transform:translateY(10px) scale(.92)}64%{opacity:1;transform:translateY(0) scale(1.05)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes confettiFall{0%{opacity:0;transform:translateY(-24px) rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(360px) rotate(420deg)}}@media(max-width:560px){:root{--tabbar-height: 70px}.page{padding:4px 4px calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 10px)}.surface,.panel,.ticket,.hotel,.poster,.form{border-left-color:#eee;border-right-color:#eee;box-shadow:none}.hero-content,.panel,.ticket,.form{padding:10px}.ticket-prize-qrs{grid-template-columns:1fr}.ticket-prize-qr img{width:min(260px,82vw)}.hotel{padding:0}.hero-title-row{grid-template-columns:1fr}.status-card{align-items:flex-start;flex-wrap:wrap}.status-card span{width:100%;margin-left:30px}.info-grid,.stats,.admin-grid,.address-grid,.gift-panel,.admin-command-grid,.admin-claim-box{grid-template-columns:1fr}.admin-stat-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-progress-grid,.admin-stat-columns{grid-template-columns:1fr}.admin-work-grid,.admin-game-pool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-roundtable-head{grid-template-columns:1fr}.admin-roundtable-head button{width:100%}.admin-photo-actions{grid-template-columns:1fr}.roundtable-teacher-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-trend-bars{gap:3px;overflow:hidden}.admin-trend-bars i{max-width:10px}.admin-login-hero h1{font-size:32px}.admin-action-row{grid-template-columns:1fr}.game-start-card{padding:14px 12px}.game-ambassador.hero{grid-template-columns:minmax(132px,44%) minmax(0,1fr);gap:8px}.game-ambassador.hero img{width:min(178px,42vw);height:min(178px,42vw)}.game-ambassador.hero b{font-size:18px}.game-ambassador.hero small{font-size:12px}.game-start-rules{gap:6px}.game-start-rules article{padding:8px 6px}.game-arena{padding-left:6px;padding-right:6px}.game-arena-head{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"exit ambassador" "ticker ticker";gap:6px}.game-arena-head .game-exit-button{grid-area:exit}.game-arena-head .game-ambassador{grid-area:ambassador}.game-arena-head .game-rank-ticker{grid-area:ticker;padding-left:3px}.game-arena-loading .game-arena-head{grid-template-columns:1fr;grid-template-areas:"ambassador" "ticker"}.game-feed-card{padding:12px 10px}.game-feed-card h1{font-size:clamp(21px,6vw,28px)}.game-result-ceremony{padding-left:12px;padding-right:12px}.game-rank-row{grid-template-columns:26px 38px minmax(0,1fr) 48px 38px;gap:6px}.game-rank-row .person-avatar,.game-rank-row .system-avatar{width:38px;height:38px}.game-rank-row strong{font-size:14px}.game-rank-row em{font-size:16px}.gift-panel>img{max-width:230px;justify-self:center}.invite-gift{grid-template-columns:72px minmax(0,1fr) 22px}.invite-gift>img{width:72px}.invite-gift .gift-image-button img{width:72px}.invite-gift-hero{grid-template-columns:92px minmax(0,1fr) 22px}.invite-gift-hero>img{width:92px}.invite-gift-hero .gift-image-button img{width:92px}.invite-rule-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.actions>*{flex-basis:100%}.subhead h1,.page-title h1{font-size:26px}.hotel-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.hotel-summary article{min-height:72px;flex-direction:column;justify-content:center;text-align:center;padding:9px 5px;gap:4px}.hotel-summary b{font-size:18px}.hotel-summary span{font-size:12px;line-height:1.25}.map-location{grid-template-columns:48px minmax(0,1fr) 36px 36px}.compact-route-list{grid-template-columns:1fr}.compact-route-list .route-card{display:grid;grid-template-columns:42px minmax(0,1fr)}.hotel-list{display:block;columns:2;column-gap:6px}.hotel-head svg{display:none}.hotel-actions svg{width:14px;height:14px}.map-shell{height:260px}.map-safe-detail{left:8px;right:8px;bottom:8px;padding:10px}.invite-landing-page{padding:0 0 calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 14px)}.invite-landing-page .fission-home{min-height:calc(100vh - var(--tabbar-height) - env(safe-area-inset-bottom) - 14px);border-left:0;border-right:0;border-top:0;border-radius:0}.invite-landing-page .fission-home-body{padding:19px 20px 23px}.invite-landing-page .invite-full-visual img{aspect-ratio:1056 / 584}.invite-landing-page .fission-meta span{font-size:13px}}
