*{box-sizing:border-box;margin:0;padding:0}:root{--font-title: "Ma Shan Zheng", cursive;--font-body: "ZCOOL KuaiLe", sans-serif;--success: #81c784;--danger: #e57373;--warning-text: #c27c35;--warning-bg: rgba(255, 213, 160, .35);--error: #d32f2f}html[data-theme=pink]{--bg: #fdf8fc;--card: #ffffff;--card-bg: #fffafd;--border: #f0dce8;--accent: #efa4c6;--accent2: #80cbc4;--accent-soft: #fce4ec;--accent-mid: #f6c4de;--accent-deep: #be6f9a;--accent-border-soft: rgba(239, 164, 198, .62);--accent-glow-soft: rgba(239, 164, 198, .22);--header-btn-shadow: rgba(239, 164, 198, .34);--btn-primary-shadow: rgba(239, 164, 198, .3);--gem: #ba68c8;--text: #5d4e60;--muted: #9a8a9a;--shadow-soft: 0 8px 28px rgba(239, 164, 198, .12), 0 2px 10px rgba(128, 203, 196, .08);--shadow-card: 0 10px 32px rgba(93, 78, 96, .08);--header-gradient: linear-gradient(135deg, #ffffff 0%, #fff5f9 50%, #f3fcfb 100%);--bg-blobs: radial-gradient(ellipse 120% 80% at 10% 90%, rgba(239, 164, 198, .14) 0%, transparent 55%), radial-gradient(ellipse 100% 70% at 88% 12%, rgba(186, 104, 200, .1) 0%, transparent 50%), radial-gradient(ellipse 80% 60% at 50% 50%, rgba(128, 203, 196, .12) 0%, transparent 45%)}html[data-theme=blue]{--bg: #f3f8fd;--card: #ffffff;--card-bg: #eef4ff;--border: #d3e4f5;--accent: #5b9bd5;--accent2: #7eb8da;--accent-soft: #e3f0fc;--accent-mid: #90caf9;--accent-deep: #1565c0;--accent-border-soft: rgba(91, 155, 213, .55);--accent-glow-soft: rgba(66, 165, 245, .28);--header-btn-shadow: rgba(91, 155, 213, .38);--btn-primary-shadow: rgba(91, 155, 213, .32);--gem: #7e57c2;--text: #4a5568;--muted: #7d899c;--shadow-soft: 0 8px 28px rgba(91, 155, 213, .14), 0 2px 10px rgba(126, 184, 218, .1);--shadow-card: 0 10px 32px rgba(74, 85, 104, .08);--header-gradient: linear-gradient(135deg, #ffffff 0%, #f0f7ff 50%, #e8f6fa 100%);--bg-blobs: radial-gradient(ellipse 120% 80% at 10% 90%, rgba(91, 155, 213, .16) 0%, transparent 55%), radial-gradient(ellipse 100% 70% at 88% 12%, rgba(126, 184, 218, .14) 0%, transparent 50%), radial-gradient(ellipse 80% 60% at 50% 50%, rgba(144, 202, 249, .15) 0%, transparent 45%)}html[data-theme=green]{--bg: #f5fcf7;--card: #ffffff;--card-bg: #f0faf3;--border: #cfe8d8;--accent: #66bb6a;--accent2: #81c784;--accent-soft: #e8f5e9;--accent-mid: #a5d6a7;--accent-deep: #2e7d32;--accent-border-soft: rgba(102, 187, 106, .55);--accent-glow-soft: rgba(102, 187, 106, .28);--header-btn-shadow: rgba(102, 187, 106, .38);--btn-primary-shadow: rgba(102, 187, 106, .32);--gem: #ab47bc;--text: #4a5d4e;--muted: #7d9482;--shadow-soft: 0 8px 28px rgba(102, 187, 106, .14), 0 2px 10px rgba(129, 199, 132, .1);--shadow-card: 0 10px 32px rgba(74, 93, 78, .08);--header-gradient: linear-gradient(135deg, #ffffff 0%, #f4fbf6 50%, #eef8f3 100%);--bg-blobs: radial-gradient(ellipse 120% 80% at 10% 90%, rgba(102, 187, 106, .16) 0%, transparent 55%), radial-gradient(ellipse 100% 70% at 88% 12%, rgba(129, 199, 132, .14) 0%, transparent 50%), radial-gradient(ellipse 80% 60% at 50% 50%, rgba(165, 214, 167, .18) 0%, transparent 45%)}html[data-theme=dark]{--bg: #1a191f;--card: #2d2b35;--card-bg: #25232c;--border: #403c4a;--accent: #f48fb1;--accent2: #4db6ac;--accent-soft: rgba(244, 143, 177, .12);--accent-mid: #f06292;--accent-deep: #ffb3d9;--accent-border-soft: rgba(244, 143, 177, .45);--accent-glow-soft: rgba(244, 143, 177, .25);--header-btn-shadow: rgba(0, 0, 0, .45);--btn-primary-shadow: rgba(0, 0, 0, .4);--gem: #ce93d8;--text: #ece6f0;--muted: #a89bb0;--shadow-soft: 0 8px 28px rgba(0, 0, 0, .35), 0 2px 10px rgba(244, 143, 177, .06);--shadow-card: 0 10px 32px rgba(0, 0, 0, .4);--header-gradient: linear-gradient(135deg, #2d2b35 0%, #25232c 45%, #1f2528 100%);--bg-blobs: radial-gradient(ellipse 120% 80% at 10% 90%, rgba(244, 143, 177, .07) 0%, transparent 55%), radial-gradient(ellipse 100% 70% at 88% 12%, rgba(77, 182, 172, .08) 0%, transparent 50%), radial-gradient(ellipse 80% 60% at 50% 50%, rgba(186, 104, 200, .06) 0%, transparent 45%)}body{font-family:var(--font-body);background-color:var(--bg);color:var(--text);min-height:100vh;background-image:var(--bg-blobs)}html.auth-page-white body{background-color:#fff;background-image:none}html.auth-page-white .page .alert:not(.alert-error){background:#fff!important;border:1px solid var(--border)!important;color:var(--text)!important}html.auth-page-white .register-species-card.btn-secondary{background:#fff!important;border-color:var(--border)!important;color:var(--text);box-shadow:none}html.auth-page-white .register-species-card.btn-primary{background:#fff!important;color:var(--accent-deep);border:2px solid var(--accent)!important;box-shadow:none}html.auth-page-white .register-species-carousel-nav.btn-secondary{background:#fff!important;border-color:var(--border)!important;color:var(--accent-deep)}html.auth-page-white .pet-illustration-frame{background:#fff!important}html.auth-page-white .register-species-stage-demo{background:#f4f4f6;border-color:var(--border)}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-body);cursor:pointer;border:none;border-radius:12px;padding:10px 20px;font-size:1rem;transition:transform .15s,box-shadow .15s}button:hover{transform:translateY(-2px)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}input,textarea{font-family:var(--font-body);padding:10px 14px;border-radius:12px;border:2px solid var(--border);background:var(--card);color:var(--text);font-size:1rem;max-width:100%;min-width:0;box-sizing:border-box}input:focus,textarea:focus{outline:none;border-color:var(--accent)}.app-header{background:var(--header-gradient);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-soft);border-bottom:1px solid var(--border)}.app-header .header-brand{display:flex;align-items:center;gap:14px;min-width:0}.app-header .account-avatar-btn{flex-shrink:0;width:48px;height:48px;padding:0;border:2px solid var(--accent);border-radius:50%;background:var(--card);cursor:pointer;overflow:hidden;display:flex;align-items:center;justify-content:center}.app-header .account-avatar-btn:disabled{opacity:.6;cursor:wait}.app-header .account-avatar-img{width:100%;height:100%;object-fit:cover}.app-header .account-avatar-placeholder{font-size:1.1rem;font-weight:700;color:var(--accent)}.app-header h1{font-family:var(--font-title);font-size:1.8rem;color:var(--accent);margin:0}.app-header .user-info{display:flex;align-items:center;gap:12px}.app-header .user-info span{color:var(--muted)}.app-header button:not(.macaron-select-trigger){background:linear-gradient(135deg,var(--accent) 0%,var(--accent-mid) 100%);color:#fff;box-shadow:0 4px 14px var(--header-btn-shadow)}.header-brand--admin{flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.header-admin-title-block{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;flex:1 1 auto}.header-title-link--admin{flex:0 0 auto;max-width:100%}.header-admin-userline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:.88rem;line-height:1.35;color:var(--muted);padding-left:1px}.header-admin-name{color:var(--muted)}.header-admin-role{font-size:.88rem;font-weight:600;color:var(--accent-deep)}.app-header .macaron-select-trigger{background:transparent;background-image:none;color:var(--accent-deep);border:2px solid var(--accent);box-shadow:none;border-radius:999px}.app-header .macaron-select-trigger:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow-soft)}.app-header .macaron-select-trigger__caret{border-top-color:var(--accent-deep);opacity:1}.user-info--admin{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.header-admin-end{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.header-actions-end{display:flex;align-items:center;gap:8px;flex-shrink:0}.theme-select-macaron{font-family:var(--font-body);font-size:.76rem;padding:6px 8px;border-radius:10px;border:2px solid var(--border);background:var(--card);color:var(--text);min-width:4.2rem;max-width:5.6rem;cursor:pointer;box-sizing:border-box}.theme-select-macaron:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow-soft)}.header-title-link{flex:1 1 auto;min-width:0}.header-brand-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}.app-header .header-brand h1{white-space:nowrap;writing-mode:horizontal-tb}.app-header:not(.app-header--student) .header-brand h1{font-size:clamp(1.05rem,3.6vw,1.8rem)}.app-header--student .header-brand{align-items:flex-start}.app-header--student .header-brand h1{font-size:clamp(1rem,4.2vw,1.75rem);line-height:1.2;word-break:keep-all;overflow-wrap:normal}.app-header--student .header-brand h1 .py-wrap{line-height:1.42}.app-header--student .header-brand h1 .py-pinyin-item{font-size:.5em}.user-info--student{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 14px;max-width:min(100%,520px)}.header-stats-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px}.header-stat{display:inline-flex;flex-direction:row;align-items:center;gap:6px 8px;padding:6px 12px;border-radius:14px;background:#ffffffd9;border:1px solid var(--border);box-shadow:0 2px 8px #f48fb11f;font-size:.88rem}.header-stat--coins{color:var(--accent)}.header-stat--gems{color:var(--gem)}.header-stat-label .py-wrap{line-height:1.35}.header-stat-label .py-pinyin-item{font-size:.48em}.header-stat-value{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.header-stat-ico{font-size:1rem;line-height:1}.header-actions-row{display:flex;align-items:center;gap:10px;min-width:0}.header-user-name{flex:1;min-width:0;max-width:100%;color:var(--muted);font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-user-name .py-wrap{line-height:1.4}.header-user-name .py-pinyin-item{font-size:.46em}.app-header--student .header-logout-btn{flex-shrink:0;padding:8px 16px;font-size:.88rem;white-space:nowrap}.app-header--student .header-pinyin-toggle-btn{flex-shrink:0;padding:8px 12px;font-size:.82rem;white-space:nowrap;border-radius:12px;border:2px solid var(--accent-border-soft);background:var(--card-bg);color:var(--accent-deep)}.app-header--student .header-pinyin-toggle-btn .py-wrap{line-height:1.35}.app-header--student .header-pinyin-toggle-btn .py-pinyin-item{font-size:.44em}.app-header--student .header-logout-btn .py-wrap{line-height:1.35}.app-header--student .header-logout-btn .py-pinyin-item{font-size:.44em}@media (max-width: 720px){.app-header{padding:12px 14px;align-items:stretch}.app-header--student{flex-direction:column;gap:12px}.app-header--student .header-brand{width:100%;gap:10px}.app-header--student .header-brand-actions{margin-left:auto}.app-header--student .account-avatar-btn{width:44px;height:44px}.user-info--student{flex-direction:column;align-items:stretch;max-width:none;width:100%;padding-top:10px;margin-top:2px;border-top:1px solid var(--border);gap:10px}.header-stats-row{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.header-stat{justify-content:center;min-height:44px;box-sizing:border-box}.header-actions-row{width:100%;justify-content:space-between;gap:12px}.app-header--student .header-pinyin-toggle-btn{padding:8px 10px;font-size:.78rem}.header-user-name{flex:1;min-width:0}.tabs{gap:6px;margin-bottom:14px}.tabs button{padding:8px 10px;font-size:.82rem}.page{padding:14px 12px}}.card{background:var(--card);border-radius:20px;padding:20px;box-shadow:var(--shadow-card);border:1px solid var(--border)}.pet-view-card{position:relative}.pet-view-rename-btn{position:absolute;top:14px;right:14px;z-index:2;padding:6px 12px;font-size:.8rem;white-space:nowrap}.pet-view-name-block{text-align:center;margin-bottom:20px;padding-top:2px}.pet-view-name-block .pet-view-name-title{margin:0 auto 6px;font-family:var(--font-title);color:var(--accent);text-align:center;font-size:clamp(1.1rem,4vw,1.5rem);line-height:1.35;max-width:100%;box-sizing:border-box;padding:0 clamp(56px,18vw,100px)}.page{max-width:900px;margin:0 auto;padding:24px}.page-admin-wide{max-width:1180px}.admin-pet-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-top:16px}.admin-pet-card-grid--equip{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.admin-pet-card{position:relative;border-radius:20px;padding:14px 12px 16px;background:linear-gradient(165deg,#ffffff 0%,var(--accent-soft) 55%,color-mix(in srgb,var(--accent2) 18%,#ffffff) 100%);border:2px solid var(--accent-border-soft);box-shadow:var(--shadow-card),inset 0 1px #ffffffe6;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.admin-pet-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 14px 36px color-mix(in srgb,var(--accent) 32%,transparent),0 4px 16px color-mix(in srgb,var(--accent2) 22%,transparent),inset 0 1px #fffffff2}.admin-pet-card-frame{position:relative;border-radius:16px;overflow:hidden;margin-bottom:10px;background:linear-gradient(180deg,#fff,#fce4ec);border:1px solid var(--border)}.admin-pet-card-shine{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(125deg,transparent 40%,rgba(255,255,255,.7) 50%,transparent 60%);pointer-events:none;z-index:1}.admin-pet-card-art{display:flex;justify-content:center;align-items:center;padding:8px;min-height:0}.admin-pet-hero-visual{position:relative;width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center}.admin-pet-hero-visual--compact{min-height:168px;max-width:168px;margin:0 auto;aspect-ratio:9 / 16;max-height:260px}.admin-pet-avatar-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center center;border-radius:12px;display:block}.admin-pet-avatar-img--compact{max-height:100%}.admin-pet-card-title{font-family:var(--font-title);font-size:1.15rem;color:var(--accent);text-align:center;font-weight:600;letter-spacing:.02em}.admin-pet-card-level{text-align:center;font-size:.9rem;color:#9575cd;margin-bottom:6px;font-weight:600}.admin-pet-card-owner{text-align:center;font-size:.78rem;color:var(--muted);margin-bottom:10px}.admin-pet-card-stats{display:flex;justify-content:center;gap:14px;font-size:.85rem;color:var(--text);padding:8px 4px;border-radius:12px;background:#ffffffbf;border:1px solid var(--border)}.admin-pet-card-footer{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted);text-align:center}.admin-pet-card-actions{margin-top:10px;display:flex;justify-content:center;gap:8px}.admin-hw-teacher-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px;width:100%;box-sizing:border-box}.admin-hw-teacher-name{flex:1;min-width:0;text-align:left}.admin-hw-pending-badge{flex-shrink:0;font-size:.82rem;font-weight:700;color:var(--accent-deep);background:var(--accent-soft);border:1px solid var(--accent-border-soft);padding:4px 11px;border-radius:999px;line-height:1.35;white-space:nowrap}.admin-hw-pending-badge--inline{font-size:.8rem;padding:3px 10px}.admin-pet-equip-readonly-wrap{min-width:0;width:100%;max-width:100%;box-sizing:border-box}.admin-pet-equip-readonly-art{min-width:0;width:100%;max-width:100%;overflow:hidden;border-radius:7px;line-height:0;background:linear-gradient(155deg,#fce4ec,#e1f5fe 55%,#f3e5f7)}.admin-pet-equip-readonly-tile{width:100%;max-width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:4px;padding:4px 3px 5px;border-radius:12px;background:var(--card-bg);border:2px solid transparent;min-height:0;overflow:hidden;pointer-events:none;cursor:default;-webkit-user-select:none;user-select:none}.admin-pet-equip-readonly-tile--filled{padding:2px 2px 4px}.admin-pet-equip-readonly-tile--empty{border-style:dashed;border-color:var(--border);background:linear-gradient(160deg,#fce4ec8c,#e3f2fd73)}.admin-pet-equip-readonly-empty-ph{background:linear-gradient(155deg,#fce8f0,#e3f2fd,#f3e5f7)!important;border-color:#ba68c847!important;opacity:.92}.admin-pet-equip-readonly-name{font-size:.68rem;font-weight:600;line-height:1.2;text-align:center;word-break:break-all;color:var(--text)}.admin-pet-equip-readonly-dash{font-size:.72rem;color:#5d4e6059;text-align:center;line-height:1.2}.admin-pet-card-headline{display:flex;justify-content:center;align-items:center;flex-direction:column;flex-wrap:nowrap;gap:2px 0;margin-bottom:10px}.admin-pet-card--side-equip .admin-pet-card-headline .admin-pet-card-title{margin:0}.admin-pet-card--side-equip .admin-pet-card-headline .admin-pet-card-level{margin:2px 0 0}.admin-schedule-teacher-list{display:flex;flex-direction:column;gap:10px;list-style:none;padding:0;margin:0 0 12px;width:100%;max-width:100%;box-sizing:border-box}.admin-schedule-teacher-list>li{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;width:100%}.admin-pet-triptych{display:flex;align-items:stretch;gap:6px 8px;margin-bottom:12px;min-height:0;min-width:0;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.admin-pet-equip-side{flex:1 1 0;min-width:0;max-width:min(128px,32%);display:flex;flex-direction:column;gap:5px;justify-content:center}.admin-pet-equip-side .admin-pet-equip-readonly-name{font-size:.62rem}.admin-pet-hero{flex:1 1 auto;min-width:0;max-width:100%;display:flex;align-items:center;justify-content:center}.admin-pet-card-frame--hero{width:100%;max-width:min(220px,100%);margin-bottom:0;min-width:0;background:linear-gradient(168deg,#fce4ec,#ede7f6 42%,#e3f2fd);border:1px solid var(--border)}.admin-pet-card-art--hero{position:relative;display:block;min-height:0;min-width:0;aspect-ratio:9 / 16;width:100%;max-width:min(220px,100%);margin:0 auto;padding:0;box-sizing:border-box}.admin-pet-card-art--hero .admin-pet-hero-visual{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.admin-pet-card-art--hero .admin-pet-avatar-img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center center;border-radius:0}.admin-pet-card-art--hero .admin-pet-hero-illustration{border:none!important;box-shadow:none!important}.admin-pet-card--side-equip .admin-pet-card-owner{margin-bottom:8px}.admin-pet-card--side-equip .admin-pet-card-stats{padding:6px 4px}@media (max-width: 520px){.admin-pet-card-grid--equip{grid-template-columns:1fr}.admin-pet-equip-side{max-width:min(108px,30%)}.admin-pet-card-art--hero,.admin-pet-card-frame--hero{max-width:min(200px,46vw)}}.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tabs button{background:var(--card-bg);color:var(--muted);border:2px solid var(--border)}.tabs button.active{color:var(--accent-deep);border-color:var(--accent);background:var(--accent-soft)}.tabs button.tabs-btn-homework-archive{position:relative;padding-right:26px}.tabs button.tabs-btn-homework-archive .tabs-btn-homework-archive__label{vertical-align:middle}.tabs button.tabs-btn-homework-archive .tabs-hw-notify{position:absolute;top:1px;right:5px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:linear-gradient(145deg,#ff8a9b,#f06292);color:#fff;font-size:.62rem;font-weight:800;line-height:16px;text-align:center;box-shadow:0 2px 8px #f0629266;border:1.5px solid rgba(255,255,255,.92);pointer-events:none}select.select-macaron{font-family:var(--font-body);padding:8px 32px 8px 12px;border-radius:14px;border:2px solid var(--border);background-color:var(--card-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23be6f9a' d='M0 0h10L5 6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;color:var(--text);min-width:158px;max-width:100%;font-size:.85rem;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;box-shadow:0 2px 10px var(--accent-glow-soft)}select.select-macaron:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow-soft)}select.select-macaron:disabled{opacity:.55;cursor:not-allowed}html[data-theme=dark] select.select-macaron{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23ece6f0' d='M0 0h10L5 6z'/%3E%3C/svg%3E")}select.select-macaron.select-macaron--xs{min-width:0;width:90px;max-width:100%;padding:6px 22px 6px 8px;font-size:.78rem}select.select-macaron.select-macaron--narrow{min-width:0;width:80px;max-width:100%;padding:6px 22px 6px 8px;font-size:.78rem}select.select-macaron.select-macaron--fluid{min-width:0;flex:1 1 auto;width:100%;max-width:100%}.macaron-select-wrap{position:relative;display:inline-block;vertical-align:middle;max-width:100%}.macaron-select-wrap--fluid{display:block;flex:1 1 auto;min-width:0;width:100%}.macaron-select-trigger{font-family:var(--font-body);margin:0;padding:8px 32px 8px 12px;border-radius:14px;border:2px solid var(--border);background-color:var(--card-bg);color:var(--text);font-size:.85rem;cursor:pointer;box-sizing:border-box;box-shadow:0 2px 10px var(--accent-glow-soft);width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;line-height:1.35;-webkit-tap-highlight-color:transparent}.macaron-select-trigger:disabled{opacity:.55;cursor:not-allowed}.macaron-select-trigger:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow-soft)}.macaron-select-trigger__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.macaron-select-trigger__caret{flex-shrink:0;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--accent-deep);opacity:.85}.macaron-select-trigger--default{min-width:158px}.macaron-select-wrap--default:not(.macaron-select-wrap--fluid){min-width:158px}.macaron-select-trigger--xs{min-width:0;width:100%;padding:6px 22px 6px 8px;font-size:.78rem;border-radius:12px}.macaron-select-wrap--xs{width:90px;max-width:100%}.macaron-select-trigger--narrow{min-width:0;width:100%;padding:6px 22px 6px 8px;font-size:.78rem;border-radius:12px}.macaron-select-wrap--narrow{width:80px;max-width:100%}.macaron-select-trigger--fluid{min-width:0}.macaron-select-trigger--theme{font-size:.76rem;padding:6px 28px 6px 8px;border-radius:10px;box-shadow:none;min-width:4.2rem;max-width:5.6rem}.macaron-select-wrap--theme{min-width:4.2rem;max-width:5.6rem}.macaron-select-menu{margin:0;padding:6px 0;list-style:none;background:var(--card-bg);border:2px solid var(--border);border-radius:14px;box-shadow:var(--shadow-soft);max-height:min(70vh,320px);overflow-y:auto;box-sizing:border-box}.macaron-select-menu__group{padding:8px 14px 4px;font-size:.72rem;font-weight:700;color:var(--muted);list-style:none;cursor:default;pointer-events:none}.macaron-select-menu__item{padding:10px 14px;cursor:pointer;font-size:.85rem;line-height:1.35;color:var(--text)}.macaron-select-menu__item:hover,.macaron-select-menu__item--active{background:var(--accent-soft)}html[data-theme=dark] .macaron-select-trigger__caret{border-top-color:#ece6f0}.pet-avatar{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#fce4ec,#e1f5fe,#e8f5e9);border:3px solid rgba(244,143,177,.5);display:flex;align-items:center;justify-content:center;font-size:3rem;margin:0 auto 16px;box-shadow:0 8px 24px #f48fb140}.exp-bar{height:10px;background:var(--border);border-radius:10px;overflow:hidden;margin-top:6px}.exp-bar-inner{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:10px;transition:width .3s}.form-group{margin-bottom:16px;min-width:0;max-width:100%}.form-group label{display:block;margin-bottom:6px;color:var(--muted)}.form-group--file{overflow:hidden}.file-input-wrap{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden;border-radius:12px;border:2px solid var(--border);background:var(--card)}.file-input-wrap input[type=file]{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin:0;padding:8px 10px;border:none;border-radius:10px;background:transparent;font-size:.875rem;line-height:1.4;cursor:pointer}.file-input-wrap input[type=file]:focus{outline:none;box-shadow:inset 0 0 0 2px var(--accent)}.file-input-wrap input[type=file]:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-mid) 100%);color:#fff;box-shadow:0 4px 12px var(--btn-primary-shadow)}.btn-secondary{background:var(--card-bg);color:var(--accent-deep);border:2px solid var(--accent-border-soft)}.btn-danger{background:linear-gradient(135deg,#ef9a9a,#e57373);color:#fff}.admin-credits-subtabs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px}.admin-credits-tab{min-width:6.75rem;padding:10px 18px;font-size:.95rem;border-radius:12px;text-align:center;line-height:1.35}.admin-credits-student-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.admin-credits-action{min-width:6.75rem;padding:10px 18px;font-size:.95rem;border-radius:12px;text-align:center;line-height:1.35}.admin-credits-action--open{border-color:#c628288c;color:var(--error, #c62828);background:#c6282812}html[data-theme=dark] .admin-credits-action--open{border-color:#ef9a9a8c;color:#ffcdd2;background:#c6282826}.admin-credits-panel{margin-bottom:16px;max-width:420px;box-sizing:border-box}.admin-credits-panel--danger{padding:16px;border:1px solid var(--error, #c62828);border-radius:12px;background:var(--accent-soft);box-shadow:0 2px 12px #c6282814}html[data-theme=dark] .admin-credits-panel--danger{box-shadow:0 2px 14px #00000059}.admin-credits-list-heading{margin:2px 0 10px;font-size:1.05rem;font-weight:700;color:var(--accent-deep)}.alert{padding:12px;border-radius:12px;margin-bottom:16px}.alert-error{background:#e573732e;color:#c62828;border:1px solid rgba(229,115,115,.35)}.alert-success{background:#81c78433;color:#2e7d32;border:1px solid rgba(129,199,132,.35)}.grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.battle-opponent-grid{align-items:stretch}.battle-opponent-card{display:flex;flex-direction:row;align-items:flex-start;gap:14px;padding:14px 16px;min-height:0}.battle-opponent-art{flex-shrink:0;width:100px;aspect-ratio:9 / 16;height:auto;border-radius:12px;overflow:hidden;background:var(--card-bg, #fffafd);border:1px solid var(--border, rgba(0, 0, 0, .08));position:relative;line-height:0}.battle-opponent-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.battle-opponent-name{font-weight:700;font-size:1rem;line-height:1.25}.battle-opponent-meta{font-size:.88rem;color:var(--muted)}.battle-opponent-stats{font-size:.8rem;line-height:1.45;color:var(--text, inherit);word-break:break-word}.battle-opponent-btn{margin-top:6px;align-self:flex-start}.pet-illustration-frame--bordered{border:1px solid var(--border);box-shadow:0 6px 18px #5d4e6014}@media (max-width: 420px){.battle-opponent-card{flex-direction:column;align-items:center;text-align:center}.battle-opponent-btn{align-self:stretch}}.item-list{list-style:none}.item-list li{padding:10px 14px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.battle-log{max-height:200px;overflow-y:auto;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:12px;font-size:.9rem;margin-top:12px}.battle-log p{margin-bottom:4px}.pet-gear-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#5d4e6059;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}html[data-theme=dark] .pet-gear-overlay{background:#00000085}.pet-gear-drawer{position:fixed;top:0;right:0;bottom:0;z-index:1001;width:min(100%,340px);max-width:100vw;box-sizing:border-box;background:linear-gradient(180deg,var(--card-bg) 0%,var(--card) 28%);box-shadow:-8px 0 32px var(--accent-glow-soft);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;animation:petGearDrawerIn .22s ease-out}@keyframes petGearDrawerIn{0%{transform:translate(100%);opacity:.9}to{transform:translate(0);opacity:1}}.pet-gear-drawer-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:#ffffffeb}.pet-gear-drawer-title{margin:0;font-size:1rem;font-weight:700;color:var(--accent)}.pet-gear-drawer-close{flex-shrink:0;width:40px;height:40px;padding:0;border-radius:12px;font-size:1.35rem;line-height:1;display:flex;align-items:center;justify-content:center}.pet-gear-drawer-body{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch}.pet-gear-drawer-art{display:flex;justify-content:center;width:100%;margin-bottom:10px}.pet-gear-drawer-section{margin-bottom:14px}.pet-gear-drawer-section h5{margin:0 0 6px;font-size:.72rem;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:.02em}.pet-gear-drawer-name{font-size:1.05rem;font-weight:700;line-height:1.35;margin-bottom:8px}.pet-gear-drawer-meta{font-size:.88rem;color:var(--muted);line-height:1.5}.pet-gear-drawer-kv{--pet-kv-label-col: 6.75rem;display:grid;grid-template-columns:var(--pet-kv-label-col) minmax(0,1fr);column-gap:.7rem;align-items:start;margin-bottom:4px;font-size:.82rem;line-height:1.28;text-align:left}.pet-gear-drawer-kv .py-wrap{line-height:1.36!important}.pet-gear-drawer-kv-label{font-weight:700;text-align:left;justify-self:start;width:100%;max-width:var(--pet-kv-label-col)}.pet-gear-drawer-kv-val{font-weight:800;word-break:break-word;min-width:0;text-align:left;justify-self:start}.pet-gear-drawer-kv-val--emph{font-size:.9rem;font-weight:800}@media (max-width: 320px){.pet-gear-drawer-kv{--pet-kv-label-col: 6rem}}.pet-gear-detail-shell{padding:10px 12px 8px;border-radius:14px;box-sizing:border-box;-webkit-font-smoothing:antialiased}.pet-gear-detail-shell .pet-gear-drawer-art{margin-bottom:8px}.pet-gear-detail-shell .pet-gear-drawer-section{margin-bottom:5px}.pet-gear-detail-shell .pet-gear-drawer-section h5{margin:0 0 1px;font-size:.66rem;line-height:1.2}.pet-gear-detail-shell .pet-gear-drawer-section h5 .py-wrap{line-height:1.35!important}.pet-gear-detail-shell .pet-gear-drawer-name{font-weight:800;font-size:.95rem;line-height:1.22;margin-bottom:0}.pet-gear-detail-shell .pet-gear-drawer-name .py-wrap{line-height:1.4!important}.pet-gear-detail-shell .pet-gear-drawer-meta{font-size:.82rem;font-weight:700;line-height:1.28}.pet-gear-detail-shell .pet-gear-drawer-meta .py-wrap{line-height:1.38!important}.pet-gear-detail-shell .py-pinyin-item,.pet-gear-detail-shell .py-chinese-item,.pet-gear-detail-shell .py-non-chinese-item{color:inherit}.pet-gear-detail-shell--white{background:linear-gradient(155deg,#9aa0a8,#a5abb3 45%,#aeb4bc);color:#fff;border:1px solid #b8bec6;box-shadow:inset 0 1px #ffffff59}.pet-gear-detail-shell--white .pet-gear-drawer-section h5{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.18)}.pet-gear-detail-shell--white .pet-gear-drawer-meta,.pet-gear-detail-shell--white .pet-gear-drawer-name,.pet-gear-detail-shell--white .pet-gear-drawer-kv-label,.pet-gear-detail-shell--white .pet-gear-drawer-kv-val{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.2)}.pet-gear-detail-shell--white .py-pinyin-item,.pet-gear-detail-shell--white .py-chinese-item,.pet-gear-detail-shell--white .py-non-chinese-item{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.15)}.pet-gear-detail-shell--green{background:linear-gradient(180deg,#f1f8e9fa,#c8e6c98c);border:1px solid rgba(56,142,60,.38);color:#1b5e20}.pet-gear-detail-shell--green .pet-gear-drawer-section h5{color:#2e7d32!important}.pet-gear-detail-shell--green .pet-gear-drawer-meta,.pet-gear-detail-shell--green .pet-gear-drawer-name,.pet-gear-detail-shell--green .pet-gear-drawer-kv-val{color:#14532d!important}.pet-gear-detail-shell--green .pet-gear-drawer-kv-label{color:#2e7d32!important}.pet-gear-detail-shell--green .py-pinyin-item{color:#1b5e20d1!important}.pet-gear-detail-shell--blue{background:linear-gradient(180deg,#e3f2fdfa,#bbdefb8c);border:1px solid rgba(25,118,210,.35);color:#0d47a1}.pet-gear-detail-shell--blue .pet-gear-drawer-section h5{color:#1565c0!important}.pet-gear-detail-shell--blue .pet-gear-drawer-meta,.pet-gear-detail-shell--blue .pet-gear-drawer-name,.pet-gear-detail-shell--blue .pet-gear-drawer-kv-val{color:#0d47a1!important}.pet-gear-detail-shell--blue .pet-gear-drawer-kv-label{color:#1565c0!important}.pet-gear-detail-shell--blue .py-pinyin-item{color:#0d47a1d1!important}.pet-gear-detail-shell--purple{background:linear-gradient(180deg,#f3e5f5fa,#e1bee780);border:1px solid rgba(123,31,162,.35);color:#4a148c}.pet-gear-detail-shell--purple .pet-gear-drawer-section h5{color:#6a1b9a!important}.pet-gear-detail-shell--purple .pet-gear-drawer-meta,.pet-gear-detail-shell--purple .pet-gear-drawer-name,.pet-gear-detail-shell--purple .pet-gear-drawer-kv-val{color:#4a148c!important}.pet-gear-detail-shell--purple .pet-gear-drawer-kv-label{color:#6a1b9a!important}.pet-gear-detail-shell--purple .py-pinyin-item{color:#4a148cd1!important}.pet-gear-detail-shell--pink{background:linear-gradient(180deg,#fce4ecfa,#f8bbd073);border:1px solid rgba(216,98,152,.35);color:#9b3f74}.pet-gear-detail-shell--pink .pet-gear-drawer-section h5{color:#b45586!important}.pet-gear-detail-shell--pink .pet-gear-drawer-meta,.pet-gear-detail-shell--pink .pet-gear-drawer-name,.pet-gear-detail-shell--pink .pet-gear-drawer-kv-val{color:#9b3f74!important}.pet-gear-detail-shell--pink .pet-gear-drawer-kv-label{color:#b45586!important}.pet-gear-detail-shell--pink .py-pinyin-item{color:#9b3f74d1!important}.pet-gear-detail-shell--orange{background:linear-gradient(180deg,#fffefb,#fff3e0);color:#e65100;border-radius:10px}.pet-gear-detail-shell--orange .pet-gear-drawer-section h5{color:#ef6c00!important}.pet-gear-detail-shell--orange .pet-gear-drawer-meta,.pet-gear-detail-shell--orange .pet-gear-drawer-name,.pet-gear-detail-shell--orange .pet-gear-drawer-kv-val{color:#e65100!important;text-shadow:0 0 10px rgba(255,152,0,.35),0 1px 0 #fff}.pet-gear-detail-shell--orange .pet-gear-drawer-kv-label{color:#ef6c00!important}.pet-gear-detail-shell--orange .py-pinyin-item{color:#e65100d9!important}.pet-gear-detail-shell--gold{background:linear-gradient(180deg,#fffde7,#fff59d 55%,#ffee58);color:#a16207;border-radius:10px}.pet-gear-detail-shell--gold .pet-gear-drawer-section h5{color:#b45309!important}.pet-gear-detail-shell--gold .pet-gear-drawer-meta,.pet-gear-detail-shell--gold .pet-gear-drawer-name,.pet-gear-detail-shell--gold .pet-gear-drawer-kv-val{color:#ca8a04!important;text-shadow:0 0 18px rgba(250,204,21,.75),0 0 6px rgba(234,179,8,.5),0 1px 0 #fffef0,0 2px 4px rgba(180,83,9,.2)}.pet-gear-detail-shell--gold .pet-gear-drawer-kv-label{color:#b45309!important}.pet-gear-detail-shell--gold .py-pinyin-item{color:#a16207e0!important}.pet-gear-detail-shell--black{background:linear-gradient(165deg,#3e2723,#1a0a0a 52%,#0d0404);color:#ffebee;border-radius:10px;box-shadow:inset 0 1px #ffffff0f}.pet-gear-detail-shell--black .pet-gear-drawer-section h5{color:#ffcdd2!important}.pet-gear-detail-shell--black .pet-gear-drawer-meta,.pet-gear-detail-shell--black .pet-gear-drawer-name,.pet-gear-detail-shell--black .pet-gear-drawer-kv-label,.pet-gear-detail-shell--black .pet-gear-drawer-kv-val{color:#fff!important;text-shadow:0 0 14px rgba(255,82,82,.65),0 0 28px rgba(244,67,54,.45),0 1px 0 rgba(60,10,10,.9)}.pet-gear-detail-shell--black .pet-gear-drawer-kv-label{color:#ffcdd2!important}.pet-gear-detail-shell--black .py-pinyin-item{color:#ffcdd2eb!important}.pet-gear-detail-frame{box-sizing:border-box;margin-bottom:12px}.pet-gear-detail-frame--orange{padding:3px;background:linear-gradient(125deg,#ffb74d,#ff9800 42%,#f57c00);clip-path:polygon(0 14px,14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px));filter:drop-shadow(0 0 12px rgba(255,152,0,.55)) drop-shadow(0 0 26px rgba(255,152,0,.28))}.pet-gear-detail-frame--gold{padding:4px;background:linear-gradient(155deg,#fff176,#ffca28 38%,#ffa000 72%,#ff8f00);clip-path:polygon(6% 0,94% 0,100% 10%,100% 90%,94% 100%,6% 100%,0 90%,0 10%);filter:drop-shadow(0 0 16px rgba(255,193,7,.7)) drop-shadow(0 0 36px rgba(255,193,7,.4)) drop-shadow(0 0 4px rgba(255,235,59,.5))}.pet-gear-detail-frame--black{padding:4px;background:linear-gradient(135deg,#ff5252,#e53935 40%,#b71c1c 78%,#3e0000);clip-path:polygon(0 14%,14% 0,86% 0,100% 14%,100% 86%,86% 100%,14% 100%,0 86%);filter:drop-shadow(0 0 14px rgba(244,67,54,.75)) drop-shadow(0 0 32px rgba(211,47,47,.55)) drop-shadow(0 0 48px rgba(183,28,28,.35))}.pet-gear-drawer-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.pet-gear-drawer-actions .btn-secondary,.pet-gear-drawer-actions .btn-primary{flex:1 1 calc(50% - 4px);min-width:120px;justify-content:center}.pet-gear-slot-wrap{min-width:0;width:100%}.pet-gear-slot-tile{width:100%;max-width:100%;min-width:0;box-sizing:border-box;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:4px;padding:6px 4px;border-radius:12px;cursor:pointer;background:var(--card-bg);transition:box-shadow .15s,transform .15s;border:2px solid transparent;min-height:0;overflow:hidden}.pet-gear-slot-empty-ph{width:100%;max-width:100%;min-width:0;aspect-ratio:16 / 9;border-radius:8px;border:1.5px dashed var(--border);opacity:.45;box-sizing:border-box;flex-shrink:0;align-self:stretch}.pet-gear-slot-tile:hover{box-shadow:0 4px 14px #f48fb133}.pet-gear-slot-tile--active{box-shadow:0 0 0 2px var(--accent)}.pet-gear-slot-tile--empty{border-style:dashed;border-color:var(--border);background:#f48fb10f}.pet-gear-slot-tile-lv{font-size:.65rem;color:var(--muted);font-weight:600;line-height:1.2;text-align:center}.pet-gear-bp-art{flex:0 0 auto;width:92px;max-width:30vw;min-width:0}.pet-gear-bp-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--card-bg);cursor:pointer;box-sizing:border-box;width:100%;text-align:left;transition:box-shadow .15s}.pet-gear-bp-row:hover{box-shadow:0 2px 12px #f48fb126}.pet-gear-bp-row--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pet-gear-bp-lv{margin-left:auto;flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--muted);align-self:center}.pet-gear-bp-main{flex:1 1 0;min-width:0;text-align:left;display:flex;flex-direction:column;gap:4px}.pet-gear-bp-name{font-size:.88rem;font-weight:800;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;word-break:break-word}.pet-gear-bp-attrs{font-size:.72rem;font-weight:600;line-height:1.35;opacity:.95}.pet-gear-bp-attrs--empty{opacity:.65;font-weight:500}.pet-gear-bp-row .py-pinyin-item,.pet-gear-bp-row .py-chinese-item,.pet-gear-bp-row .py-non-chinese-item{color:inherit}.pet-gear-bp-row--rarity-white{background:linear-gradient(135deg,#959ca4,#a0a7af);color:#fff;border-color:#b0b7bf}.pet-gear-bp-row--rarity-white.pet-gear-bp-row--active{border-color:var(--accent)}.pet-gear-bp-row--rarity-white .pet-gear-bp-name,.pet-gear-bp-row--rarity-white .pet-gear-bp-attrs{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.18)}.pet-gear-bp-row--rarity-white .pet-gear-bp-lv{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.15)}.pet-gear-bp-row--rarity-white .py-pinyin-item,.pet-gear-bp-row--rarity-white .py-chinese-item,.pet-gear-bp-row--rarity-white .py-non-chinese-item{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.15)}.pet-gear-bp-row--rarity-green{background:linear-gradient(180deg,#f1f8e9fa,#c8e6c973)}.pet-gear-bp-row--rarity-green .pet-gear-bp-name,.pet-gear-bp-row--rarity-green .pet-gear-bp-attrs{color:#14532d}.pet-gear-bp-row--rarity-green .pet-gear-bp-lv{color:#2e7d32}.pet-gear-bp-row--rarity-green .py-pinyin-item{color:#14532dd1!important}.pet-gear-bp-row--rarity-blue{background:linear-gradient(180deg,#e3f2fdfa,#bbdefb73)}.pet-gear-bp-row--rarity-blue .pet-gear-bp-name,.pet-gear-bp-row--rarity-blue .pet-gear-bp-attrs{color:#0d47a1}.pet-gear-bp-row--rarity-blue .pet-gear-bp-lv{color:#1565c0}.pet-gear-bp-row--rarity-blue .py-pinyin-item{color:#0d47a1d1!important}.pet-gear-bp-row--rarity-purple{background:linear-gradient(180deg,#f3e5f5fa,#e1bee76b)}.pet-gear-bp-row--rarity-purple .pet-gear-bp-name,.pet-gear-bp-row--rarity-purple .pet-gear-bp-attrs{color:#4a148c}.pet-gear-bp-row--rarity-purple .pet-gear-bp-lv{color:#6a1b9a}.pet-gear-bp-row--rarity-purple .py-pinyin-item{color:#4a148cd1!important}.pet-gear-bp-row--rarity-pink{background:linear-gradient(180deg,#fce4ecfa,#f8bbd061)}.pet-gear-bp-row--rarity-pink .pet-gear-bp-name,.pet-gear-bp-row--rarity-pink .pet-gear-bp-attrs{color:#9b3f74}.pet-gear-bp-row--rarity-pink .pet-gear-bp-lv{color:#b45586}.pet-gear-bp-row--rarity-pink .py-pinyin-item{color:#9b3f74d1!important}.pet-gear-bp-row--rarity-orange{background:linear-gradient(180deg,#fffefb,#fff3e0);box-shadow:0 0 14px #ff980038}.pet-gear-bp-row--rarity-orange .pet-gear-bp-name,.pet-gear-bp-row--rarity-orange .pet-gear-bp-attrs{color:#e65100;text-shadow:0 0 8px rgba(255,152,0,.25)}.pet-gear-bp-row--rarity-orange .pet-gear-bp-lv{color:#ef6c00}.pet-gear-bp-row--rarity-orange .py-pinyin-item{color:#e65100d9!important}.pet-gear-bp-row--rarity-gold{background:linear-gradient(180deg,#fffde7,#fff59d 70%,#ffee58);box-shadow:0 0 18px #ffc10752}.pet-gear-bp-row--rarity-gold .pet-gear-bp-name,.pet-gear-bp-row--rarity-gold .pet-gear-bp-attrs{color:#ca8a04;text-shadow:0 0 12px rgba(250,204,21,.45),0 1px 0 #fffef0}.pet-gear-bp-row--rarity-gold .pet-gear-bp-lv{color:#b45309}.pet-gear-bp-row--rarity-gold .py-pinyin-item{color:#a16207e0!important}.pet-gear-bp-row--rarity-black{background:linear-gradient(135deg,#7f0000,#c62828 52%,#8e0000);color:#ffebee;box-shadow:0 0 18px #d32f2f5c}.pet-gear-bp-row--rarity-black .pet-gear-bp-name,.pet-gear-bp-row--rarity-black .pet-gear-bp-attrs{color:#fff;text-shadow:0 0 10px rgba(255,82,82,.52)}.pet-gear-bp-row--rarity-black .pet-gear-bp-lv{color:#ffcdd2}.pet-gear-bp-row--rarity-black .py-pinyin-item{color:#ffcdd2e6!important}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}.admin-table th{color:var(--accent-deep)}.admin-table tr:hover{background:var(--accent-soft)}.admin-table--credits th{white-space:nowrap;writing-mode:horizontal-tb}.admin-table--credits td{vertical-align:middle}.admin-table--credits td:first-child{white-space:nowrap;max-width:none}.admin-table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.admin-table--credits .admin-table__th-actions,.admin-table--credits .admin-table__td-actions{width:1%;min-width:4.5rem;text-align:right}.admin-table-actions-row{display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:8px;align-items:center;justify-content:flex-end}.btn-secondary--table-action{font-size:.85rem;padding:6px 12px;margin:0;flex:0 0 auto;white-space:nowrap}.admin-timetable-scroll{overflow-x:auto;overflow-y:auto;max-height:70vh;-webkit-overflow-scrolling:touch}.admin-table.admin-timetable-table{width:max-content;min-width:560px;max-width:none;table-layout:fixed;border-collapse:separate;border-spacing:0}.admin-timetable-table th:not(.admin-timetable-sticky-col),.admin-timetable-table td:not(.admin-timetable-sticky-col){min-width:72px}.admin-timetable-table th.admin-timetable-sticky-col,.admin-timetable-table td.admin-timetable-sticky-col{position:sticky;left:0;z-index:2;background:var(--card);box-shadow:6px 0 14px -6px #5d4e6047;width:88px;min-width:76px;max-width:110px;box-sizing:border-box}.admin-timetable-table thead th.admin-timetable-sticky-col{z-index:5}.admin-timetable-slot-label{white-space:nowrap;font-size:.8rem;color:var(--muted);vertical-align:middle}.admin-timetable-table tbody tr:hover td.admin-timetable-sticky-col{background:var(--accent-soft)}.checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.py-wrap{line-height:2.5;letter-spacing:.02em}.py-wrap ruby{ruby-position:over;ruby-align:center}.py-result-item{display:inline;vertical-align:baseline;margin:0 .04em;line-height:1}.py-result-item>ruby{display:ruby;ruby-position:over;ruby-align:center}.py-pinyin-item{display:ruby-text;font-size:.66em;font-weight:600;line-height:1.2;color:#7a6d78;letter-spacing:.04em;font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}.py-chinese-item{display:ruby-base;font-size:1em;line-height:1}.py-non-chinese-item{display:inline-block;vertical-align:baseline;line-height:1;font-size:1em;font-family:inherit;transform:translateY(.06em)}.app-header h1 .py-wrap{font-family:var(--font-title);line-height:1.48}.app-header h1 .py-pinyin-item{font-size:.55em}.app-header h1 .py-non-chinese-item{transform:translateY(.04em)}h2 .py-wrap,h3 .py-wrap,h4 .py-wrap{line-height:1.52}h2 .py-pinyin-item,h3 .py-pinyin-item,h4 .py-pinyin-item{font-size:.58em}.tabs button .py-wrap{line-height:1.48}.tabs button .py-pinyin-item{font-size:.46em}.tabs button .py-non-chinese-item{transform:translateY(.05em);font-size:.95em}button .py-wrap{line-height:1.58}button .py-pinyin-item{font-size:.54em}button .py-non-chinese-item{transform:translateY(.05em)}.battle-log .py-wrap{line-height:2.2}.theme-dialog-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10050;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));box-sizing:border-box;pointer-events:none}.theme-dialog-root .theme-dialog-backdrop,.theme-dialog-root .theme-dialog-panel{pointer-events:auto}.theme-dialog-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;margin:0;cursor:pointer;background:#372a347a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.theme-dialog-panel{position:relative;width:100%;max-width:min(400px,100%);padding:22px 20px 18px;border-radius:18px;background:var(--card);border:2px solid var(--accent-border-soft);box-shadow:var(--shadow-card, 0 14px 44px rgba(93, 78, 96, .18));animation:theme-dialog-in .2s ease-out}@keyframes theme-dialog-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.theme-dialog-message{margin:0 0 20px;font-size:1rem;color:var(--text);text-align:center}.theme-dialog-message .py-wrap{line-height:2.4;display:inline-block;max-width:100%;text-align:center}.theme-dialog-actions{display:flex;flex-direction:row;justify-content:center;align-items:stretch;gap:12px;flex-wrap:wrap}.theme-dialog-actions--stack{flex-direction:column}.theme-dialog-actions--stack .theme-dialog-btn--primary{width:100%}.theme-dialog-btn{flex:1;min-width:min(132px,42%);padding:10px 16px;border-radius:14px;font-size:.95rem;cursor:pointer;border:2px solid var(--accent-border-soft);background:var(--card-bg);color:var(--accent-deep);font-family:inherit;transition:transform .12s ease,box-shadow .12s ease}.theme-dialog-btn:active{transform:scale(.98)}.theme-dialog-btn .py-wrap{line-height:1.55}.theme-dialog-btn .py-pinyin-item{font-size:.52em}.theme-dialog-btn--primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-mid) 100%);color:#fff;border-color:transparent;box-shadow:0 4px 14px var(--btn-primary-shadow)}.theme-dialog-btn--secondary:hover{border-color:var(--accent);background:var(--accent-soft)}.activities-page .activity-page-title{margin:0 0 10px;color:var(--accent)}.activities-page .activity-page-desc{margin:0 0 20px;color:var(--muted);font-size:.92rem;line-height:1.75}.activity-card-item{container-type:inline-size;display:flex;flex-direction:column;gap:14px;margin-bottom:14px;padding:18px 16px}.activity-card-row{display:block;width:100%;min-width:0}.activity-card-top{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:10px 14px;width:100%;min-width:0}.activity-card-title-wrap{flex:1 1 0;min-width:0;font-weight:800;font-size:clamp(1.02rem,3.2vw,1.26rem);letter-spacing:.02em;color:var(--text);text-align:left}.activity-card-title-wrap .py-wrap{line-height:2.45;display:inline-block;max-width:100%;text-align:left;word-break:break-word}.activity-card-meta.activity-card-meta--trailing{flex:0 1 auto;min-width:0;max-width:100%;font-size:clamp(.76rem,2.8vw,.88rem);line-height:1.5;text-align:right}.activity-card-meta--trailing .activity-card-meta-line{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 10px}.activity-card-meta-divider{color:var(--muted);opacity:.45;font-weight:300;-webkit-user-select:none;user-select:none;flex-shrink:0;line-height:1;font-size:.92em}.activity-card-date{color:var(--accent);flex-shrink:0}.activity-card-date .py-wrap{white-space:nowrap;line-height:2.1}.activity-card-location{color:var(--text);opacity:.72;flex-shrink:1;min-width:0}.activity-card-location .py-wrap{white-space:nowrap;line-height:2.1;display:inline-block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;vertical-align:bottom}@container (max-width: 320px){.activity-card-top{flex-wrap:wrap}.activity-card-meta.activity-card-meta--trailing{flex:1 1 100%;max-width:100%;text-align:right}.activity-card-title-wrap{flex:1 1 100%;max-width:100%;font-size:clamp(.98rem,3vw,1.15rem)}.activity-card-meta.activity-card-meta--trailing{font-size:clamp(.72rem,2.6vw,.82rem)}}@supports not (container-type: inline-size){@media (max-width: 360px){.activity-card-top{flex-wrap:wrap}.activity-card-meta.activity-card-meta--trailing{flex:1 1 100%;text-align:right}.activity-card-title-wrap{font-size:clamp(.98rem,3vw,1.15rem)}.activity-card-meta.activity-card-meta--trailing{font-size:clamp(.72rem,2.6vw,.82rem)}}}.activity-card-content{color:var(--muted);font-weight:500;font-size:.93rem;padding-top:0}.activity-card-content .py-wrap{line-height:2.2;white-space:pre-wrap;word-break:break-word}.activity-admin-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:18px;padding:14px;border-radius:14px;border:1px dashed var(--border);background:var(--card-bg, #fffafd)}.activity-card-admin-actions{margin-top:4px;padding-top:12px;border-top:1px dashed var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.activity-card-item--with-admin-footer{gap:12px}.shop-page .shop-header{margin-bottom:18px}.shop-page .shop-page-title{margin:0 0 12px;color:var(--accent)}.shop-intro{margin:0 0 10px;color:var(--muted);font-size:.92rem;line-height:1.68;max-width:42em}.shop-intro .py-wrap{line-height:2.05}.shop-intro--note{margin-bottom:14px;font-size:.86rem;line-height:1.58;opacity:.96}.shop-intro--note .py-wrap{line-height:1.95}.shop-balance{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;padding:12px 14px;border-radius:14px;background:var(--accent-soft);border:1px solid var(--border)}.shop-balance-label{font-size:1rem}.shop-balance-label .py-wrap{line-height:1.65}.shop-balance-value{font-size:1.38rem;font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1.2}.shop-alert{margin-bottom:14px}.shop-item-list{display:flex;flex-direction:column;gap:14px}.shop-item-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px;border:1px solid var(--border);background:var(--card-bg, #fffafd);box-shadow:var(--shadow-soft, 0 4px 18px rgba(93, 78, 96, .07));min-width:0}.shop-item-card--bp{padding:10px 12px}.shop-gear-bp-row{cursor:default}.shop-gear-bp-row:hover{transform:none}.shop-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-width:0}.shop-item-name{flex:1;min-width:0;font-weight:700;font-size:1.02rem}.shop-item-name .py-wrap{line-height:2.25}.shop-item-rarity-pill{flex-shrink:0;font-size:.78rem;font-weight:600;padding:5px 11px;border-radius:999px;border:1.5px solid;line-height:1.2}.shop-item-rarity-pill .py-wrap{line-height:1.48;white-space:nowrap}.shop-item-desc{font-size:.78rem;color:var(--muted);line-height:1.55;margin:2px 0 0}.shop-item-desc .py-wrap{line-height:2}.shop-item-stats{font-size:.82rem;color:var(--muted);padding:8px 0 0;border-top:1px dashed var(--border)}.shop-item-stats .py-wrap{line-height:2}.shop-item-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:2px;padding-top:12px;border-top:1px solid var(--border);min-height:52px}.shop-item-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;color:var(--accent);font-weight:700;min-width:0}.shop-item-price-num{font-size:1.22rem;font-variant-numeric:tabular-nums;line-height:1.2}.shop-item-price .py-wrap{line-height:1.45;font-size:.92rem}.shop-item-buy-btn{flex-shrink:0;min-width:92px;min-height:42px;padding:9px 20px}.shop-empty{color:var(--muted);margin-top:12px}.register-species-wait-hint{text-align:center;margin-top:6px;font-size:.72rem;color:var(--muted);line-height:1.45;padding:0 8px}.register-species-stage-demo{margin:0 0 10px;padding:8px 10px;border-radius:12px;background:color-mix(in srgb,var(--accent-soft) 35%,#ffffff);border:1px solid var(--border);text-align:center}.register-species-stage-demo__name{font-size:.92rem;font-weight:700;color:var(--accent-deep);margin-bottom:4px}.register-species-stage-demo__hint{font-size:.74rem;color:var(--muted);line-height:1.5}.register-species-stage-demo__dots{display:flex;justify-content:center;gap:6px;margin-top:8px}.register-species-stage-demo__dot{width:6px;height:6px;border-radius:50%;background:var(--border);opacity:.85}.register-species-stage-demo__dot--active{background:var(--accent);transform:scale(1.15)}.register-species-pet-art{display:flex;justify-content:center;margin-bottom:10px}.register-species-pet-art .pet-illustration-frame{width:min(220px,100%)!important}.register-species-carousel-wrap{display:flex;align-items:stretch;gap:10px}.register-species-carousel{flex:1;overflow-x:auto;scroll-snap-type:x mandatory;display:flex;scrollbar-width:none;-ms-overflow-style:none}.register-species-carousel::-webkit-scrollbar{display:none}.register-species-card{flex:0 0 100%;max-width:100%;scroll-snap-align:start;padding:14px 12px;text-align:center}.register-species-carousel-nav{width:40px;min-width:40px;padding:0;font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center}
