.sidebar{display:flex;flex-direction:column;height:100%;background:#faf8f5;border-right:1px solid #e8e2d8;transition:width .3s}.sidebar.expanded{width:220px;min-width:220px}.sidebar.collapsed{width:60px;min-width:60px}.sidebar-nav{flex:0 0 auto;padding:12px 8px}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;color:#4a3f35}.sidebar.collapsed .nav-item{justify-content:center;padding:10px}.nav-item:hover{background:#e8a87c26}.nav-item.active{background:#e8a87c;color:#fff}.nav-icon{font-size:18px;flex-shrink:0}.nav-label{font-size:14px;font-weight:500;white-space:nowrap}.sidebar-section{padding:12px 16px;border-top:1px solid #e8e2d8}.section-title{font-size:12px;font-weight:600;color:#8b7d6b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.stat-item{display:flex;flex-direction:column;gap:2px}.stat-value{font-size:18px;font-weight:600;color:#4a3f35}.stat-positive{color:#41b3a3}.stat-negative{color:#e57373}.stat-label{font-size:11px;color:#8b7d6b}.stat-row-inline{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#f5f0e8;border-radius:6px}.panel-title{font-size:12px;font-weight:600;color:#8b7d6b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.stats-grid-2col{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.stats-loading{font-size:12px;color:#8b7d6b;text-align:center;padding:8px}.stats-error{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;color:#e57373}.retry-btn{padding:4px 12px;background:#f5f0e8;border:1px solid #e8e2d8;border-radius:4px;font-size:12px;color:#4a3f35;cursor:pointer}.retry-btn:hover{background:#e8e2d8}.stats-row{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:#f5f0e8;border-radius:6px}.stats-label{font-size:12px;color:#666}.stats-value{font-size:14px;font-weight:600;color:#4a3f35}.stats-value.alive{color:#41b3a3}.stats-value.dead{color:#e57373}.stats-value.male{color:#64b5f6}.stats-value.female{color:#f48fb1}.stats-value.newborn{color:#ffb74d}.territory-info{display:flex;flex-direction:column;gap:8px}.territory-row{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.territory-label{font-size:12px;color:#666;width:32px}.territory-value{font-size:12px;font-weight:400;color:#666;display:flex;align-items:center;gap:4px}.territory-value span{font-size:inherit;font-weight:inherit;color:inherit}.terrain-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.capacity-bar{flex:1;height:8px;background:#ebe5d9;border-radius:4px;overflow:hidden}.capacity-fill{height:100%;background:linear-gradient(90deg,#41b3a3,#85dcba);border-radius:4px;transition:width .3s}.capacity-text{font-size:12px;color:#666;min-width:50px;text-align:right}.expand-btn{margin-top:8px;padding:8px 12px;background:#f5f0e8;border:1px solid #e8e2d8;border-radius:6px;font-size:12px;color:#e57373;cursor:pointer;transition:all .2s}.expand-btn:hover{background:#faf8f5;border-color:#e57373}.achievements-list{display:flex;flex-direction:column;gap:8px}.achievements-loading{font-size:12px;color:#8b7d6b;text-align:center;padding:8px}.achievement-card{padding:10px 12px;background:#f5f0e8;border:1px solid #e8e2d8;border-radius:8px;display:flex;flex-direction:column;gap:4px}.achievement-card--locked{opacity:.6}.achievement-card--completed{opacity:.8}.achievement-header{display:flex;align-items:center;gap:6px}.achievement-icon{font-size:14px;flex-shrink:0}.achievement-title{font-size:13px;font-weight:600;color:#4a3f35}.achievement-description{font-size:12px;color:#8b7d6b}.achievement-reward{font-size:13px;font-weight:600;color:#e57373}.achievement-next{font-size:11px;color:#8b7d6b;display:flex;flex-direction:column;gap:2px}.achievement-countdown{font-size:14px;font-weight:600;color:#4a3f35;font-variant-numeric:tabular-nums}.achievement-action{margin-top:4px}.achievement-upgrade-btn{width:100%;padding:6px 12px;background:#e8e2d8;border:1px solid #d4c5b5;border-radius:6px;font-size:12px;color:#8b7d6b;cursor:not-allowed;opacity:.7}.achievement-progress{display:flex;flex-direction:column;gap:4px}.achievement-progress-bar{height:6px;background:#ebe5d9;border-radius:3px;overflow:hidden}.achievement-progress-fill{height:100%;background:linear-gradient(90deg,#41b3a3,#85dcba);border-radius:3px;transition:width .3s}.achievement-progress-label{font-size:11px;color:#8b7d6b}.sidebar.collapsed .sidebar-section{display:none}.modal-overlay.stacked{background:#0000004d}.modal-content{background:#fff;border-radius:16px;max-width:500px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.modal-content .modal-body{flex:1;overflow-y:auto}.modal-overlay.stacked .modal-content{position:relative}.modal-header h2{margin:0;font-size:18px;color:#4a3f35}.close-btn{width:32px;height:32px;border:none;background:#f5f0e8;border-radius:8px;font-size:20px;cursor:pointer;color:#8b7d6b;transition:all .2s}.close-btn:hover{background:#e8e2d8;color:#4a3f35}.modal-footer{padding:16px 20px;border-top:1px solid #e8e2d8;display:flex;justify-content:flex-end;gap:12px}.detail-section{margin-bottom:24px}.detail-section:last-child{margin-bottom:0}.detail-section h3{font-size:14px;color:#8b7d6b;margin:0 0 12px;font-weight:500}.hamster-header{display:flex;align-items:center;gap:20px}.hamster-sprite-large{width:80px;height:80px;background:#f5f0e8;border-radius:12px;display:flex;align-items:center;justify-content:center}.hamster-sprite-large .relative{display:flex;align-items:center;justify-content:center}.hamster-title h2{margin:0 0 8px;font-size:20px;color:#4a3f35}.basic-info{display:flex;align-items:center;gap:12px}.generation-badge{padding:4px 10px;background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;border-radius:6px;font-size:13px;font-weight:600}.sex-badge{font-size:13px;color:#8b7d6b}.life-stage{padding:4px 10px;background:#f5f0e8;border-radius:6px;font-size:12px;color:#4a3f35}.age{font-size:13px;color:#8b7d6b}.current-action{margin-top:8px;display:flex;align-items:center;gap:6px}.action-label{font-size:12px;color:#8b7d6b}.action-value{padding:3px 8px;background:linear-gradient(135deg,#a8e6cf,#88d8b0);color:#2d5a45;border-radius:6px;font-size:12px;font-weight:500}.stats-grid{display:flex;flex-direction:column;gap:10px}.stat-row{display:flex;align-items:center;gap:8px}.stat-icon{width:20px;text-align:center}.stat-name{width:50px;font-size:13px;color:#4a3f35}.stat-bar-container{flex:1;height:8px;background:#f5f0e8;border-radius:4px;overflow:hidden}.stat-bar{display:block;height:100%;background:#4caf50;border-radius:4px;transition:width .3s ease}.stat-value{width:36px;text-align:right;font-size:12px;color:#8b7d6b}.family-tree{display:flex;flex-direction:column;align-items:center;gap:4px}.tree-row{display:flex;justify-content:center;align-items:center;gap:8px}.tree-group{display:flex;gap:8px}.tree-item{padding:6px 12px;background:#f5f0e8;border-radius:8px;font-size:12px;color:#4a3f35;min-width:60px;text-align:center;border:none;cursor:pointer;transition:all .2s}.tree-item:hover:not(:disabled){background:#e8e2d8;transform:translateY(-1px)}.tree-item:disabled{cursor:default}.tree-item.current{background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;font-weight:600}.tree-item-loading{background:#f0f0f0;color:#999;cursor:default!important}.tree-item-loading:hover{background:#f0f0f0;transform:none!important}.tree-item.small{padding:4px 8px;font-size:10px;min-width:50px}.tree-connector.vertical{width:2px;height:16px;background:#e8e2d8}.tree-connector-horizontal{width:20px;height:2px;background:#e8e2d8;align-self:center}.spouse-connector{margin:0 8px}.spouse{color:#85c995}.no-children{font-size:12px;color:#8b7d6b;font-style:italic}.genes-grid{display:flex;flex-direction:column;gap:8px}.gene-row{display:flex;align-items:center;gap:8px}.gene-icon{width:20px;text-align:center}.gene-name{width:50px;font-size:13px;color:#4a3f35}.gene-value{font-size:13px;color:#8b7d6b;text-transform:capitalize}.gene-formula{font-size:11px;color:#aaa;margin-left:auto;text-align:right;flex:1;min-width:0}.genes-formula-v2 .gene-row{display:flex;align-items:center;gap:8px;padding:4px 0}.genes-formula-v2 .gene-icon{width:24px;text-align:center;flex-shrink:0}.genes-formula-v2 .gene-name{width:56px;font-size:13px;color:#8b7d6b;flex-shrink:0}.genes-formula-v2 .gene-value{min-width:50px;font-size:13px;color:#4a3f35;font-weight:500;text-align:right;flex-shrink:0}.genes-formula-v2 .gene-formula{font-size:11px;color:#9ca3af;text-align:right;flex:1;min-width:0;display:flex;justify-content:flex-end;gap:6px}.genes-formula-v2 .gene-formula .formula-text{color:#8b7d6b}.genes-formula-v2 .gene-formula .formula-source{color:#f59e0b;font-weight:500}.pair-modal{max-width:360px}.pair-list{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto}.pair-item{display:flex;align-items:center;gap:12px;padding:12px;background:#faf8f5;border:1px solid #e8e2d8;border-radius:10px;cursor:pointer;transition:all .2s}.pair-item:hover{background:#f5f0e8;border-color:#e8a87c;transform:translate(4px)}.pair-avatar{width:40px;height:40px;background:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center}.pair-info{flex:1}.pair-name{font-weight:600;color:#4a3f35;display:block}.pair-meta{font-size:.8rem;color:#8b7d6b}.pair-empty{text-align:center;padding:24px;color:#8b7d6b}.pair-empty .hint{font-size:.85rem;color:#9ca3af;margin-top:8px}.loading-indicator{display:inline-block;margin-left:8px;animation:spin 1s linear infinite;color:#8b7d6b}.detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;color:#8b7d6b;font-size:14px}.detail-loading-spinner{width:32px;height:32px;border:3px solid #e5e0d8;border-top-color:#8b7d6b;border-radius:50%;animation:spin .8s linear infinite}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:8px 12px;border-radius:8px;margin-bottom:12px;font-size:.85rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:16px;max-width:400px;width:100%;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e8e2d8}.modal-header h2{margin:0;font-size:18px;font-weight:600;color:#4a3f35}.modal-body{padding:20px}.modal-footer{display:flex;gap:12px;justify-content:flex-end;border-top:1px solid #e8e2d8;padding-top:16px;margin-top:8px}.error-banner{background:#fee2e2;color:#dc2626;padding:8px 12px;border-radius:8px;font-size:14px;margin-bottom:12px}.topnav{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 20px;background:#fff;border-bottom:1px solid #e8e2d8;flex-shrink:0}.topnav-brand{display:flex;align-items:center;gap:10px}.topnav-emoji{font-size:32px;line-height:1}.topnav-text{display:flex;flex-direction:column;align-items:flex-start}.topnav-title{font-size:20px;font-weight:700;color:#d4956a;line-height:1.1}.topnav-subtitle{font-size:12px;color:#8b7d6b;font-weight:400}.header-controls{display:flex;align-items:center;gap:8px;position:absolute;left:50%;transform:translate(-50%)}.header-btn{width:36px;height:36px;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.header-btn:hover{transform:translateY(-2px)}.header-btn.reset{background:#f5f0e8;color:#8b7d6b}.header-btn.play{background:#85c995;color:#fff}.header-btn.pause{background:#e8a87c;color:#fff}.header-btn.speed{background:#f5f0e8;color:#8b7d6b;font-size:12px;font-weight:500}.header-btn.speed.active{background:#e8a87c;color:#fff}.speed-btns{display:flex;gap:4px}.game-time-display{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#f5f0e8;border-radius:20px}.game-time{font-size:14px;font-weight:600;color:#4a3f35}.game-date{font-size:12px;color:#8b7d6b}.game-disclaimer{font-size:10px;color:#a99e8f;padding-left:8px;border-left:1px solid #d4cfc5}.speed-badge{font-size:11px;padding:2px 6px;background:#e8e2d8;border-radius:4px;color:#8b7d6b}.speed-badge.active{background:#e8a87c;color:#fff}.header-divider{width:1px;height:24px;background:#e8e2d8;margin:0 8px}.topnav-user{display:flex;align-items:center;gap:12px}.user-label{font-size:14px;color:#8b7d6b}.user-name{font-size:14px;font-weight:500;color:#4a3f35}.user-coins{font-size:14px;color:#d97706;font-weight:600;margin-right:12px}.btn-sm{padding:6px 12px;font-size:12px}.topnav-actions{display:flex;align-items:center;gap:8px}.topnav-action{width:36px;height:36px;border:none;background:transparent;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;color:#8b7d6b}.topnav-action:hover{background:#e8a87c26;color:#e8a87c}.topnav-action.user{background:#e8a87c;color:#fff}.topnav-action.user:hover{background:#d4956a}.world-map-container{position:relative;width:100%;height:100%;min-height:400px;background:linear-gradient(135deg,#f5f0e8,#ebe5d9);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.map-controls{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#fffffffa,#f8f8f8fa);padding:8px 12px;border-radius:12px;box-shadow:0 4px 12px #0000001f,0 1px 3px #00000014;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.8)}.map-controls button{width:28px;height:28px;border:none;background:#f5f0e8;border-radius:6px;cursor:pointer;font-size:16px;font-weight:700;color:#8b7d6b;transition:all .2s}.map-controls button:hover{background:#e8a87c;color:#fff}.map-controls input[type=range]{width:80px;height:4px;-webkit-appearance:none;background:#d4c5b5;border-radius:2px}.map-controls .control-divider{color:#ccc;margin:0 4px}.map-controls .control-label{font-size:10px;color:#8b7d6b;margin-right:4px}.map-controls input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#e8a87c;border-radius:50%;cursor:pointer}.map-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:#8b7d6b;cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s;background:#f5f0e8;border:1px solid #e8e2d8}.map-toggle:hover{background:#ebe5d9}.map-toggle input{cursor:pointer;accent-color:#e8a87c}.map-toggle input:checked+span{font-weight:600;color:#4a3f35}.world-map{flex:1;width:100%;height:100%;overflow:hidden;cursor:grab;position:relative}.world-map.dragging{cursor:grabbing}.map-content{position:absolute;left:50%;top:50%;transform-origin:center center;display:flex;flex-wrap:wrap;align-content:flex-start}.iso-container{position:absolute;left:50%;top:50%;transform-origin:center center}.map-cell{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:calc(var(--cell-size, 36px) * .35);font-weight:600;transition:all .2s ease;cursor:pointer;color:#4a3f35;overflow:visible;z-index:1;box-shadow:6px 6px #0000004d,6px 6px 2px #0003,6px 0 #0003,inset 0 2px #ffffff4d}.map-cell:hover{box-shadow:12px 12px #00000040,12px 12px 8px #0003,12px 0 #00000026,inset 0 2px #ffffff80}.map-cell.has-my-hamster{position:relative}.hamster-marker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;display:flex;align-items:center;justify-content:center;animation:hamster-bounce 1s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}@keyframes hamster-bounce{0%,to{margin-top:0}50%{margin-top:-6px}}.hamster-count{position:absolute;bottom:-2px;right:-4px;background:#e8a87c;color:#fff;font-size:8px;font-weight:600;padding:1px 4px;border-radius:8px;min-width:12px;text-align:center}.newborn-hover-marker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:200;display:flex;align-items:center;justify-content:center;animation:newborn-pulse .8s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(255,200,50,.8));pointer-events:none}@keyframes newborn-pulse{0%,to{transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 0 4px rgba(255,200,50,.6))}50%{transform:translate(-50%,-50%) scale(1.15);filter:drop-shadow(0 0 10px rgba(255,200,50,1))}}.hamster-emoji{position:absolute;bottom:100%;left:120%;transform:translate(-50%);margin-bottom:4px;background:#fff;border:1px solid #e8a87c;border-radius:10px;padding:2px 6px;font-size:11px;white-space:nowrap;box-shadow:0 2px 8px #00000026;animation:emoji-bounce .3s ease-out;z-index:200}.hamster-emoji:after{content:"";position:absolute;top:100%;left:15%;transform:translate(-50%);border:5px solid transparent;border-top-color:#e8a87c}@keyframes emoji-bounce{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.8)}60%{transform:translate(-50%) translateY(-3px) scale(1.05)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.map-cell.locked{background:#c8beaf66!important;cursor:not-allowed;filter:grayscale(.4) brightness(.85);opacity:.7;box-shadow:none!important;border:1px solid rgba(0,0,0,.1)!important}.map-cell.locked:hover{background:#c8beaf80!important;transform:none;box-shadow:none!important}.map-cell.available{background:#41b3a34d;border:1px solid rgba(65,179,163,.5)}.map-cell.available:hover{background:#41b3a380;transform:scale(1.12);z-index:10;box-shadow:12px 12px #00000040,12px 12px 8px #0003,12px 0 #00000026,inset 0 2px #ffffff80}.map-cell.crowded{background:#e8a87c66;border:1px solid rgba(232,168,124,.6)}.map-cell.crowded:hover{background:#e8a87c99;transform:scale(1.12);z-index:10;box-shadow:12px 12px #00000040,12px 12px 8px #0003,12px 0 #00000026,inset 0 2px #ffffff80}.map-cell.full{background:#e5737366;border:1px solid rgba(229,115,115,.6)}.map-cell.full:hover{background:#e5737399;transform:scale(1.12);z-index:10;box-shadow:12px 12px #00000040,12px 12px 8px #0003,12px 0 #00000026,inset 0 2px #ffffff80}.map-cell.center{border:2px solid #ffc107;box-shadow:0 0 20px #ffc10780,0 0 40px #ffc10733,inset 0 0 15px #ffc1074d;z-index:3}.map-cell.center.available{background:linear-gradient(135deg,#fff9c4,#ffecb3)}.map-cell.center.crowded{background:linear-gradient(135deg,#ffe0b2,#ffcc80)}.map-cell.center.full{background:linear-gradient(135deg,#ffccbc,#ffab91)}.map-cell.terrain-water{box-shadow:2px 2px #00000026,2px 2px 1px #0000001a;border-bottom:3px solid #1976D2}.map-cell.terrain-water:hover{box-shadow:4px 4px #0003,4px 4px 2px #00000026}.map-cell.terrain-grass{box-shadow:6px 6px #00000040,6px 6px 2px #00000026}.map-cell.terrain-grass:hover{box-shadow:10px 10px #00000040,10px 10px 4px #0003}.map-cell.terrain-flower{box-shadow:8px 8px #0003,8px 8px 2px #00000026,0 0 8px #ec407a4d;border-top:2px solid #F48FB1}.map-cell.terrain-flower:hover{box-shadow:12px 12px #00000040,12px 12px 4px #0003,0 0 16px #ec407a80}.map-cell.terrain-forest{box-shadow:10px 10px #00000059,10px 10px 3px #00000040;border-left:3px solid #1B5E20}.map-cell.terrain-forest:hover{box-shadow:14px 14px #0006,14px 14px 6px #0000004d}.map-cell.terrain-mountain{box-shadow:14px 14px #0006,14px 14px 4px #0000004d;border-top:4px solid #8D6E63}.map-cell.terrain-mountain:hover{box-shadow:18px 18px #00000073,18px 18px 8px #00000059}.map-cell.terrain-wasteland{box-shadow:4px 4px #0003,4px 4px 1px #0000001a;border:1px dashed #9E9E9E}.map-cell.terrain-wasteland:hover{box-shadow:8px 8px #00000040,8px 8px 2px #00000026}.map-cell.terrain-rock{box-shadow:10px 10px #0006,10px 10px 2px #0000004d;border:2px solid #5D4037}.map-cell.terrain-rock:hover{box-shadow:14px 14px #00000073,14px 14px 4px #00000059}.center-mark{font-size:1.2em;color:#e8a87c;text-shadow:0 0 4px rgba(0,0,0,.2)}.center-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:6px}.level-mark{font-size:1em;opacity:.7}.lock-icon{font-size:1em;opacity:.6}.map-tooltip{position:absolute;background:linear-gradient(135deg,#373530fa,#4a3f35fa);color:#fff;padding:12px 16px;border-radius:12px;font-size:12px;z-index:100;min-width:160px;box-shadow:0 8px 24px #00000040,0 2px 8px #00000026;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);animation:tooltipFadeIn .15s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.tooltip-header{font-weight:700;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.2)}.tooltip-content{display:flex;flex-direction:column;gap:4px}.map-legend{position:absolute;bottom:12px;left:12px;display:flex;flex-direction:column;gap:4px;background:linear-gradient(135deg,#fffffffa,#f8f8f8fa);padding:10px 14px;border-radius:12px;font-size:11px;color:#666;box-shadow:0 4px 16px #0000001f,0 1px 3px #00000014;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.8);z-index:10;overflow:visible}.legend-item{display:flex;align-items:center;gap:4px;padding:3px 6px;border-radius:3px;background:#00000008;transition:background .2s;font-size:10px;white-space:nowrap}.legend-item:hover{background:#0000000f}.legend-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:#41b3a34d;border-radius:3px;font-size:9px;color:#4a3f35;border:1px solid rgba(65,179,163,.5);box-shadow:inset 0 1px 2px #ffffff4d}.legend-icon.center{background:linear-gradient(135deg,#fff9c4,#ffecb3);border-color:#ffc10780;color:#f57c00;box-shadow:0 0 8px #ffc1074d,inset 0 1px 2px #ffffff80}.legend-icon.locked{background:#c8beaf66;filter:grayscale(.3)}.legend-icon.hamster{background:#e8a87c4d}.adoption-success-modal{position:relative;background:linear-gradient(135deg,#fff9e6,#fff3cc);border-radius:20px;padding:32px 40px;text-align:center;box-shadow:0 20px 60px #8b77654d;border:2px solid #f0d9a0;max-width:340px;width:90%;transform:scale(.8);opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);z-index:1001}.adoption-success-modal.show{transform:scale(1);opacity:1}.success-header{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px}.success-header h2{margin:0;font-size:22px;color:#92400e;font-weight:700}.confetti{font-size:28px;animation:bounce 1s ease-in-out infinite}.confetti:first-child{animation-delay:0s}.confetti:last-child{animation-delay:.5s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.success-hamster{margin:20px 0}.success-message{font-size:16px;color:#4a3f35;margin:0 0 16px}.success-message strong{color:#e8a87c;font-size:18px}.success-sprite{display:flex;justify-content:center;align-items:center;padding:16px;background:linear-gradient(135deg,#fef9e7,#fdebd0);border-radius:16px;margin:16px 0}.success-hint{font-size:14px;color:#8b7d6b;margin-bottom:20px}.success-actions{display:flex;flex-direction:column;gap:10px}.btn-enter{background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;border:none;padding:12px 24px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.btn-enter:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e8a87c66}.btn-enter:active{transform:translateY(0)}.btn-stay{background:transparent;color:#8b7d6b;border:1px solid #e8e2d8;padding:10px 24px;border-radius:12px;font-size:14px;cursor:pointer;transition:all .2s}.btn-stay:hover{background:#faf8f5;border-color:#d0c9bc}.particle{position:absolute;font-size:20px;animation:float-particle 2s ease-out forwards;pointer-events:none}@keyframes float-particle{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:1;transform:translateY(-10px) scale(1)}to{opacity:0;transform:translateY(-60px) scale(.8)}}.newborn-list{display:flex;flex-direction:column;height:100%;overflow:visible}.newborn-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #eee;margin-bottom:12px}.newborn-title{font-size:16px;font-weight:600;color:#4a3f35;margin:0;display:flex;align-items:center;gap:6px}.newborn-count{font-size:13px;color:#8b7d6b;background:#f5f5f5;padding:2px 8px;border-radius:10px}.newborn-controls{display:flex;gap:8px;margin-bottom:12px;position:relative;z-index:10}.newborn-search{flex:1;min-width:0;padding:8px 12px;border:1px solid #e8e2d8;border-radius:8px;font-size:13px;outline:none;transition:border-color .2s;background:#faf8f5;color:#4a3f35}.newborn-search:focus{border-color:#e8a87c}.newborn-filter{padding:8px 12px;border:1px solid #e8e2d8;border-radius:8px;font-size:13px;background:#faf8f5;color:#4a3f35;cursor:pointer;outline:none;white-space:nowrap}.newborn-filter:focus{border-color:#e8a87c}.newborn-items{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 250px)}.newborn-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#8b7d6b;font-size:14px}.newborn-item{display:flex;align-items:center;gap:12px;padding:12px;background:#faf8f5;border-radius:10px;transition:all .2s;cursor:pointer}.newborn-item:hover{background:#e8a87c26;transform:translate(4px)}.newborn-adopt-badge{position:absolute;top:-2px;left:-6px;background:#4caf50;color:#fff;font-size:9px;font-weight:600;padding:2px 12px;transform:rotate(-45deg);transform-origin:center;z-index:10;letter-spacing:.5px;box-shadow:0 1px 3px #0003}.newborn-item{position:relative}.newborn-sprite{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f5f0e8;border-radius:8px}.newborn-info{flex:1;min-width:0}.newborn-name-row{display:flex;align-items:center;gap:8px}.newborn-name{font-size:14px;font-weight:500;color:#4a3f35}.newborn-sex{font-size:12px;color:#8b7d6b}.newborn-stats{display:flex;gap:16px;margin:6px 0}.newborn-stats .stat{font-size:12px;display:flex;align-items:center;gap:6px}.newborn-stats .vitality{color:#85c995}.newborn-stats .fullness{color:#e8a87c}.newborn-stats .happiness{color:#f9d71c}.newborn-generation{font-size:11px;padding:2px 6px;border-radius:4px;background:#e8e2d8;color:#666}.newborn-generation.gen-0{background:gold;color:#8b6914}.newborn-generation.gen-1{background:#41b3a333;color:#2d7a6e}.newborn-generation.gen-2{background:#e8a87c33;color:#a86b42}.newborn-generation.gen-3,.newborn-generation.gen-4,.newborn-generation.gen-5,.newborn-generation.gen-6{background:#8b7d6b26;color:#5a4d42}.newborn-meta{display:flex;gap:16px;margin-top:6px;font-size:12px;color:#8b7d6b}.newborn-time{color:#8b7d6b}.newborn-grid{color:#e8a87c}.newborn-more{margin-top:12px;padding:10px;background:none;border:1px solid #e8e2d8;border-radius:8px;font-size:13px;color:#8b7d6b;cursor:pointer;transition:all .2s}.newborn-more:hover{background:#f5f0e8;border-color:#d4c5b5;color:#4a3f35}.newborn-pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;padding:6px 8px}.pagination-btn{padding:2px 8px;background:#f5f0e8;border:1px solid #e8e2d8;border-radius:4px;font-size:14px;color:#8b7d6b;cursor:pointer;transition:all .2s;line-height:1}.pagination-btn:hover:not(:disabled){background:#e8e2d8;border-color:#d4c5b5}.pagination-info{font-size:12px;color:#8b7d6b}.newborn-items::-webkit-scrollbar{width:6px}.newborn-items::-webkit-scrollbar-track{background:transparent}.newborn-items::-webkit-scrollbar-thumb{background:#d4c5b5;border-radius:3px}.newborn-items::-webkit-scrollbar-thumb:hover{background:#c4b5a5}.hamster-card{background:transparent;border-radius:12px;padding:0;box-shadow:none;border:2px solid #e8e2d8;cursor:pointer;transition:all .2s;overflow:hidden}.hamster-card:hover{box-shadow:0 8px 24px #0000001f;border-color:#e8a87c}.hamster-card.selected{border-color:#e8a87c;box-shadow:0 0 0 2px #e8a87c4d}.hamster-card.dead{opacity:.6;filter:grayscale(.5)}.hamster-card.claimed{border-left:4px solid #3498db}.hamster-card.wild{border-left:4px solid #e67e22}.hamster-card.compact{padding:8px;display:flex;align-items:center;gap:10px}.compact-sprite{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fef9e7,#fdebd0);border-radius:8px;flex-shrink:0}.compact-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.compact-name{font-weight:600;font-size:13px;color:#4a3f35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-meta,.compact-genes{font-size:11px;color:#8b7d6b}.hamster-card.enhanced{width:100%;max-width:250px;padding:16px;display:flex;flex-direction:column;gap:12px;box-sizing:border-box;margin:0 auto}.card-header{display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:8px;min-width:0;flex-shrink:1}.card-name{font-weight:600;font-size:16px;color:#4a3f35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}.header-badges{display:flex;align-items:center;gap:4px;flex-shrink:0}.header-right{flex-shrink:0;display:flex;align-items:center}.header-badge{font-size:14px}.sex-badge{font-size:11px;padding:3px 8px;border-radius:10px;line-height:1.4}.sex-badge.male{background:#e3f2fd;color:#1976d2}.sex-badge.female{background:#fce4ec;color:#c2185b}.generation-badge{font-size:12px;font-weight:600;color:#8b7d6b;background:#f5f5f5;padding:4px 10px;border-radius:12px;line-height:1.4}.card-sprite{display:flex;align-items:center;justify-content:center;height:100px;background:linear-gradient(135deg,#fef9e7,#fdebd0);border-radius:12px;overflow:hidden}.card-genes{display:flex;justify-content:center;gap:8px}.gene-tag{font-size:12px;padding:4px 10px;background:#f5f5f5;color:#666;border-radius:12px}.card-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.info-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;background:#fafafa;border-radius:8px}.info-label{font-size:10px;color:#999}.info-value{font-size:12px;font-weight:500;color:#4a3f35}.card-stats{display:grid;grid-template-columns:1fr 1fr;gap:2px 6px}.stat-row{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}.stat-label{font-size:10px;color:#666;min-width:46px;flex-shrink:0;white-space:nowrap;display:flex;align-items:center;gap:2px;line-height:1}.card-stat-bar{flex:1;min-width:0;height:6px;background:#f0f0f0;border-radius:3px;overflow:hidden}.stat-value{font-size:10px;color:#666;width:20px;text-align:right;flex-shrink:0}.stat-fill{height:100%;border-radius:3px;transition:width .3s ease;cursor:help}.stat-value.changed{animation:value-pulse .4s ease-out}@keyframes value-pulse{0%{transform:scale(1);color:#666}50%{transform:scale(1.3);color:#e74c3c;font-weight:600}to{transform:scale(1);color:#666}}.stat-fill[title]{text-decoration:underline;text-decoration-style:dotted}.card-health{font-size:12px;font-weight:500;text-align:center;padding:8px;background:#fafafa;border-radius:8px}.card-health.health-good{color:#41b3a3;background:#e8f5f3}.card-health.health-ok{color:#f4a261;background:#fef5e7}.card-health.health-bad{color:#e57373;background:#fdf2f2}.all-hamsters{padding:16px;height:100%;display:flex;flex-direction:column;gap:16px}.all-hamsters-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f5f0e8,#e8e2d8);border-radius:12px;border:1px solid #e8e2d8}.all-hamsters-header h2{margin:0;font-size:1.3rem;color:#4a3f35;display:flex;align-items:center;gap:6px}.total-count{font-size:14px;color:#8b7d6b;background:#f5f0e8;padding:4px 12px;border-radius:12px}.filter-bar{background:#faf8f5;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.filter-row{display:flex;gap:12px;flex-wrap:wrap}.filter-select{padding:8px 12px;border:1px solid #e8e2d8;border-radius:8px;background:#fff;color:#4a3f35;font-size:13px;cursor:pointer;min-width:120px}.filter-select:hover{border-color:#e8a87c}.filter-select:focus{outline:none;border-color:#e8a87c;box-shadow:0 0 0 3px #e8a87c33}.search-row{display:flex;gap:12px}.search-input{flex:1;max-width:400px;padding:10px 16px;border:1px solid #e8e2d8;border-radius:8px;background:#fff;color:#4a3f35;font-size:14px}.search-input::-moz-placeholder{color:#aaa}.search-input::placeholder{color:#aaa}.search-input:hover{border-color:#e8a87c}.search-input:focus{outline:none;border-color:#e8a87c;box-shadow:0 0 0 3px #e8a87c33}.hamsters-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding-top:16px;overflow-y:auto;overflow-x:hidden;align-items:start;min-height:0}.hamster-grid-item{cursor:pointer;position:relative;display:flex;flex-direction:column;width:100%;max-width:100%;box-sizing:border-box;overflow:visible}.empty-state,.loading-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#8b7d6b}.empty-icon,.loading-icon{font-size:64px;margin-bottom:16px;opacity:.5}.loading-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state p,.loading-state p{margin:0;font-size:16px}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px;background:#faf8f5;border-radius:12px}.pagination-btn{padding:8px 16px;border:1px solid #e8e2d8;border-radius:8px;background:#fff;color:#4a3f35;font-size:14px;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background:#e8a87c;border-color:#e8a87c;color:#fff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{font-size:14px;color:#4a3f35;font-weight:500}.pagination-size{font-size:12px;color:#8b7d6b;margin-left:auto}.hamster-grid-item .newborn-adopt-badge{position:absolute;top:-2px;left:-6px;background:#4caf50;color:#fff;font-size:9px;font-weight:600;padding:2px 12px;transform:rotate(-45deg);transform-origin:center;z-index:10;letter-spacing:.5px;box-shadow:0 1px 3px #0003}.filter-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a;padding:16px;height:100%;overflow-y:auto}.filter-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #eee}.filter-panel-header h3{margin:0;font-size:16px;font-weight:600;color:#4a3f35;display:flex;align-items:center;gap:6px}.filter-count{font-size:13px;color:#8b7d6b;background:#f5f5f5;padding:2px 8px;border-radius:10px}.filter-panel-section{margin-bottom:14px}.filter-panel-section label{display:block;font-size:12px;color:#666;margin-bottom:6px}.filter-input,.filter-select{width:100%;padding:8px 10px;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;background:#fafafa;color:#333;outline:none;transition:border-color .2s,background .2s}.filter-input:focus,.filter-select:focus{border-color:#ffd93d;background:#fff}.filter-input::-moz-placeholder{color:#aaa}.filter-input::placeholder{color:#aaa}.filter-clear-btn{width:100%;padding:10px;margin-top:8px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;color:#666;font-size:14px;cursor:pointer;transition:all .2s}.filter-clear-btn:hover{background:#eee;color:#333}.inventory-section{display:block;margin-top:8px;padding-top:16px;border-top:1px solid #e8e2d8}.inventory-section h4{margin:0 0 12px;font-size:.9rem;color:#4a3f35}.inventory-list{display:flex;flex-wrap:wrap;gap:10px}.inventory-item{display:flex;flex-direction:column;align-items:center;padding:12px;background:#faf8f5;border:1px solid #e8e2d8;border-radius:8px;min-width:80px}.inventory-item:hover{border-color:#e8a87c}.inventory-emoji{font-size:2rem;margin-bottom:4px}.inventory-name{font-size:.8rem;color:#4a3f35;text-align:center}.inventory-qty{font-size:.75rem;color:#9ca3af}.inventory-empty{text-align:center;padding:16px;color:#9ca3af;font-size:.85rem;width:100%}.nest-section{display:flex;flex-direction:column;gap:16px;overflow-x:hidden}.nest-main{display:flex;gap:16px;align-items:flex-start;overflow-x:hidden}.nest-main .unhoused-section{flex-shrink:0;width:140px;overflow-x:hidden}.nest-main .cages-container{flex:1}.unhoused-section .unhoused-list{display:flex!important;flex-wrap:wrap!important;gap:10px;overflow-x:hidden}.nest-section-loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:#999}.nest-section.dragging-hamster,.nest-section.dragging-hamster *{cursor:grabbing!important}.nest-header{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.nest-header h3{margin:0;font-size:1rem;color:#4a3f35}.cages-container{display:flex;flex-wrap:wrap;gap:16px}.nest-empty{width:100%;text-align:center;padding:32px;color:#9ca3af;background:#faf8f5;border-radius:8px}.nest-empty-hint{font-size:.85rem;color:#6b7280;margin-top:4px}.cage-card{background:transparent!important;border:none!important;box-shadow:none!important;border-radius:16px;padding:12px 12px 48px;cursor:pointer;transition:all .3s ease}.cage-card:hover{background:#ffffffe6;box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.cage-card.selected{background:#f0fdf4e6}.cage-card.drop-zone{background:#fef9f3e6;box-shadow:0 0 0 3px #e8a87c4d}.cage-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;opacity:0;transition:opacity .2s ease}.cage-card:hover .cage-title{opacity:1}.cage-title-right{display:flex;align-items:center;gap:8px}.cage-name{font-weight:600;color:#4a3f35;font-size:.9rem}.cage-level{font-size:.75rem;padding:2px 8px;background:#85c995;color:#fff;border-radius:4px}.cage-delete-btn{background:none;border:none;cursor:pointer;font-size:.85rem;padding:4px 8px;border-radius:6px;transition:all .2s;opacity:0;color:#9ca3af}.cage-card:hover .cage-delete-btn{opacity:.6}.cage-delete-btn:hover{opacity:1!important;background:#fee2e2;color:#ef4444}.cage-hamster{position:absolute;transform:translate(-50%,-50%);cursor:pointer;transition:transform .3s ease}.cage-hamster:hover{transform:translate(-50%,-50%) scale(1.1);z-index:10}.item-emoji{display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}.item-emoji-floor,.item-emoji-stair{display:block!important;flex:none!important}.item-emoji-nest{font-size:64px;filter:drop-shadow(0 4px 4px rgba(0,0,0,.25))}.unhoused-section{margin-top:8px;padding-top:16px;border-top:1px solid #e8e2d8;overflow-x:hidden}.unhoused-section h4{margin:0 0 12px;font-size:.9rem;color:#4a3f35}.unhoused-list{display:flex;flex-wrap:wrap;gap:10px}.unhoused-item{display:flex;flex-direction:column;align-items:center;text-align:center;padding:10px;background:#fef9f3;border-radius:8px;border:1px solid #e8e2d8;cursor:grab;transition:all .2s ease;min-width:85px;width:85px;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.unhoused-item:hover{border-color:#e8a87c}.unhoused-item:active,.unhoused-item[data-dragging=true]{cursor:grabbing!important}.unhoused-item[data-dragging=true]{opacity:.7}.drag-preview{position:fixed;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);animation:struggle .3s ease-in-out infinite}.unhoused-avatar{margin-bottom:4px;display:flex;justify-content:center;align-items:center;width:36px;height:36px;overflow:hidden}.unhoused-name{font-size:.7rem;color:#4a3f35;text-align:center;font-weight:500;width:100%}.inventory-qty{font-size:.65rem;text-align:center;color:#9ca3af}.inventory-placed{font-size:.6rem;color:#85c995;background:#f0fdf4;padding:1px 4px;border-radius:3px;margin-top:2px;white-space:nowrap;text-align:center}.inventory-effects{display:flex;gap:2px;margin-top:4px;flex-wrap:wrap;justify-content:center}.inventory-effect{font-size:.55rem;padding:1px 3px;border-radius:3px;background:#f3f4f6;color:#6b7280;display:flex;align-items:center;gap:2px}.unhoused-hint{font-size:.8rem;color:#9ca3af;text-align:center;margin-top:8px}@keyframes struggle{0%,to{transform:rotate(-8deg) scale(1.05)}25%{transform:rotate(8deg) scale(1.05)}50%{transform:rotate(-8deg) scale(1.05)}75%{transform:rotate(8deg) scale(1.05)}}.cage-item-food-bowl{cursor:pointer}.food-bowl-indicator{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#85c995;border-radius:50%;border:1px solid white}.food-bowl-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998;background:#0000004d}.food-bowl-radial-menu{position:fixed;width:0;height:0;z-index:9999}.food-bowl-radial-center{position:absolute;width:40px;height:40px;background:linear-gradient(135deg,#fff,#f5f0e8);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 2px 8px #00000026;transform:translate(-50%,-50%);border:2px solid #e8a87c;z-index:10}.food-bowl-radial-item{position:fixed;display:flex;flex-direction:column;align-items:center;gap:2px;transform:translate(-50%,-50%);cursor:default;animation:radialItemIn .2s ease-out;transition:transform .15s}.food-bowl-radial-item:hover{transform:translate(-50%,-50%) scale(1.1);z-index:10}@keyframes radialItemIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.food-bowl-radial-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center}.food-bowl-radial-label{position:absolute;top:-24px;font-size:11px;color:#4a3f35;font-weight:500;white-space:nowrap;text-shadow:0 1px 2px white;background:#fffffff2;padding:2px 6px;border-radius:4px;box-shadow:0 2px 6px #00000026;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s;pointer-events:none}.food-bowl-radial-item:hover .food-bowl-radial-label{opacity:1;transform:translateY(0)}.food-bowl-radial-qty{position:relative;min-width:36px;height:18px;display:flex;align-items:center;justify-content:center}.qty-text{font-size:10px;color:#8b7d6b;background:#e8e2d8;padding:1px 5px;border-radius:6px;transition:opacity .2s}.name-text{position:absolute;bottom:-14px;font-size:10px;color:#4a3f35;background:#fffffff2;padding:2px 6px;border-radius:4px;box-shadow:0 2px 6px #00000026;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}.food-bowl-radial-item:hover .qty-text{opacity:0}.food-bowl-radial-item:hover .name-text{opacity:1}.qty-text.pulse{animation:qtyPulse .4s ease-out}@keyframes qtyPulse{0%{transform:scale(1);color:#8b7d6b}50%{transform:scale(1.3);color:#4caf50}to{transform:scale(1);color:#8b7d6b}}.food-bowl-radial-add{position:fixed;display:flex;flex-direction:column;align-items:center;gap:2px;transform:translate(-50%,-50%);cursor:pointer;animation:radialItemIn .2s ease-out}.food-bowl-radial-add:hover .food-bowl-radial-add-icon{background:#d4956a;transform:scale(1.1)}.food-bowl-radial-add-icon{width:36px;height:36px;background:linear-gradient(135deg,#e8a87cb3,#d4956ab3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;font-weight:700;box-shadow:0 2px 8px #e8a87c4d;border:2px solid rgba(255,255,255,.6);transition:all .2s}.food-bowl-radial-add-label{font-size:11px;color:#4a3f35;font-weight:500;white-space:nowrap;text-shadow:0 1px 2px white;background:#ffffffe6;padding:2px 6px;border-radius:4px}.food-bowl-popup{position:fixed;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;padding:12px;min-width:140px;z-index:9999;border:1px solid #e8e2d8}.food-bowl-popup-title{font-size:13px;font-weight:600;color:#4a3f35;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #eee}.food-bowl-popup-empty{font-size:12px;color:#9ca3af;text-align:center;padding:8px 0}.food-bowl-popup-item{display:flex;align-items:center;gap:8px;padding:8px;background:#faf8f5;border-radius:8px}.food-bowl-popup-emoji{font-size:20px}.food-bowl-popup-info{flex:1;display:flex;flex-direction:column;gap:2px}.food-bowl-popup-name{font-size:13px;color:#4a3f35;font-weight:500}.food-bowl-popup-effects{display:flex;gap:4px}.food-bowl-popup-effect{font-size:9px;padding:1px 4px;border-radius:3px;background:#f3f4f6;color:#6b7280}.food-bowl-popup-qty{font-size:12px;color:#8b7d6b;background:#e8e2d8;padding:2px 6px;border-radius:4px}.food-bowl-add-btn{width:100%;margin-top:8px;padding:8px;border:none;background:#e8a87c;color:#fff;font-size:12px;font-weight:500;border-radius:8px;cursor:pointer;transition:background .2s}.food-bowl-add-btn:hover{background:#d4956a}.food-bowl-popup-close,.food-bowl-add-close{position:absolute;top:8px;right:8px;width:20px;height:20px;border:none;background:#e8e2d8;color:#666;border-radius:50%;font-size:14px;line-height:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.food-bowl-popup-close:hover,.food-bowl-add-close:hover{background:#d4c9b8;color:#333}.food-bowl-add-popup{position:fixed;background:#fff;border-radius:16px;box-shadow:0 8px 30px #0003;padding:16px;width:280px;max-height:400px;overflow-y:auto;z-index:10000;border:1px solid #e8e2d8}.food-bowl-add-title{font-size:16px;font-weight:600;color:#4a3f35;margin-bottom:12px;text-align:center}.food-bowl-add-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.food-bowl-add-item{display:flex;align-items:center;gap:10px;padding:10px;background:#faf8f5;border-radius:10px;cursor:pointer;transition:background .2s}.food-bowl-add-item:hover{background:#f5f0e8}.food-bowl-add-item:active{transform:scale(.95);transition:transform .1s}.food-bowl-add-emoji{font-size:24px}.food-bowl-add-info{flex:1;display:flex;flex-direction:column;gap:2px}.food-bowl-add-name{font-size:14px;color:#4a3f35;font-weight:500}.food-bowl-add-effects{display:flex;gap:6px}.food-bowl-add-effect{font-size:10px;padding:2px 5px;border-radius:4px;background:#f3f4f6;color:#6b7280;display:flex;align-items:center;gap:3px}.food-bowl-add-count{font-size:12px;color:#8b7d6b;background:#e8e2d8;padding:2px 8px;border-radius:8px}.food-bowl-add-empty{text-align:center;padding:20px;color:#9ca3af;font-size:14px}.food-bowl-add-cancel{width:100%;padding:10px;border:1px solid #e8e2d8;background:#faf8f5;color:#666;font-size:14px;border-radius:10px;cursor:pointer;transition:background .2s}.food-bowl-add-cancel:hover{background:#f5f0e8}.interaction-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998}.interaction-menu{position:fixed;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;padding:8px;z-index:9999;min-width:200px;animation:interactionMenuIn .2s ease-out}@keyframes interactionMenuIn{0%{opacity:0;transform:scale(.9) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.interaction-menu-header{display:flex;align-items:center;gap:8px;padding:8px 8px 12px;border-bottom:1px solid #f0ebe3;margin-bottom:8px}.interaction-menu-header span{font-weight:600;color:#4a3f35;font-size:14px}.interaction-menu-items{display:flex;flex-direction:column;gap:4px}.interaction-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:transparent;border-radius:8px;cursor:pointer;transition:background .15s;text-align:left}.interaction-menu-item:hover{background:#faf8f5}.interaction-icon{font-size:18px;width:24px;text-align:center}.interaction-menu-item span:nth-child(2){flex:1;color:#4a3f35;font-size:14px}.interaction-effect{font-size:11px;color:#9ca3af}.interaction-menu-close{position:absolute;top:8px;right:8px;width:24px;height:24px;border:none;background:#f5f0e8;border-radius:50%;color:#666;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.interaction-menu-close:hover{background:#e8e2d8}.cage-container{position:relative;transform-style:preserve-3d;transition:all .3s ease;background:transparent!important;box-shadow:none!important;padding-bottom:36px}.cage-base{position:absolute;bottom:-28px;left:0;right:0;height:32px;background:linear-gradient(180deg,#8fc9b5,#7ab9a5 20%,#68a895 80%,#589785);border-radius:0 0 24px 24px;z-index:15;box-shadow:inset 0 4px 8px #ffffff40,inset 0 -6px 12px #00000040,0 12px 24px #00000040}.cage-base-foot{position:absolute;top:calc(100% - 4px);width:28px;height:10px;background:linear-gradient(180deg,#589785,#487565);border-radius:4px 4px 6px 6px;z-index:-1}.cage-base-foot.left{left:40px}.cage-base-foot.right{right:40px}.cage-base:before{content:"";position:absolute;top:0;left:10px;right:10px;height:6px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.25) 30%,rgba(255,255,255,.25) 70%,transparent 100%);border-radius:3px}.cage-card[data-level="1"] .cage-frame .cage-handle{position:absolute;top:-18px;left:50%;transform:translate(-50%);width:80px;height:22px;background:transparent;border:4px solid #68B0D8;border-bottom:none;border-radius:40px 40px 0 0;z-index:35;box-shadow:inset 0 3px 5px #ffffff4d,0 -2px 4px #6496b433}.cage-frame{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;pointer-events:none;z-index:20;background:transparent;border:none}.cage-roof{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:60%;height:24px;border-radius:50% 50% 0 0;z-index:25;background:transparent}.cage-floor{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;z-index:1;background:transparent}.cage-activity{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;z-index:5;transform-style:preserve-3d;transition:all .3s ease;background:transparent!important}.cage-grid-overlay{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;z-index:30;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0px,transparent 48px,rgba(180,200,210,.4) 48px,rgba(180,200,210,.4) 50px),repeating-linear-gradient(0deg,transparent 0px,transparent 24px,rgba(180,200,210,.4) 24px,rgba(180,200,210,.4) 26px)}.cage-card:hover .cage-activity{transform:translateZ(4px);box-shadow:inset 0 -8px 16px #0000001a,inset 0 2px 4px #ffffff4d,0 8px 16px #0003}.cage-card[data-level="1"] .cage-frame,.cage-card[data-cage-level="1"] .cage-frame{border:none;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,#a8e0f0,#89cff0 15%,#7ac0e8 85%,#68b8dc);box-shadow:inset 0 0 40px #fff6,inset 0 0 20px #89cff04d,inset 0 15px 30px #fff3,0 8px 20px #6496b433,0 4px 10px #6496b426;position:relative}.cage-card[data-level="1"] .cage-frame:before{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;background:linear-gradient(180deg,#c8e6ff4d,#b4dcfa33);border-radius:6px 6px 2px 2px;z-index:-1}.cage-card[data-level="1"] .cage-floor,.cage-card[data-cage-level="1"] .cage-floor{background:radial-gradient(circle at 2px 2px,rgba(255,255,255,.8) .5px,transparent .5px),radial-gradient(circle at 6px 6px,rgba(240,248,255,.6) 1px,transparent 1px),linear-gradient(180deg,#f0f8ff,#e0efff 60%,#d0e8ff)!important;background-size:4px 4px,8px 8px,100% 100%!important;box-shadow:inset 0 4px 8px #fffc,inset 0 -2px 4px #b4c8dc1a,inset 0 0 15px #c8dcf01a}.cage-card[data-level="1"] .cage-roof,.cage-card[data-cage-level="1"] .cage-roof,.cage-card[data-level="2"] .cage-roof,.cage-card[data-cage-level="2"] .cage-roof{display:none}.cage-card[data-level="2"] .cage-frame,.cage-card[data-cage-level="2"] .cage-frame{border:4px solid #42A5F5;border-radius:8px;box-shadow:inset 0 0 20px #42a5f533,0 4px 8px #42a5f54d}.cage-card[data-level="2"] .cage-floor,.cage-card[data-cage-level="2"] .cage-floor{background:radial-gradient(circle at 3px 3px,#90CAF9 1px,transparent 1px),linear-gradient(180deg,#bbdefb,#64b5f6)!important;background-size:6px 6px,100% 100%!important}.cage-card[data-level="2"] .cage-roof,.cage-card[data-cage-level="2"] .cage-roof{display:none}.cage-card[data-level="3"] .cage-frame,.cage-card[data-cage-level="3"] .cage-frame{border:4px solid #EC407A;border-radius:16px;box-shadow:inset 0 0 20px #ec407a33,0 4px 12px #ec407a4d}.cage-card[data-level="3"] .cage-floor,.cage-card[data-cage-level="3"] .cage-floor{background:radial-gradient(circle at 3px 3px,#F8BBD0 1px,transparent 1px),linear-gradient(180deg,#fce4ec,#f8bbd0)!important;background-size:6px 6px,100% 100%!important}.cage-card[data-level="3"] .cage-roof,.cage-card[data-cage-level="3"] .cage-roof{display:block;background:linear-gradient(180deg,#f8bbd0,#ec407a);box-shadow:0 4px 8px #ec407a4d}.cage-card[data-level="4"] .cage-frame,.cage-card[data-cage-level="4"] .cage-frame{border:4px solid #6D4C41;border-radius:8px;box-shadow:inset 0 0 20px #8d6e634d,inset 0 -8px 16px #00000026,0 4px 12px #8d6e6366}.cage-card[data-level="4"] .cage-floor,.cage-card[data-cage-level="4"] .cage-floor{background:repeating-linear-gradient(90deg,#a1887f,#8d6e63,#a1887f 16px),linear-gradient(180deg,#d7ccc8,#bcaaa4)!important;background-size:100% 100%!important}.cage-card[data-level="4"] .cage-roof,.cage-card[data-cage-level="4"] .cage-roof{display:block;background:linear-gradient(180deg,#a1887f,#6d4c41);height:16px;top:-12px;border-radius:4px}.cage-card[data-level="5"] .cage-frame,.cage-card[data-cage-level="5"] .cage-frame{border:4px solid #FFB300;border-radius:12px;box-shadow:inset 0 0 30px #ffb3004d,inset 0 2px 4px #ffffff80,0 6px 16px #ffb30066,0 0 30px #ffd54f4d}.cage-card[data-level="5"] .cage-floor,.cage-card[data-cage-level="5"] .cage-floor{background:radial-gradient(circle at 3px 3px,#FFECB3 1px,transparent 1px),linear-gradient(180deg,#fff8e1,#ffca28)!important;background-size:6px 6px,100% 100%!important}.cage-card[data-level="5"] .cage-roof,.cage-card[data-cage-level="5"] .cage-roof{display:block;background:linear-gradient(180deg,#ffca28,#ff8f00);box-shadow:0 4px 12px #ff8f0080;border:2px solid #FF6F00;border-bottom:none;height:30px;top:-24px}.cage-card[data-level="5"] .cage-frame:after,.cage-card[data-cage-level="5"] .cage-frame:after{content:"";position:absolute;top:-35px;left:50%;transform:translate(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:15px solid #FF6F00}.cage-item{position:absolute;transform:translate(-50%,-50%);cursor:grab;transition:all .2s ease;z-index:5}.cage-item:hover{transform:translate(-50%,-50%) scale(1.15);z-index:15}.cage-item.dragging{opacity:.8;transform:translate(-50%,-50%) scale(1.2);z-index:20}.cage-item.dragging.valid{opacity:.7;border:2px solid #4CAF50;background:#4caf5033;border-radius:4px}.cage-item.dragging.invalid{opacity:.7;border:2px solid #F44336;background:#f4433633;border-radius:4px}.cage-hamster{position:absolute;transform:translate(-50%,-50%);transition:all .3s ease;z-index:10}.cage-hamster:hover{transform:translate(-50%,-50%) scale(1.1);z-index:15}.hamster-logs{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;max-height:500px;display:flex;flex-direction:column;overflow:hidden}.logs-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e5e0d8;background:#faf8f5}.logs-header h3{font-size:16px;font-weight:600;color:#4a3f35;margin:0}.logs-close{width:28px;height:28px;border:none;background:#f5f0e8;border-radius:50%;font-size:18px;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.logs-close:hover{background:#e5ddd0;color:#666}.logs-stats{display:flex;align-items:center;gap:12px;padding:10px 20px;background:#f5f0e8;font-size:13px;color:#888}.logs-count{font-weight:500;color:#666}.logs-range{opacity:.8}.logs-list{flex:1;overflow-y:auto;padding:10px}.logs-day-group{margin-bottom:16px}.logs-day-header{font-size:12px;font-weight:600;color:#999;padding:8px 12px;background:#f5f0e8;border-radius:6px;margin-bottom:8px}.log-entry{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;margin-bottom:4px;transition:background .2s}.log-entry:hover{background:#fafafa}.log-icon{font-size:18px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#f5f0e8;border-radius:50%}.log-content{flex:1;display:flex;flex-direction:column;gap:2px}.log-message{font-size:14px;color:#4a3f35;line-height:1.4}.log-time{font-size:12px;color:#999}.log-type{font-size:12px;color:#999;background:#f5f0e8;padding:3px 8px;border-radius:12px}.log-born{border-left:3px solid #4caf50}.log-born .log-icon{background:#e8f5e9}.log-adopted{border-left:3px solid #2196f3}.log-adopted .log-icon{background:#e3f2fd}.log-paired{border-left:3px solid #e91e63}.log-paired .log-icon{background:#fce4ec}.log-bred{border-left:3px solid #9c27b0}.log-bred .log-icon{background:#f3e5f5}.log-died{border-left:3px solid #333}.log-died .log-icon{background:#eee}.log-level_up{border-left:3px solid #ff9800}.log-level_up .log-icon{background:#fff3e0}.log-feed{border-left:3px solid #ff5722}.log-feed .log-icon{background:#fbe9e7}.log-clean{border-left:3px solid #00bcd4}.log-clean .log-icon{background:#e0f7fa}.log-pet{border-left:3px solid #f48fb1}.log-pet .log-icon{background:#fce4ec}.log-play{border-left:3px solid #8bc34a}.log-play .log-icon{background:#f1f8e9}.log-sleep{border-left:3px solid #673ab7}.log-sleep .log-icon{background:#ede7f6}.log-wake{border-left:3px solid #ffc107}.log-wake .log-icon{background:#fff8e1}.log-groom{border-left:3px solid #03a9f4}.log-groom .log-icon{background:#e1f5fe}.log-happy{border-left:3px solid #ffeb3b}.log-happy .log-icon{background:#fffde7}.log-action_change{border-left:3px solid #9e9e9e}.log-spouse_change{border-left:3px solid #795548}.log-stats_change{border-left:3px solid #607d8b}.logs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#999}.logs-empty .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.logs-empty p{margin:0;font-size:14px}.logs-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#999}.loading-spinner{width:32px;height:32px;border:3px solid #f5f0e8;border-top-color:#8b7355;border-radius:50%;animation:spin .8s linear infinite}.logs-loading p{margin:16px 0 0;font-size:14px}.list-controls{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.list-search{flex:1;min-width:200px;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem}.list-search:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.list-select{padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;background:#fff;cursor:pointer}.list-select:focus{outline:none;border-color:#667eea}.hmster-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important;gap:12px!important;justify-content:flex-start!important}.hmster-pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb}.hmster-page-btn{padding:6px 12px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s}.hmster-page-btn:hover:not(:disabled){background:#667eea;color:#fff;border-color:#667eea}.hmster-page-btn:disabled{opacity:.5;cursor:not-allowed}.hmster-page-info{font-size:.9rem;color:#6b7280}.empty-state{text-align:center;padding:32px;color:#9ca3af}.empty-icon{font-size:3rem;display:block;margin-bottom:8px}.hamster-card-wrapper{position:relative;contain:layout paint}.logs-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border:none;background:#ffffffe6;border-radius:50%;font-size:14px;cursor:pointer;opacity:0;transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;z-index:10}.hamster-card-wrapper:hover .logs-btn{opacity:1}.logs-btn:hover{background:#fff;transform:scale(1.1)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-content{max-width:500px;max-height:90vh;animation:slideUp .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.my-hamsters{display:flex;flex-direction:column;gap:16px;height:100%;padding:16px;overflow-y:auto}.my-hamsters>.nest-section{flex:none}.my-hamsters-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f5f0e8,#e8e2d8);border-radius:12px;border:1px solid #e8e2d8}.my-hamsters-header h2{margin:0;font-size:1.3rem;color:#4a3f35;display:flex;align-items:center;gap:6px}.my-hamsters-stats{display:flex;gap:6px}.stat-badge{padding:4px 10px;background:#faf8f5;border:1px solid #e8e2d8;border-radius:6px;font-size:.8rem;color:#6b7280}.stat-badge.dead{background:#fef2f2;border-color:#fecaca;color:#dc2626}.stat-badge.paired{background:#f0fdf4;border-color:#bbf7d0;color:#16a34a}.stat-badge.unpaired{background:#fffbeb;border-color:#fde68a;color:#d97706}.section-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000000a;border:1px solid #e8e2d8}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #e8e2d8}.section-header h3{margin:0;font-size:1rem;font-weight:600;color:#4a3f35;display:flex;align-items:center;gap:6px}.nest-section{display:flex;flex-direction:column;gap:16px}.nest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.nest-card{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:12px;padding:12px;cursor:pointer;transition:transform .2s,box-shadow .2s}.nest-card:hover{box-shadow:0 4px 12px #00000026}.nest-card.paired{background:linear-gradient(135deg,#d1fae5,#a7f3d0)}.nest-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.nest-card-title{font-weight:600;color:#78350f}.nest-card-owners{display:flex;align-items:center;gap:4px}.nest-avatar{width:24px;height:24px;border-radius:50%;border:2px solid white;background:#ddd}.nest-avatar:first-child{margin-right:-8px}.nest-info{display:flex;flex-wrap:wrap;gap:6px;font-size:.8rem;color:#78716c}.nest-info-item{display:flex;align-items:center;gap:2px}.activity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.activity-item{display:flex;flex-direction:column;align-items:center;padding:8px;background:#faf8f5;border:1px solid #e8e2d8;border-radius:8px;transition:background .2s,border-color .2s}.activity-item:hover{background:#f5f0e8;border-color:#e8a87c}.activity-icon{font-size:1.5rem;margin-bottom:4px}.activity-count{font-size:.75rem;color:#6b7280}.my-hamster-list{display:flex;flex-direction:column}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.list-controls{display:flex;gap:8px;flex-wrap:wrap}.list-controls input,.list-controls select{padding:8px 12px;border:1px solid #e8e2d8;border-radius:8px;font-size:.85rem;background:#faf8f5;color:#4a3f35;outline:none;transition:border-color .2s}.list-controls input:focus,.list-controls select:focus{border-color:#e8a87c}.hmster-count{color:#8b7d6b;font-size:.9rem}.hmster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:12px}.inventory-card{display:flex;flex-direction:column;align-items:center;padding:12px;background:#faf8f5;border:1px solid #e8e2d8;border-radius:8px;transition:transform .2s,border-color .2s}.inventory-card:hover{border-color:#e8a87c}.inventory-icon{font-size:2rem;margin-bottom:4px}.inventory-name{font-size:.85rem;color:#4a3f35;margin-bottom:2px}.inventory-count{font-size:.75rem;color:#8b7d6b}.empty-state{text-align:center;padding:24px;color:#9ca3af;background:#faf8f5;border-radius:8px}.family-tree-container{display:flex;flex-direction:column;flex:1;min-height:0;padding:16px}.family-tree-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f5f0e8,#e8e2d8);border-radius:12px;border:1px solid #e8e2d8;margin-bottom:12px}.family-tree-header h2{margin:0;font-size:1.3rem;color:#4a3f35;display:flex;align-items:center;gap:6px}.family-tree-stats{display:flex;gap:8px;font-size:.85rem;color:#8b7d6b}.family-tree-canvas{flex:1;position:relative;background:#faf8f5;border-radius:12px;overflow:hidden}.family-tree-svg{width:100%;height:100%;cursor:grab}.family-tree-svg:active{cursor:grabbing}.connection-line{fill:none;stroke:#d1d5db;stroke-width:2}.connection-line.highlighted{stroke:#f59e0b;stroke-width:4}.node{cursor:pointer}.node:hover circle{opacity:.8}.family-tree-tooltip{position:absolute;background:#ffffffb3;border-radius:8px;padding:12px;box-shadow:0 4px 20px #00000026;border:1px solid #e8e2d8;min-width:160px;z-index:100;pointer-events:none}.tooltip-name{font-size:1rem;font-weight:600;color:#4a3f35;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #e8e2d8}.tooltip-row{display:flex;justify-content:space-between;font-size:.8rem;color:#8b7d6b;margin-bottom:4px}.tooltip-row span:last-child{color:#4a3f35;font-weight:500}.family-tree-legend{display:flex;justify-content:center;gap:24px;padding:12px;background:#faf8f5;border-radius:8px;border:1px solid #e8e2d8;margin-top:12px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:#8b7d6b}.legend-dot{width:12px;height:12px;border-radius:50%;border:2px solid #6b7280}.legend-dot.dashed{border-style:dashed;background:transparent}.legend-dot-glow{width:16px;height:16px;border-radius:50%;background:#fef3c7;border:2px solid #A855F7;box-shadow:0 0 6px #a855f7,0 0 12px #a855f780}.family-tree-loading,.family-tree-error,.family-tree-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#8b7d6b;font-size:1rem}.loading-spinner{width:32px;height:32px;border:3px solid #e8e2d8;border-top-color:#e8a87c;border-radius:50%;animation:spin .8s linear infinite}@keyframes pulse-glow{0%,to{opacity:.3}50%{opacity:.7}}@keyframes pulse-glow-mid{0%,to{opacity:.5}50%{opacity:.9}}@keyframes pulse-glow-inner{0%,to{opacity:.8}50%{opacity:1}}.adopted-glow-outer{animation:pulse-glow 2s ease-in-out infinite}.adopted-glow-mid{animation:pulse-glow-mid 2s ease-in-out infinite}.adopted-glow-inner{animation:pulse-glow-inner 2s ease-in-out infinite}.family-tree-detail{height:100%;min-height:0;display:flex;flex-direction:column;gap:0;padding:16px;background:#fff;overflow-y:auto}.detail-header{margin-top:0}.detail-section{margin-top:4px}.family-tree-detail.empty{justify-content:center;align-items:center;color:#9ca3af}.empty-icon{font-size:3rem;margin-bottom:8px}.empty-text{font-size:.9rem;color:#8b7d6b}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding:12px 16px;background:linear-gradient(135deg,#f5f0e8,#e8e2d8);border-radius:12px;border:1px solid #e8e2d8}.detail-title{display:flex;flex-direction:column;gap:4px}.detail-name{font-size:1.1rem;font-weight:600;color:#4a3f35}.detail-gen{font-size:.8rem;color:#8b7d6b;background:#fef3c7;padding:2px 8px;border-radius:10px;width:-moz-fit-content;width:fit-content}.detail-close{width:24px;height:24px;border:none;background:transparent;color:#8b7d6b;font-size:1.2rem;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .2s}.detail-close:hover{background:#e8e2d8}.detail-section{background:#fff;border-radius:12px;padding:12px;box-shadow:0 2px 8px #0000000a;border:1px solid #e8e2d8;margin-top:4px}.section-title{font-size:.9rem;font-weight:600;color:#4a3f35;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #e8e2d8}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:.85rem}.detail-label{color:#8b7d6b}.detail-value{color:#4a3f35;font-weight:500}.gene-item{margin-bottom:1px}.gene-formula{display:flex;justify-content:flex-end;align-items:center;gap:6px;padding:1px 0 2px 60px;font-size:.65rem;white-space:nowrap}.formula-text{color:#8b7d6b}.formula-source{color:#f59e0b;font-weight:500}.detail-id{font-family:monospace;font-size:.75rem;background:#f5f5f5;padding:2px 6px;border-radius:4px}.gene-formula-placeholder{padding:16px;background:#fef9f3;border:1px dashed #e8e2d8;border-radius:8px;text-align:center;color:#8b7d6b;font-size:.85rem}.genetics-formula{display:flex;flex-direction:column;gap:12px}.formula-item{background:#faf8f5;border:1px solid #e8e2d8;border-radius:8px;padding:10px}.formula-title{font-size:.85rem;font-weight:600;color:#4a3f35;margin-bottom:8px;display:flex;align-items:center;gap:4px}.formula-parents{display:flex;justify-content:space-between;font-size:.8rem;padding:2px 0;color:#8b7d6b}.parent-genotype{font-family:monospace;font-weight:600;color:#4a3f35}.parent-value{color:#4a3f35}.formula-inherit{display:flex;align-items:center;gap:8px;padding:4px 0;justify-content:center}.inherit-arrow{color:#f59e0b;font-size:1.2rem}.child-genotype{font-family:monospace;font-size:.9rem;font-weight:700;color:#7c3aed;background:#f3e8ff;padding:4px 12px;border-radius:6px}.formula-result{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-top:1px dashed #e8e2d8;margin-top:6px;font-size:.85rem}.result-label{color:#8b7d6b}.result-value{font-weight:600;color:#4a3f35}.result-note{font-size:.75rem;color:#ec4899;margin-left:4px}.genes-formula-v2,.genetics-formula-v2{display:flex;flex-direction:column;gap:6px}.formula-row{display:flex;align-items:center;padding:4px 0;font-size:.85rem;gap:8px}.formula-row .formula-label{color:#8b7d6b;min-width:48px}.formula-row .formula-value{color:#4a3f35;font-weight:600;min-width:50px}.formula-row .formula-detail{color:#9ca3af;font-size:.75rem;text-align:right;flex:1}.terrain-preview{width:100%}.terrain-preview .section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.terrain-preview .section-header h2{margin:0;font-size:18px;color:#4a3f35}.terrain-preview .section-subtitle{font-size:14px;color:#8b7d6b}.terrain-table{width:100%;border-collapse:collapse;table-layout:fixed}.terrain-table th,.terrain-table td{padding:8px 10px;text-align:left;border-bottom:1px solid #e8e2d8;font-size:13px}.terrain-table th:first-child,.terrain-table td:first-child{width:100px}.terrain-table th:nth-child(2),.terrain-table td:nth-child(2){width:90px;text-align:center}.terrain-table th:nth-child(3),.terrain-table td:nth-child(3){width:80px}.terrain-table th:nth-child(4),.terrain-table td:nth-child(4){width:140px}.terrain-table th{color:#8b7d6b;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.terrain-table tr:last-child td{border-bottom:none}.terrain-table tr:hover{background:#faf8f5}.terrain-table code{color:#8b7d6b;font-size:12px}.terrain-table code.terrain-code{background:#f5f0e8;padding:1px 4px;border-radius:3px;font-size:11px}.terrain-sprite-cell{display:flex;align-items:center;justify-content:center}.terrain-sprite-cell>div{transform:scale(.7)}.terrain-table .bonus{color:#41b3a3;font-size:12px}.terrain-table .penalty{color:#e57373;font-size:12px}.item-preview{width:100%}.item-preview .section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.item-preview .section-header h2{margin:0;font-size:18px;color:#4a3f35}.item-preview .section-subtitle{font-size:14px;color:#8b7d6b}.preview-tables-row{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:8px}.preview-table-card{flex:0 0 auto;min-width:200px;background:#fff;border:1px solid #e8e2d8;border-radius:8px;padding:12px}.hamster-table th,.hamster-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #e8e2d8;font-size:13px}.item-preview .sprite-cell{background:linear-gradient(135deg,#f8f8f8,#e8e8e8);border-radius:4px;width:56px;height:56px}.effect-badge{display:inline-block;padding:2px 6px;margin:1px;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32;border-radius:10px;font-size:10px;font-weight:500;white-space:nowrap}.cage-preview-grid{display:flex;gap:16px;flex-wrap:wrap}.cage-preview-item{display:flex;flex-direction:column;align-items:center;padding:12px 12px 24px;background:#faf8f5;border-radius:8px;border:1px solid #e8e2d8;transition:transform .2s,box-shadow .2s;min-width:120px;box-sizing:border-box}.cage-preview-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.cage-card-preview{position:relative;width:120px;height:80px;border-radius:8px;overflow:visible}.cage-preview-frame{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:4px;pointer-events:none;z-index:20;box-sizing:border-box}.cage-preview-roof{position:absolute;top:-8px;left:50%;transform:translate(-50%);width:60%;height:10px;border-radius:50% 50% 0 0;z-index:25}.cage-preview-floor{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:4px;z-index:1}.cage-preview-base{position:absolute;bottom:-20px;left:0;right:0;height:24px;background:linear-gradient(180deg,#8fc9b5,#7ab9a5 20%,#68a895 80%,#589785);border-radius:0 0 18px 18px;z-index:15;box-shadow:inset 0 3px 6px #ffffff40,inset 0 -4px 8px #00000040,0 8px 16px #0003}.cage-base-foot{position:absolute;top:calc(100% - 3px);width:18px;height:8px;background:linear-gradient(180deg,#589785,#487565);border-radius:3px 3px 4px 4px;z-index:-1}.cage-base-foot.left{left:28px}.cage-base-foot.right{right:28px}.cage-preview-base:before{content:"";position:absolute;top:0;left:2px;right:2px;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 30%,rgba(255,255,255,.3) 70%,transparent 100%);border-radius:2px 2px 0 0}.cage-preview-activity{position:absolute;top:4px;left:4px;right:4px;bottom:4px;border-radius:2px;z-index:5;display:flex;align-items:center;justify-content:center}.cage-preview-emoji{font-size:24px;opacity:.6}.cage-preview-info{margin-top:8px;text-align:center}.cage-preview-name{font-size:12px;font-weight:600;color:#4a3f35}.cage-preview-size{font-size:10px;color:#8b7d6b;margin-top:2px}.cage-preview-price{font-size:11px;color:#f57c00;margin-top:2px}.cage-preview-price.free{color:#4caf50}.cage-card-preview.level-1{transform:perspective(200px) rotateX(5deg);transform-style:preserve-3d}.cage-card-preview.level-1 .cage-preview-frame{border:none;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,#a8e0f0,#89cff0 15%,#7ac0e8 85%,#68b8dc);box-shadow:inset 0 0 20px #fff6,inset 0 0 10px #89cff04d,inset 0 8px 15px #fff3,0 4px 10px #6496b433,0 2px 5px #6496b426;position:relative}.cage-card-preview.level-1 .cage-preview-frame:before{content:"";position:absolute;top:3px;left:3px;right:3px;bottom:3px;background:linear-gradient(180deg,#c8e6ff4d,#b4dcfa33);border-radius:4px 4px 1px 1px;z-index:-1}.cage-card-preview.level-1 .cage-preview-frame:after{content:"";position:absolute;top:5px;left:8px;right:8px;height:10px;background:repeating-linear-gradient(90deg,transparent 0px,transparent 6px,#B8C8D0 6px,#B8C8D0 7px,transparent 7px,transparent 13px);opacity:.6;z-index:30}.cage-card-preview.level-1 .cage-preview-floor{background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.8) .5px,transparent .5px),radial-gradient(circle at 4px 4px,rgba(240,248,255,.6) 1px,transparent 1px),linear-gradient(180deg,#f0f8ff,#e0efff 60%,#d0e8ff);background-size:2px 2px,4px 4px,100% 100%;box-shadow:inset 0 2px 4px #fffc,inset 0 -1px 2px #b4c8dc1a,inset 0 0 10px #b48c6414}.cage-card-preview.level-1 .cage-preview-roof{display:none}.cage-card-preview.level-2 .cage-preview-frame{border:3px solid #42A5F5;border-radius:8px;box-shadow:inset 0 0 15px #42a5f533,0 2px 4px #42a5f54d}.cage-card-preview.level-2 .cage-preview-floor{background:radial-gradient(circle at 2px 2px,#90CAF9 1px,transparent 1px),linear-gradient(180deg,#bbdefb,#64b5f6);background-size:4px 4px,100% 100%}.cage-card-preview.level-2 .cage-preview-roof{display:none}.cage-card-preview.level-3 .cage-preview-frame{border:3px solid #EC407A;border-radius:12px;box-shadow:inset 0 0 15px #ec407a33,0 2px 6px #ec407a4d}.cage-card-preview.level-3 .cage-preview-floor{background:radial-gradient(circle at 2px 2px,#F8BBD0 1px,transparent 1px),linear-gradient(180deg,#fce4ec,#f8bbd0);background-size:4px 4px,100% 100%}.cage-card-preview.level-3 .cage-preview-roof{display:block;background:linear-gradient(180deg,#f8bbd0,#ec407a)}.cage-card-preview.level-4 .cage-preview-frame{border:3px solid #6D4C41;border-radius:6px;box-shadow:inset 0 0 15px #8d6e634d,inset 0 -4px 8px #0000001a,0 2px 6px #8d6e6366}.cage-card-preview.level-4 .cage-preview-floor{background:repeating-linear-gradient(90deg,#a1887f,#8d6e63,#a1887f 12px),linear-gradient(180deg,#d7ccc8,#bcaaa4);background-size:100% 100%}.cage-card-preview.level-4 .cage-preview-roof{display:block;background:linear-gradient(180deg,#a1887f,#6d4c41);height:10px;top:-8px;border-radius:3px}.pixel-hamster{position:relative;display:inline-block}.pixel-hamster svg{display:block;image-rendering:pixelated;image-rendering:crisp-edges}.pixel-sleep-zzz{position:absolute;top:-6px;right:-10px;font-size:10px;font-family:monospace;font-weight:700;color:#8fc1ff;animation:zzzFloat 2s ease-in-out infinite}.pixel-sleep-zzz span{display:inline-block}.pixel-sleep-zzz span:nth-child(1){animation-delay:0s}.pixel-sleep-zzz span:nth-child(2){animation-delay:.3s}.pixel-sleep-zzz span:nth-child(3){animation-delay:.6s}@keyframes zzzFloat{0%,to{opacity:0;transform:translateY(2px)}30%{opacity:1}50%{opacity:1;transform:translateY(-4px)}70%{opacity:.5}}.pixel-happy-hearts{position:absolute;top:-8px;right:-6px;font-size:8px}.pixel-happy-hearts span{display:inline-block;color:#ff6b8a;animation:heartFloat .6s ease-in-out infinite}.pixel-happy-hearts span:nth-child(2){animation-delay:.2s}@keyframes heartFloat{0%,to{opacity:.5;transform:translateY(0) scale(.8)}50%{opacity:1;transform:translateY(-3px) scale(1.2)}}.pixel-food{position:absolute;bottom:-2px;right:-8px;font-size:10px;animation:foodBounce .3s ease-in-out infinite}@keyframes foodBounce{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-2px) rotate(8deg)}}.pixel-daze{position:absolute;top:-8px;right:-6px;font-size:12px;color:#666;font-weight:700;animation:dazeFloat 1.2s ease-in-out infinite}.pixel-daze span{display:inline-block}.pixel-daze span:nth-child(1){animation:dazeDot 1.2s ease-in-out infinite}.pixel-daze span:nth-child(2){animation:dazeDot 1.2s ease-in-out .2s infinite}.pixel-daze span:nth-child(3){animation:dazeDot 1.2s ease-in-out .4s infinite}@keyframes dazeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes dazeDot{0%,to{opacity:.4}50%{opacity:1}}.pixel-hamster--idle{animation:idleBreathe 1.5s ease-in-out infinite}.pixel-hamster--sleep{animation:sleepBreathe 2.5s ease-in-out infinite}.pixel-hamster--walk{animation:walkWaddle .5s ease-in-out infinite}.pixel-hamster--run{animation:runBounce .2s ease-in-out infinite}.pixel-hamster--stretch{animation:stretchExtend 1.5s ease-in-out infinite}.pixel-hamster--groom{animation:groomShake 1s ease-in-out infinite}.pixel-hamster--happy{animation:happyHop .4s ease-in-out infinite}.pixel-hamster--eat{animation:eatChew .3s ease-in-out infinite}.hamster-preview{width:100%}.hamster-preview .section-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.hamster-preview .section-header h2{margin:0;font-size:18px;color:#4a3f35}.hamster-preview .section-subtitle{font-size:14px;color:#8b7d6b}.preview-tables-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.preview-table-card{flex:0 0 auto;min-width:220px;background:#fff;border:1px solid #e8e2d8;border-radius:8px;padding:12px}.preview-table-card h3{font-size:14px;color:#4a3f35;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid #e8e2d8}.hamster-table{width:100%;border-collapse:collapse}.hamster-table th,.hamster-table td{padding:10px 16px;text-align:left;border-bottom:1px solid #e8e2d8;font-size:13px}.hamster-table th{color:#8b7d6b;font-weight:600;font-size:11px;text-transform:uppercase}.hamster-table tr:last-child td{border-bottom:none}.hamster-table tr:hover{background:#faf8f5}.hamster-table code.action-code{color:#8b7d6b;font-size:10px;background:#f5f0e8;padding:1px 4px;border-radius:3px}.sprite-cell{display:flex;align-items:center;justify-content:center}.pixel-cell{background:linear-gradient(135deg,#f8f8f8,#e8e8e8);border-radius:4px}.desc-cell{color:#666;font-size:11px}.welcome-modal{position:relative;background:linear-gradient(135deg,#fff9e6,#fff3cc);border-radius:20px;padding:32px 40px;text-align:center;box-shadow:0 20px 60px #8b77654d;border:2px solid #f0d9a0;max-width:650px;width:90%;max-height:85vh;overflow-y:auto;transform:scale(.9);opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);z-index:1001}.welcome-modal.show{transform:scale(1);opacity:1}.welcome-close-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:#fff9;border-radius:50%;font-size:16px;color:#8b7d6b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.welcome-close-btn:hover{background:#ffffffe6;color:#4a3f35}.welcome-mascot{display:flex;justify-content:center;align-items:center;padding:20px;background:linear-gradient(135deg,#fef9e7,#fdebd0);border-radius:16px;margin:0 auto 20px;width:-moz-fit-content;width:fit-content}.welcome-title{font-size:24px;font-weight:700;color:#4a3f35;margin:0 0 20px}.welcome-section{text-align:left;margin-bottom:20px}.welcome-section p{font-size:15px;color:#4a3f35;line-height:1.6;margin:0 0 10px}.welcome-section p:last-child{margin-bottom:0}.welcome-opening{background:#ffffff80;padding:16px;border-radius:12px;margin-bottom:20px}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.feature-item{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff9;border-radius:10px;transition:all .2s}.feature-item:hover{background:#ffffffe6;transform:translateY(-2px)}.feature-icon{font-size:24px;flex-shrink:0}.feature-text{font-size:14px;color:#4a3f35}.welcome-epoch{background:linear-gradient(135deg,#fef9e7,#fff3cc);padding:16px;border-radius:12px;border:1px solid #f0d9a0}.welcome-epoch strong{color:#e8a87c}.welcome-encouragement{color:#8b7d6b;font-style:italic}.welcome-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}.welcome-btn-primary{background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;border:none;padding:14px 28px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.welcome-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e8a87c66}.welcome-btn-primary:active{transform:translateY(0)}.welcome-btn-secondary{background:transparent;color:#8b7d6b;border:none;padding:10px 20px;font-size:14px;cursor:pointer;transition:all .2s;text-decoration:underline}.welcome-btn-secondary:hover{color:#4a3f35}.welcome-particle{position:absolute;font-size:20px;animation:float-welcome-particle 3s ease-out forwards;pointer-events:none}@keyframes float-welcome-particle{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:1;transform:translateY(-10px) scale(1)}to{opacity:0;transform:translateY(-80px) scale(.8)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-overlay-click{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999}@media (max-width: 480px){.welcome-modal{padding:24px 20px;max-height:90vh}.welcome-title{font-size:20px}.feature-grid{grid-template-columns:1fr}.welcome-section p{font-size:14px}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.main-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden;background:#faf8f5}.main-content{display:flex;flex:1;overflow:hidden}.content-left{flex-shrink:0}.content-center{flex:1;display:flex;flex-direction:column;min-width:0;padding:16px;overflow:hidden}.content-center.full-width{padding:16px 16px 16px 8px;overflow-y:auto}.content-right{width:280px;flex-shrink:0;padding:16px 16px 16px 0;overflow:visible}.panel-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000a;overflow:hidden}.content-right .panel-section{border-radius:12px}.map-section{flex:1;min-height:400px}.newborn-section{height:100%;padding:16px;overflow:visible}.all-hamsters-grid,.my-hamsters-page,.nest-page{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.family-tree-section{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0}@media (max-width: 1200px){.content-right{width:260px}}@media (max-width: 992px){.content-right{display:none}}@media (max-width: 768px){.main-content{flex-direction:column}.content-center{padding:12px}.content-right{width:100%;padding:12px}}.shop-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f5f0e8,#e8e2d8);border-radius:12px;border:1px solid #e8e2d8;margin-bottom:12px}.shop-header h2{margin:0;font-size:1.1rem;color:#4a3f35}.shop-coins{padding:4px 10px;background:#fef3c7;border-radius:12px;font-size:.85rem;color:#92400e;font-weight:600}.shop-filters{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.shop-filter-btn{padding:5px 12px;background:#faf8f5;border:1px solid #e8e2d8;border-radius:16px;font-size:.8rem;color:#6b7280;cursor:pointer;transition:all .2s}.shop-filter-btn:hover{background:#fef9f3;border-color:#e8a87c}.shop-filter-btn.active{background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;border-color:#e8a87c}.shop-message{padding:6px 12px;background:#d1fae5;color:#065f46;border-radius:8px;margin-bottom:12px;text-align:center;font-size:.85rem}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));gap:8px}.shop-item-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 6px;text-align:center;cursor:pointer;transition:all .2s}.shop-item-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:#e8a87c}.shop-item-emoji{font-size:1.8rem;margin-bottom:4px}.shop-item-name{font-weight:600;font-size:.75rem;color:#374151;margin-bottom:2px}.shop-item-effects{font-size:.65rem;color:#6b7280;margin-bottom:4px}.shop-item-effects span{margin-right:4px}.shop-item-price{font-weight:600;font-size:.8rem;color:#f59e0b}.inventory-list{display:flex;flex-direction:column;gap:4px}.inventory-empty{text-align:center;color:#9ca3af;font-size:.85rem;padding:16px 0}.inventory-item{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#f9fafb;border-radius:8px}.inventory-item span:first-child{font-size:1rem}.inventory-name{flex:1;font-size:.75rem;color:#374151}.inventory-count{font-size:.7rem;color:#6b7280;background:#e5e7eb;padding:2px 6px;border-radius:8px}.shop-message{padding:6px 12px;background:#d1fae5;color:#065f46;border-radius:6px;margin-bottom:12px;text-align:center;font-size:.85rem}.shop-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.shop-tab{padding:5px 12px;border:1px solid #e8e2d8;background:#faf8f5;color:#78350f;border-radius:14px;cursor:pointer;font-size:.8rem;transition:all .2s}.shop-tab:hover{background:#fef9f3;border-color:#e8a87c}.shop-tab.active{background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;border-color:#e8a87c}.shop-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.shop-item{background:linear-gradient(135deg,#fefce8,#fef9c3);border:1px solid #e8e2d8;border-radius:10px;padding:10px 6px;text-align:center;transition:all .2s}.shop-item:hover{transform:translateY(-1px);box-shadow:0 2px 8px #e8a87c33}.shop-item-emoji{font-size:1.6rem;margin-bottom:4px}.shop-item-name{font-weight:600;color:#78350f;font-size:.75rem;margin-bottom:2px}.shop-item-effect{font-size:.65rem;color:#92400e;margin-bottom:4px}.shop-item-price{font-weight:600;color:#b45309;font-size:.8rem;margin-bottom:4px}.shop-buy-btn{width:100%;padding:4px 10px;background:linear-gradient(135deg,#e8a87c,#d4956a);color:#fff;border:none;border-radius:12px;font-size:.75rem;cursor:pointer;transition:all .2s}.shop-buy-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 6px #e8a87c4d}.shop-buy-btn:disabled{background:#d1d5db;cursor:not-allowed}.shop-empty{text-align:center;color:#9ca3af;padding:32px}.inventory-summary{display:flex;flex-direction:column;gap:4px}.inventory-summary-item{display:flex;align-items:center;gap:6px;padding:4px 6px;background:#faf8f5;border-radius:6px}.inventory-summary-emoji{font-size:1rem}.inventory-summary-name{flex:1;font-size:.75rem;color:#78350f}.inventory-summary-count{font-size:.7rem;color:#92400e;background:#fef3c7;padding:1px 5px;border-radius:6px}.map-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:#8b7d6b;font-size:14px}.map-loading-spinner{width:32px;height:32px;border:3px solid #e5e0d8;border-top-color:#8b7d6b;border-radius:50%;animation:map-spin .8s linear infinite}@keyframes map-spin{to{transform:rotate(360deg)}}.page-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#f5f0e8,#e8e2d8);border-radius:12px;border:1px solid #e8e2d8;margin-bottom:12px}.page-header h2{margin:0;font-size:1.1rem;color:#4a3f35;font-weight:600}.page-header-badge{font-size:.85rem;color:#92400e;background:#fef3c7;padding:3px 10px;border-radius:12px;font-weight:500}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #eee;margin-bottom:12px}.sidebar-header h3{margin:0;font-size:1rem;color:#4a3f35;font-weight:600;display:flex;align-items:center;gap:6px}.sidebar-header-badge{font-size:.8rem;color:#8b7d6b;background:#f5f5f5;padding:2px 8px;border-radius:10px}.content-center.full-width{padding:16px 8px 16px 16px}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html,body{height:100%;margin:0;padding:0}body{background:#faf8f5;color:#4a3f35;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}#root{height:100%}.btn{border-radius:.5rem;padding:.5rem 1rem;font-weight:500;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.btn-primary{background:#e8a87c;color:#fff}.btn-primary:hover{background:#d4956a}.btn-secondary{background:#f5f0e8;color:#8b7d6b}.btn-secondary:hover{background:#ebe5d9}.card{background:#fff;border-radius:12px;padding:15px;box-shadow:0 2px 8px #0000000a}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-z-10{z-index:-10}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.w-full{width:100%}.scale-x-\[-1\]{--tw-scale-x: -1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(.5px)}}.animate-breathe{animation:breathe 2s ease-in-out infinite}@keyframes eat{0%,to{transform:translateY(0)}50%{transform:translateY(.5px)}}.animate-eat{animation:eat .5s ease-in-out infinite}@keyframes groom{0%,to{transform:translate(0)}25%{transform:translate(-1px)}75%{transform:translate(1px)}}.animate-groom{animation:groom 1s ease-in-out infinite}@keyframes happy{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.animate-happy{animation:happy .6s ease-in-out infinite}@keyframes run{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.animate-run{animation:run .3s ease-in-out infinite}@keyframes sleep{0%,to{transform:translateY(0)}50%{transform:translateY(1px)}}.animate-sleep{animation:sleep 2s ease-in-out infinite}@keyframes stretch{0%,to{transform:scaleX(1) scaleY(1)}25%{transform:scaleX(1.05) scaleY(.95)}50%{transform:scaleX(.98) scaleY(1.02)}75%{transform:scaleX(1.03) scaleY(.97)}}.animate-stretch{animation:stretch 1.5s ease-in-out infinite}@keyframes walk{0%,to{transform:translateY(0)}25%{transform:translateY(-1px)}75%{transform:translateY(1px)}}.animate-walk{animation:walk .8s ease-in-out infinite}.resize{resize:both}.content-center{align-content:center}.rounded-full{border-radius:9999px}.border{border-width:1px}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.underline{text-decoration-line:underline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.zzz-container{position:absolute;pointer-events:none}.zzz{position:absolute;font-size:10px;font-weight:700;color:#85c995;opacity:0;animation:zzz-float 2s ease-in-out infinite}.zzz-1{animation-delay:0s}.zzz-2{animation-delay:.4s;font-size:8px;margin-left:4px}.zzz-3{animation-delay:.8s;font-size:6px;margin-left:6px}@keyframes zzz-float{0%{opacity:0;transform:translateY(0) translate(0) scale(.8)}30%{opacity:1}to{opacity:0;transform:translateY(-15px) translate(8px) scale(1.2)}}@keyframes zzz-appear{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes social-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes walk-foot-left{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes walk-foot-right{0%,to{transform:translateY(-2px)}50%{transform:translateY(0)}}@keyframes bubblePop{0%{opacity:0;transform:scale(.5) translate(-50%)}60%{transform:scale(1.1) translate(-50%)}to{opacity:1;transform:scale(1) translate(-50%)}}.animate-sleep{animation:sleepBreathe 2.5s ease-in-out infinite}.animate-eat{animation:eatChew .3s ease-in-out infinite}.animate-walk{animation:walkWaddle .5s ease-in-out infinite}.animate-run{animation:runBounce .2s ease-in-out infinite}.animate-exercise{animation:exerciseBounce .4s ease-in-out infinite}@keyframes exerciseBounce{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.03)}}.animate-happy{animation:happyHop .4s ease-in-out infinite}.animate-stretch{animation:stretchExtend 1.5s ease-in-out infinite}.animate-groom{animation:groomShake 1s ease-in-out infinite}.animate-breathe{animation:idleBreathe 1.5s ease-in-out infinite}.animate-social{animation:social-float .6s ease-in-out infinite}@keyframes sleepBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.01)}}@keyframes eatChew{0%,to{transform:scale(1)}50%{transform:scale(1.02) translateY(1px)}}@keyframes walkWaddle{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-1px) rotate(2deg)}}@keyframes runBounce{0%,to{transform:translateY(0) scaleX(1)}25%{transform:translateY(-2px) scaleX(1.02)}75%{transform:translateY(-2px) scaleX(.98)}}@keyframes stretchExtend{0%,to{transform:scaleX(1)}50%{transform:scaleX(1.02)}}@keyframes groomShake{0%,to{transform:rotate(0)}25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}@keyframes happyHop{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.03)}}@keyframes idleBreathe{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.02) translateY(-1px)}}
