*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:#f5f7fa;min-height:100vh;margin:0;padding:24px 16px;font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif}#root{justify-content:center;display:flex}.app{width:100%;max-width:560px}.app-header{text-align:center;margin-bottom:20px}h1{color:#2c3e50;margin:0 0 16px;font-size:24px}.tabs{background:#fff;border-radius:14px;gap:6px;padding:6px;display:flex;box-shadow:0 2px 8px #0000000f}.tab{color:#7f8c8d;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:10px 16px;font-size:15px;font-weight:600;transition:all .2s}.tab.active{color:#fff;background:#3498db}.tab:hover:not(.active){background:#ecf0f1}.badge{color:#fff;vertical-align:middle;background:#e74c3c;border-radius:10px;margin-left:4px;padding:1px 7px;font-size:12px;display:inline-block}.card{background:#fff;border-radius:20px;padding:32px 24px;box-shadow:0 4px 16px #0000000f}.score{text-align:center;color:#7f8c8d;margin-bottom:24px;font-size:14px}.question{text-align:center;color:#2c3e50;letter-spacing:2px;margin:24px 0;font-size:40px;font-weight:600}.input-area{justify-content:center;align-items:center;gap:12px;display:flex}input{text-align:center;border:2px solid #e0e6ed;border-radius:12px;outline:none;width:140px;padding:12px;font-size:26px;transition:border-color .2s}input:focus{border-color:#3498db}button{color:#fff;cursor:pointer;background:#3498db;border:none;border-radius:12px;padding:12px 28px;font-size:18px;font-weight:600;transition:background .2s}button:hover{background:#2980b9}button:active{transform:scale(.97)}.feedback{text-align:center;min-height:26px;margin-top:20px;font-size:18px;font-weight:500}.feedback.correct{color:#27ae60}.feedback.wrong{color:#e74c3c}.card.empty{text-align:center;padding:60px 24px}.empty-icon{margin-bottom:16px;font-size:60px}.card.empty p{color:#95a5a6;margin:0;font-size:16px}.wrong-header{color:#7f8c8d;border-bottom:1px solid #ecf0f1;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;font-size:15px;display:flex}.clear-btn{color:#7f8c8d;background:#ecf0f1;padding:6px 14px;font-size:13px}.clear-btn:hover{color:#fff;background:#e74c3c}.wrong-list{flex-direction:column;gap:14px;display:flex}.wrong-item{background:#f8f9fb;border-radius:14px;flex-direction:column;gap:8px;padding:16px;display:flex}.wrong-question{color:#2c3e50;font-size:22px;font-weight:600}.wrong-detail{flex-wrap:wrap;gap:16px;font-size:14px;display:flex}.wrong-user{color:#e74c3c}.wrong-correct{color:#27ae60;font-weight:600}.remove-btn{background:#27ae60;align-self:flex-start;margin-top:4px;padding:8px 16px;font-size:13px}.remove-btn:hover{background:#219a52}.type-tabs{background:#f4f6f9;border-radius:12px;gap:6px;margin-bottom:20px;padding:5px;display:flex}.type-btn{color:#7f8c8d;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 4px;font-size:14px;font-weight:600;transition:all .2s}.type-btn.active{color:#3498db;background:#fff;box-shadow:0 2px 6px #3498db26}.type-btn:hover:not(.active){color:#2c3e50}.wrong-top{align-items:center;gap:10px;display:flex}.type-tag{border-radius:8px;flex-shrink:0;padding:2px 10px;font-size:12px;font-weight:600}.type-tag.mul{color:#1976d2;background:#e3f2fd}.type-tag.div{color:#7b1fa2;background:#f3e5f5}.type-tag.decimal{color:#e65100;background:#fff3e0}.type-tag.mixed{color:#2e7d32;background:#e8f5e9}.retry-banner{text-align:center;color:#3498db;background:#ebf5fb;border-radius:10px;margin-bottom:20px;padding:8px;font-size:14px;font-weight:600}.wrong-top{align-items:center;gap:8px;margin-bottom:8px;display:flex}.type-tag{color:#1976d2;background:#e3f2fd;border-radius:8px;padding:2px 10px;font-size:12px;font-weight:600}.retry-tag{color:#e65100;background:#fff3e0;border-radius:8px;padding:2px 10px;font-size:11px;font-weight:600}.wrong-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.retry-btn{background:#3498db;flex:1;padding:8px 16px;font-size:13px}.retry-btn:hover{background:#2980b9}.wrong-actions .remove-btn{flex:1;margin-top:0}.tabs-3 .tab{padding:10px 8px;font-size:14px}.report{flex-direction:column;gap:16px;display:flex}.report-section{background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 16px #0000000f}.section-title{color:#2c3e50;margin:0 0 16px;font-size:16px;font-weight:600}.stat-row{gap:12px;display:flex}.stat-box{text-align:center;background:#f8f9fb;border-radius:14px;flex:1;padding:16px}.stat-num{color:#3498db;font-size:32px;font-weight:700;line-height:1.2}.stat-label{color:#7f8c8d;margin-top:4px;font-size:13px}.type-row{align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:flex}.type-name{color:#2c3e50;width:50px;font-weight:600}.type-bar-wrap{background:#ecf0f1;border-radius:4px;flex:1;height:8px;overflow:hidden}.type-bar{background:linear-gradient(90deg,#3498db,#52b8e8);border-radius:4px;height:100%;transition:width .4s}.type-rate{text-align:right;color:#2c3e50;width:42px;font-weight:600}.type-count{text-align:right;color:#95a5a6;width:50px;font-size:12px}.advice{background:linear-gradient(135deg,#fff9e6,#fff);border:1px solid #ffeaa7}.advice-text{color:#7d6608;margin:0;font-size:14px;line-height:1.6}.wrong-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.wrong-total{color:#e74c3c;font-size:22px;font-weight:700}.wrong-dist{flex-wrap:wrap;gap:10px;display:flex}.wrong-dist-item{color:#7f8c8d;background:#ecf0f1;border-radius:8px;padding:4px 10px;font-size:12px}.type-groups{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.type-group{background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 2px 8px #0000000a}.type-group-name{color:#7f8c8d;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.type-group .type-tabs{scrollbar-width:none;-ms-overflow-style:none;background:#f4f6f9;border-radius:12px;gap:6px;margin-bottom:0;padding:4px;display:flex;overflow-x:auto}.type-group .type-tabs::-webkit-scrollbar{display:none}.type-group .type-btn{flex:1;min-width:60px;padding:8px 10px;font-size:13px}.lock-card{text-align:center;padding:48px 24px}.lock-icon{margin-bottom:12px;font-size:56px}.lock-title{color:#2c3e50;margin:0 0 6px;font-size:20px}.lock-hint{color:#95a5a6;margin:0 0 24px;font-size:13px}.lock-input-area{justify-content:center;align-items:center;gap:10px;display:flex}.lock-input-area input{letter-spacing:4px;width:140px;padding:10px;font-size:18px}.lock-input-area input[type=password]{font-size:22px}.lock-error{color:#e74c3c;margin-top:14px;font-size:13px}.parent-wrong-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.parent-wrong-item{background:#f8f9fb;border-radius:12px;padding:12px 14px}.parent-wrong-question{color:#2c3e50;align-items:center;gap:8px;margin-bottom:6px;font-size:15px;font-weight:600;display:flex}.type-tag.small{padding:1px 8px;font-size:11px}.parent-wrong-answers{flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.parent-wrong-answers .wrong-user{color:#e74c3c}.parent-wrong-answers .wrong-correct{color:#27ae60;font-weight:600}.parent-header{background:#fff;border-radius:14px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:14px 18px;display:flex;box-shadow:0 2px 8px #0000000a}.parent-info{flex-direction:column;gap:2px;display:flex}.parent-name{color:#2c3e50;align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.parent-role{color:#3498db;background:#ebf5fb;border-radius:8px;padding:2px 8px;font-size:11px;font-weight:600}.parent-id{color:#95a5a6;font-size:12px}.parent-actions{gap:8px;display:flex}.parent-btn{color:#7f8c8d;background:#ecf0f1;padding:6px 12px;font-size:12px;font-weight:600}.parent-btn:hover{color:#fff;background:#3498db}.reg-form{text-align:left;flex-direction:column;gap:14px;max-width:340px;margin:0 auto;display:flex}.reg-row{flex-direction:column;gap:6px;display:flex}.reg-row label{color:#7f8c8d;font-size:13px;font-weight:500}.reg-row .required{color:#e74c3c}.reg-row input{text-align:left;border:2px solid #e0e6ed;border-radius:10px;width:100%;padding:10px 14px;font-family:inherit;font-size:15px}.reg-row input:focus{border-color:#3498db}.role-btns{gap:8px;display:flex}.role-btn{color:#7f8c8d;background:#f4f6f9;border-radius:10px;flex:1;padding:8px 12px;font-size:14px;font-weight:600}.role-btn.active{color:#fff;background:#3498db}.primary-btn{color:#fff;background:#3498db;border-radius:12px;width:100%;margin-top:6px;padding:12px;font-size:16px;font-weight:600}.primary-btn:hover{background:#2980b9}.lock-links{margin-top:18px}.link-btn{color:#3498db;background:0 0;padding:4px 8px;font-size:13px;text-decoration:underline}.link-btn:hover{color:#2980b9;background:0 0}.link-btn.danger{color:#e74c3c}.link-btn.danger:hover{color:#c0392b}.reset-box{color:#7f8c8d;background:#fef5f5;border-radius:10px;margin-top:14px;padding:14px;font-size:13px}.reset-box p{margin:0 0 10px}.reset-actions{justify-content:center;gap:10px;display:flex}.lock-success{color:#27ae60;margin-top:14px;font-size:13px}.pwd-form{flex-direction:column;gap:10px;display:flex}.pwd-form input{text-align:left;border:2px solid #e0e6ed;border-radius:10px;padding:10px 14px;font-size:15px}.pwd-form input:focus{border-color:#3498db}.pwd-actions{gap:10px;margin-top:6px;display:flex}.pwd-actions .primary-btn{flex:1;margin-top:0}.export-section{background:linear-gradient(135deg,#f0f8ff,#fff);border:1px solid #d6eaff}.export-hint{color:#7f8c8d;margin:0 0 14px;font-size:13px}.export-btns{gap:10px;display:flex}.export-btn{color:#2c3e50;background:#ecf0f1;border-radius:10px;flex:1;padding:12px;font-size:15px;font-weight:600}.export-btn:hover{background:#d5dbde}.export-btn.primary{color:#fff;background:#3498db}.export-btn.primary:hover{background:#2980b9}.parent-btn.primary{color:#fff;background:#27ae60}.parent-btn.primary:hover{background:#219a52}.hint-box{color:#7d6608;background:#fff8e1;border-left:4px solid #ffb454;border-radius:10px;align-items:flex-start;gap:8px;margin-top:16px;padding:12px 14px;font-size:14px;line-height:1.6;animation:.25s fadeIn;display:flex}.hint-icon{flex-shrink:0;font-size:18px;line-height:1.4}.hint-text{flex:1}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.practice-wrongbook{margin-top:20px}.practice-wrongbook-title{color:#2c3e50;align-items:center;gap:8px;margin:0 0 10px;padding-left:4px;font-size:15px;font-weight:600;display:flex}.practice-wrongbook-title .badge{font-size:12px}.tabs .tab{font-size:15px}.wrong-manage-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.clear-all-btn{color:#7f8c8d;background:#ecf0f1;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600}.clear-all-btn:hover{color:#fff;background:#e74c3c}.wrong-manage-hint{color:#95a5a6;margin:0 0 14px;font-size:12px}.parent-wrong-retry{color:#e67e22;background:#fff3e0;border-radius:6px;margin-top:6px;padding:2px 8px;font-size:11px;display:inline-block}.parent-wrong-actions{gap:8px;margin-top:10px;display:flex}.pw-btn{border-radius:8px;flex:1;padding:8px 10px;font-size:13px;font-weight:600}.pw-retry{color:#fff;background:#3498db}.pw-retry:hover{background:#2980b9}.pw-remove{color:#7f8c8d;background:#ecf0f1}.pw-remove:hover{color:#fff;background:#27ae60}.wrong-empty-hint{color:#27ae60;text-align:center;padding:20px 0;font-size:14px}.pet-card{background:linear-gradient(135deg,#e8f5ff,#f0f8ff);border-radius:16px;margin-bottom:14px;transition:all .3s;overflow:hidden;box-shadow:0 2px 10px #3498db14}.pet-bar{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;align-items:center;gap:12px;padding:14px 16px;display:flex}.pet-bar:active{background:#3498db0d}.pet-emoji{flex-shrink:0;font-size:38px;line-height:1;transition:transform .3s}@keyframes petBounce{0%{transform:scale(1)}30%{transform:scale(1.3)rotate(-8deg)}60%{transform:scale(1.15)rotate(8deg)}to{transform:scale(1)rotate(0)}}.pet-info{flex:1;min-width:0}.pet-name-row{align-items:center;gap:8px;margin-bottom:2px;display:flex}.pet-name{color:#2c3e50;font-size:15px;font-weight:700}.pet-level{color:#fff;background:#3498db;border-radius:8px;padding:1px 8px;font-size:11px;font-weight:600}.pet-message{color:#7f8c8d;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.pet-stars{background:#fff;border-radius:12px;flex-shrink:0;align-items:center;gap:4px;padding:6px 12px;display:flex;box-shadow:0 1px 4px #0000000d}.star-icon{font-size:16px}.star-num{color:#f39c12;font-size:15px;font-weight:700}.pet-toggle{color:#95a5a6;flex-shrink:0;font-size:12px}.pet-panel{border-top:1px dashed #3498db26;padding:0 16px 16px;animation:.25s fadeIn}.pet-bars{flex-direction:column;gap:8px;margin:14px 0;display:flex}.pet-bar-row{align-items:center;gap:10px;font-size:13px;display:flex}.bar-label{color:#7f8c8d;flex-shrink:0;width:60px}.bar-wrap{background:#ecf0f1;border-radius:5px;flex:1;height:10px;overflow:hidden}.bar-fill{border-radius:5px;height:100%;transition:width .4s}.bar-fill.hungry{background:linear-gradient(90deg,#f39c12,#f1c40f)}.bar-fill.mood{background:linear-gradient(90deg,#e91e63,#ff6b9d)}.bar-num{text-align:right;color:#2c3e50;width:32px;font-size:12px;font-weight:600}.pet-stats{gap:10px;margin-bottom:12px;display:flex}.pet-stat{text-align:center;background:#fff;border-radius:12px;flex:1;padding:10px}.pet-stat-num{color:#3498db;font-size:22px;font-weight:700;line-height:1.1}.pet-stat-label{color:#95a5a6;margin-top:2px;font-size:11px}.feed-btn{color:#fff;background:linear-gradient(135deg,#f39c12,#e67e22);border-radius:12px;width:100%;padding:12px;font-size:15px;font-weight:600}.feed-btn:disabled{color:#95a5a6;cursor:not-allowed;background:#ecf0f1}.feed-btn:not(:disabled):hover{background:linear-gradient(135deg,#e67e22,#d35400)}.confetti-layer{pointer-events:none;z-index:9999;width:0;height:0;position:fixed;top:55%;left:50%}.confetti-piece{width:var(--size);height:var(--size);background:var(--color);opacity:0;animation:confettiBurst 1.8s cubic-bezier(.15, .6, .4, 1) var(--delay) forwards;border-radius:50%;position:absolute;top:0;left:0}@keyframes confettiBurst{0%{opacity:0;transform:translate(0)scale(0)}15%{opacity:1;transform:translate(calc(var(--x) * .3), calc(var(--y) * .3)) scale(1.2)}to{transform:translate(var(--x), calc(var(--y) + 280px)) scale(.4);opacity:0}}.celebration-toast{color:#fff;z-index:10000;pointer-events:none;white-space:nowrap;background:linear-gradient(135deg,#f39c12,#e74c3c);border-radius:30px;padding:12px 26px;font-size:17px;font-weight:700;animation:2.2s forwards celebratePop;position:fixed;top:18%;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #e74c3c66}@keyframes celebratePop{0%{opacity:0;transform:translate(-50%)scale(.5)translateY(20px)}15%{opacity:1;transform:translate(-50%)scale(1.1)translateY(0)}25%{transform:translate(-50%)scale(1)translateY(0)}85%{opacity:1;transform:translate(-50%)scale(1)translateY(0)}to{opacity:0;transform:translate(-50%)scale(.95)translateY(-15px)}}.score-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.score-row .score{margin-bottom:0}.streak-badge{color:#e67e22;background:#fff3e0;border-radius:12px;padding:4px 12px;font-size:13px;font-weight:700;animation:.4s streakPulse}@keyframes streakPulse{0%{transform:scale(.8)}50%{transform:scale(1.15)}to{transform:scale(1)}}.levelup-overlay{-webkit-backdrop-filter:blur(6px);z-index:99999;cursor:pointer;background:#0f1117d9;flex-direction:column;justify-content:center;align-items:center;animation:.35s overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.levelup-content{z-index:2;flex-direction:column;align-items:center;gap:14px;animation:.5s cubic-bezier(.2,1.4,.5,1) levelupPop;display:flex}@keyframes levelupPop{0%{opacity:0;transform:scale(.3)translateY(40px)}60%{transform:scale(1.08)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}.levelup-badge{letter-spacing:4px;color:#ffd93d;background:#ffd93d26;border:1px solid #ffd93d66;border-radius:20px;padding:6px 18px;font-size:13px;font-weight:800;animation:1.8s ease-in-out infinite badgeGlow}@keyframes badgeGlow{0%,to{box-shadow:0 0 #ffd93d00}50%{box-shadow:0 0 24px #ffd93d99}}.levelup-emoji{filter:drop-shadow(0 8px 30px #ffd93d80);font-size:130px;line-height:1;animation:1.2s ease-in-out infinite emojiBounce}@keyframes emojiBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-12px)scale(1.05)}}.levelup-title{background:linear-gradient(90deg,#ffd93d,#ffb454,#ff6b6b);-webkit-text-fill-color:transparent;letter-spacing:2px;-webkit-background-clip:text;background-clip:text;font-size:34px;font-weight:900}.levelup-pet-name{color:#fff;font-size:17px;font-weight:600}.levelup-lv{color:#fff;background:linear-gradient(135deg,#f39c12,#e74c3c);border-radius:12px;margin-left:4px;padding:3px 12px;font-weight:800;animation:1.2s ease-in-out infinite badgePulse;display:inline-block}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.levelup-sub{color:#b0b5c0;font-size:14px}.levelup-hint{color:#fff6;font-size:13px;animation:2s ease-in-out infinite hintBlink;position:absolute;bottom:60px}@keyframes hintBlink{0%,to{opacity:.4}50%{opacity:.8}}.pet-progress{color:#f39c12;letter-spacing:.3px;margin-top:3px;font-size:11px;font-weight:600}.egg-ready{text-align:center}.egg-ready-header{padding:18px 16px 10px}.egg-animation{font-size:72px;line-height:1;animation:1.4s ease-in-out infinite hatchBounce;display:inline-block}@keyframes hatchBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-8px)scale(1.05)}}.egg-ready-title{color:#2c3e50;margin:10px 0 4px;font-size:18px;font-weight:700}.egg-ready-hint{color:#7f8c8d;margin:0 0 14px;font-size:13px}.route-grid{grid-template-columns:repeat(2,1fr);gap:10px;padding:0 16px 18px;display:grid}.route-option{background:#fff;border:2px solid #ecf0f1;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:14px 10px;transition:all .15s;display:flex}.route-option:hover{border-color:#f39c12;transform:translateY(-2px);box-shadow:0 4px 14px #f39c1226}.route-option-theme{font-size:28px;line-height:1}.route-option-preview{align-items:center;gap:4px;font-size:22px;display:flex}.route-arrow{color:#bdc3c7;font-size:14px}.route-option-desc{color:#95a5a6;text-align:center;font-size:12px}.pet-stage{color:#2e7d32;background:#e8f5e9;border-radius:8px;padding:1px 8px;font-size:11px;font-weight:600}.evolve-chain{justify-content:space-between;margin:14px 0 4px;display:flex}.evolve-step{opacity:.4;flex-direction:column;align-items:center;gap:4px;transition:all .3s;display:flex}.evolve-step.current{opacity:1;transform:scale(1.15)}.evolve-step.done{opacity:.85}.evolve-emoji{font-size:26px;line-height:1}.evolve-label{color:#7f8c8d;font-size:10px}.change-pet-btn{color:#7f8c8d;background:#ecf0f1;border-radius:12px;width:100%;margin-top:10px;padding:11px;font-size:14px;font-weight:600}.change-pet-btn:hover{background:#d5dbde}.pet-picker{background:#f8f9fb;border-radius:12px;margin-top:10px;padding:12px}.pet-picker-title{color:#7f8c8d;text-align:center;margin-bottom:10px;font-size:13px;font-weight:600}.pet-picker-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.pet-option{color:#2c3e50;background:#fff;border:2px solid #ecf0f1;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px;font-size:13px;font-weight:600;display:flex}.pet-option.active{background:#ebf5fb;border-color:#3498db}.pet-option-emoji{font-size:26px;line-height:1}.pet-option-name{font-size:12px}.pet-picker-cancel{color:#95a5a6;background:0 0;width:100%;margin-top:8px;padding:8px;font-size:13px}.hatch-preview{font-size:72px;line-height:1;animation:1.4s ease-in-out infinite hatchBounce;display:inline-block}.naming-panel{padding:0 16px 18px}.naming-input{text-align:center;color:#2c3e50;letter-spacing:1px;box-sizing:border-box;background:#fff;border:2px solid #f39c12;border-radius:12px;width:100%;padding:14px 16px;font-size:17px;font-weight:600}.naming-input:focus{border-color:#e67e22;outline:none;box-shadow:0 0 0 4px #f39c1226}.naming-suggest-title{color:#7f8c8d;text-align:center;margin:14px 0 8px;font-size:12px;font-weight:600}.naming-suggestions{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:16px;display:flex}.suggest-chip{color:#7f8c8d;background:#fff;border:1px solid #ecf0f1;border-radius:18px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .15s}.suggest-chip:hover{color:#e67e22;border-color:#f39c12}.suggest-chip.active{color:#fff;background:#f39c12;border-color:#f39c12;box-shadow:0 3px 10px #f39c1259}.naming-actions{gap:10px;display:flex}.naming-cancel{color:#7f8c8d;background:#ecf0f1;border-radius:12px;flex:1;padding:12px;font-size:14px;font-weight:600}.naming-cancel:hover{background:#d5dbde}.naming-confirm{color:#fff;background:linear-gradient(135deg,#f39c12,#e67e22);border-radius:12px;flex:1.5;padding:12px;font-size:15px;font-weight:700;box-shadow:0 4px 14px #f39c1266}.naming-confirm:hover{background:linear-gradient(135deg,#e67e22,#d35400)}.hatching-stage{justify-content:center;align-items:center;height:140px;display:flex;position:relative}.hatching-egg{filter:drop-shadow(0 4px 12px #f39c1280);font-size:80px;animation:.55s ease-in-out infinite eggShake;position:absolute}@keyframes eggShake{0%,to{transform:rotate(-10deg)scale(1)}50%{transform:rotate(10deg)scale(1.05)}}.hatching-pet{opacity:0;filter:drop-shadow(0 0 24px #ffc850e6);font-size:92px;animation:1.4s forwards petAppear;position:absolute}@keyframes petAppear{0%,55%{opacity:0;transform:scale(.2)rotate(-20deg)}70%{opacity:1;transform:scale(1.35)rotate(5deg)}85%{transform:scale(1.1)rotate(-3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.hatching-text{text-align:center;color:#f39c12;letter-spacing:2px;padding:12px 0 20px;font-size:16px;font-weight:700;animation:1s ease-in-out infinite hatchTextPulse}@keyframes hatchTextPulse{0%,to{opacity:.55}50%{opacity:1}}.hatch-confirm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background:#0000008c;justify-content:center;align-items:center;padding:20px;animation:.2s hatchOverlayFadeIn;display:flex;position:fixed;inset:0}@keyframes hatchOverlayFadeIn{0%{opacity:0}to{opacity:1}}.hatch-confirm-box{text-align:center;background:#fff;border-radius:22px;width:100%;max-width:340px;padding:28px 24px;animation:.35s cubic-bezier(.2,1.4,.5,1) confirmPop;box-shadow:0 20px 60px #0000004d}@keyframes confirmPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.hatch-confirm-emoji{margin-bottom:14px;font-size:68px;line-height:1;animation:1.2s ease-in-out infinite hatchEmojiBounce}@keyframes hatchEmojiBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-8px)scale(1.06)}}.hatch-confirm-title{color:#2c3e50;margin-bottom:6px;font-size:20px;font-weight:800}.hatch-confirm-sub{color:#7f8c8d;margin-bottom:16px;font-size:13px}.hatch-confirm-hint{color:#d35400;background:#fff8e1;border-radius:10px;margin-bottom:18px;padding:10px 12px;font-size:13px;font-weight:500}.hatch-confirm-actions{gap:10px;display:flex}.hatch-cancel{color:#7f8c8d;background:#ecf0f1;border-radius:12px;flex:1;padding:12px;font-size:14px;font-weight:600}.hatch-cancel:hover{background:#d5dbde}.hatch-go{color:#fff;background:linear-gradient(135deg,#f39c12,#e67e22);border-radius:12px;flex:1.4;padding:12px;font-size:15px;font-weight:700;box-shadow:0 4px 14px #f39c1266}.hatch-go:hover{background:linear-gradient(135deg,#e67e22,#d35400)}.route-emoji.mystery{color:#bdc3c7;opacity:.55;font-weight:300}.daily-done-card{text-align:center;background:linear-gradient(135deg,#fff8e1,#ffeaa7);border-radius:20px;margin-bottom:16px;padding:40px 24px;animation:.5s cubic-bezier(.2,1.4,.5,1) dailyDonePop;box-shadow:0 4px 16px #f39c1226}@keyframes dailyDonePop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.daily-done-icon{margin-bottom:12px;font-size:64px;animation:1.4s ease-in-out infinite dailyDoneBounce}@keyframes dailyDoneBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-8px)scale(1.06)}}.daily-done-title{color:#d35400;margin:0 0 12px;font-size:22px;font-weight:800}.daily-done-sub{color:#7d6608;margin:0 0 20px;font-size:14px;line-height:1.8}.daily-done-btns{justify-content:center;gap:10px;display:flex}.daily-done-more{color:#e67e22;background:#fff;border-radius:12px;padding:10px 24px;font-size:14px;font-weight:600;box-shadow:0 2px 8px #f39c1233}.daily-done-more:hover{background:#fef5e7}.pet-emoji{transform-origin:bottom;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;animation:3.2s ease-in-out infinite petIdle}@keyframes petIdle{0%,to{transform:translateY(0)rotate(-3deg)scale(1)}25%{transform:translateY(-4px)rotate(0)scale(1.02)}50%{transform:translateY(-6px)rotate(3deg)scale(1.03)}75%{transform:translateY(-3px)rotate(0)scale(1.01)}}.pet-emoji.stage-0{animation:3.6s ease-in-out infinite eggIdle}@keyframes eggIdle{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.04)}}.pet-emoji.stage-1{animation:1.8s ease-in-out infinite babyIdle}@keyframes babyIdle{0%,to{transform:translateY(0)rotate(-5deg)scale(1)}25%{transform:translateY(-5px)rotate(0)scale(1.03)}50%{transform:translateY(-7px)rotate(5deg)scale(1.05)}75%{transform:translateY(-3px)rotate(0)scale(1.02)}}.pet-emoji.stage-4{animation:4s ease-in-out infinite finalIdle,2.5s ease-in-out infinite finalGlow}@keyframes finalIdle{0%,to{transform:scale(1)rotate(-2deg)}50%{transform:scale(1.05)rotate(2deg)}}@keyframes finalGlow{0%,to{filter:drop-shadow(0 0 8px #ffc85066)}50%{filter:drop-shadow(0 0 22px #ffc850e6)}}.pet-emoji.cheering{animation:1.25s cubic-bezier(.3,1.5,.4,1) petCheer}@keyframes petCheer{0%{transform:translateY(0)scale(1)rotate(0)}15%{transform:translateY(-20px)scale(1.18)rotate(-12deg)}30%{transform:translateY(-8px)scale(1.1)rotate(10deg)}45%{transform:translateY(-16px)scale(1.15)rotate(-8deg)}60%{transform:translateY(-5px)scale(1.08)rotate(6deg)}75%{transform:translateY(-10px)scale(1.1)rotate(-4deg)}to{transform:translateY(0)scale(1)rotate(0)}}.pet-emoji.feeding{animation:.6s petBounce!important}.pet-emoji.tapping{animation:.2s petTap!important}@keyframes petTap{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}.hatch-preview.stage-1{animation:1.4s ease-in-out infinite hatchBounce}.egg-animation.stage-0{animation:2s ease-in-out infinite eggWiggle}@keyframes eggWiggle{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.pet-avatar{vertical-align:middle;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;display:inline-block;overflow:visible}.pet-avatar.pet-egg .egg-body{transform-origin:60px 100px;animation:3.6s ease-in-out infinite eggIdle2}@keyframes eggIdle2{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.pet-avatar.pet-body .body-group{transform-origin:60px 100px;animation:3.2s ease-in-out infinite petBreath}@keyframes petBreath{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.025)}}.pet-avatar .eye{transform-origin:50%;transform-box:fill-box;animation:5s ease-in-out infinite petBlink}.pet-avatar .eye-right{animation-delay:.12s}@keyframes petBlink{0%,88%,to{transform:scaleY(1)}92%,95%{transform:scaleY(.1)}}.pet-avatar .tail{transform-origin:88px 78px;animation:1.6s ease-in-out infinite tailWag}@keyframes tailWag{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}.pet-avatar .ear-left{transform-origin:44px 40px;animation:3.2s ease-in-out infinite earTwitch}.pet-avatar .ear-right{transform-origin:76px 40px;animation:3.2s ease-in-out .4s infinite earTwitch}@keyframes earTwitch{0%,82%,to{transform:rotate(0)}88%{transform:rotate(-8deg)}94%{transform:rotate(6deg)}}.pet-avatar.stage-1 .body-group{animation:2.2s ease-in-out infinite babyBreath}@keyframes babyBreath{0%,to{transform:translateY(0)scale(1)rotate(0)}25%{transform:translateY(-3px)scale(1.03)rotate(-1deg)}50%{transform:translateY(-5px)scale(1.05)rotate(0)}75%{transform:translateY(-2px)scale(1.02)rotate(1deg)}}.pet-avatar.stage-4 .body-group{filter:drop-shadow(0 0 8px #ffc85080);animation:3.6s ease-in-out infinite petBreath,2.4s ease-in-out infinite finalGlow2}@keyframes finalGlow2{0%,to{filter:drop-shadow(0 0 6px #ffc85066)}50%{filter:drop-shadow(0 0 20px #ffc850e6)}}.pet-avatar.cheering{animation:.9s cubic-bezier(.3,1.5,.4,1) petCheerJump}@keyframes petCheerJump{0%{transform:translateY(0)rotate(0)}20%{transform:translateY(-16px)rotate(-8deg)}40%{transform:translateY(-6px)rotate(6deg)}60%{transform:translateY(-12px)rotate(-5deg)}80%{transform:translateY(-3px)rotate(3deg)}to{transform:translateY(0)rotate(0)}}.pet-avatar.feeding{animation:.65s petFeeding}@keyframes petFeeding{0%{transform:scale(1)rotate(0)}30%{transform:scale(1.18)rotate(-8deg)}60%{transform:scale(1.12)rotate(8deg)}to{transform:scale(1)rotate(0)}}.pet-avatar.sleeping .body-group{animation:4s ease-in-out infinite petSleep}@keyframes petSleep{0%,to{transform:translateY(1px)rotate(-2deg)}50%{transform:translateY(3px)rotate(1deg)}}.pet-avatar.sleeping .tail{animation:3.2s ease-in-out infinite tailWagSlow}@keyframes tailWagSlow{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.pet-avatar.sleeping .eye{animation:none}.zzz-group text{opacity:0;transform-box:fill-box;animation:2.6s ease-in-out infinite zzzFloat}.zzz-group text:first-child{animation-delay:0s}.zzz-group text:nth-child(2){animation-delay:.7s}.zzz-group text:nth-child(3){animation-delay:1.4s}@keyframes zzzFloat{0%{opacity:0;transform:translate(0)scale(.8)}30%{opacity:1;transform:translate(2px,-4px)scale(1)}to{opacity:0;transform:translate(8px,-22px)scale(1.1)}}.pet-avatar.playing .body-group{transform-origin:60px 100px;animation:.9s ease-in-out infinite petPlay}@keyframes petPlay{0%{transform:translateY(0)rotate(0)}20%{transform:translateY(-9px)rotate(-7deg)}40%{transform:translateY(-2px)rotate(0)}60%{transform:translateY(-9px)rotate(7deg)}80%{transform:translateY(-2px)rotate(0)}to{transform:translateY(0)rotate(0)}}.pet-avatar.playing .tail{animation:.5s ease-in-out infinite tailWagFast}@keyframes tailWagFast{0%,to{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}.sparkle-group text{transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite sparkleSpin}.sparkle-group text:nth-child(2){animation-delay:.5s}.sparkle-group text:nth-child(3){animation-delay:1s}@keyframes sparkleSpin{0%,to{opacity:.4;transform:scale(.6)rotate(0)}50%{opacity:1;transform:scale(1.4)rotate(180deg)}}.pet-avatar.sad .body-group{transform-origin:60px 100px;animation:2.4s ease-in-out infinite petSadSway}@keyframes petSadSway{0%,to{transform:translateY(2px)rotate(-1.5deg)}50%{transform:translateY(3px)rotate(1.5deg)}}.pet-avatar.sad .tail{transition:transform .4s;animation:none;transform:rotate(-15deg)}.pet-avatar.sad .ear-left,.pet-avatar.sad .ear-right{transition:transform .4s;animation:none;transform:rotate(-25deg)translateY(2px)}.pet-avatar.sad .tear{transform-box:fill-box;transform-origin:top;animation:1.6s ease-in-out infinite tearDrop}.pet-avatar.sad .tear-right{animation-delay:.5s}@keyframes tearDrop{0%{opacity:.9;transform:translateY(0)scale(1)}60%{opacity:1;transform:translateY(6px)scale(1.1)}to{opacity:0;transform:translateY(14px)scale(.7)}}.pet-avatar.cheering .hearts-group text{transform-box:fill-box;animation:1.2s ease-in-out infinite heartFloat}.hearts-group text:nth-child(2){animation-delay:.4s}@keyframes heartFloat{0%{opacity:.6;transform:translateY(0)scale(.9)}50%{opacity:1;transform:translateY(-8px)scale(1.15)}to{opacity:0;transform:translateY(-18px)scale(1)}}@media (width>=768px){.app{max-width:940px}.type-groups{grid-template-columns:repeat(2,1fr);align-items:start;gap:14px;display:grid}.route-grid{grid-template-columns:repeat(3,1fr)}.question{font-size:48px}input{width:160px}}@media (width>=1100px){.app{max-width:1050px}.type-groups{grid-template-columns:repeat(3,1fr)}.route-grid{grid-template-columns:repeat(4,1fr)}}
