:root{--bg:#1a2a1a;--bg-light:#243424;--bg-dark:#0f1a0f;--accent:#8b5cf6;--accent-hover:#7c3aed;--gold:#f4d03f;--success:#2ecc71;--success-dark:#27ae60;--warning:#e67e22;--danger:#e74c3c;--text:#e0e0e0;--text-dim:#888;--border:#3a3a3a;--border-light:#4a4a4a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Fira Code", "Consolas", monospace;--radius:8px;--radius-sm:4px;--radius-lg:12px;--shadow:0 2px 8px #0000004d;--shadow-lg:0 4px 16px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.4}#root{flex-direction:column;height:100%;display:flex}h1,h2,h3,h4,h5,h6{margin-bottom:.5em;font-weight:600}h3{font-size:1.1rem}h4{font-size:.95rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}p{margin:.5em 0}.hint{color:var(--text-dim);font-size:.8rem}strong{font-weight:600}.app{background:var(--bg);flex-direction:column;height:100%;display:flex}.main-content{flex:1;display:flex;overflow:hidden}.top-bar{border-bottom:2px solid var(--accent);background:linear-gradient(#1a2a1a 0%,#0f1a0f 100%);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:8px 16px;display:flex}.top-left,.top-right{align-items:center;gap:16px;display:flex}.top-center{color:var(--text-dim);justify-content:center;align-items:center;gap:16px;font-size:.9rem;display:flex}.stat{white-space:nowrap;font-size:.95rem;font-weight:700}.stat.gold{color:var(--gold);text-shadow:0 0 10px #f4d03f4d}.stat.level{color:var(--accent)}.weather-display{cursor:default;filter:drop-shadow(0 0 8px #fff3);font-size:1.8rem}.xp-bar-wrap{align-items:center;gap:8px;display:flex}.xp-bar{background:var(--bg);border:1px solid var(--border);border-radius:5px;width:100px;height:10px;overflow:hidden}.xp-fill{background:linear-gradient(90deg, var(--accent), #a78bfa);border-radius:5px;height:100%;transition:width .3s}.xp-text{color:var(--text-dim);white-space:nowrap;font-size:.65rem}.speed-btn,.pause-btn{border-radius:var(--radius-sm);background:var(--bg-dark);color:var(--text-dim);border:2px solid var(--border);cursor:pointer;padding:6px 12px;font-size:.85rem;transition:all .15s}.speed-btn:hover,.pause-btn:hover{border-color:var(--accent);color:var(--text)}.speed-btn.active,.pause-btn{background:var(--accent);color:#fff;border-color:var(--accent)}.music-btn{border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%);border:none;padding:6px 14px;font-size:1.1rem;transition:all .15s;box-shadow:0 2px 6px #8b5cf64d}.music-btn:hover{transform:scale(1.05)}.reset-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(#ec7063 0%,#e74c3c 100%);border:none;padding:6px 12px;font-size:.8rem;font-weight:700;transition:all .15s;box-shadow:0 2px 6px #e74c3c4d}.reset-btn:hover{transform:scale(1.05)}.ranch-map{flex-direction:column;flex:1;display:flex;overflow:hidden}.map-container{background:radial-gradient(at 50% 80%,#2a4a2a 0%,#0000 60%),linear-gradient(#1a3020 0%,#0f1a0f 100%);flex-direction:row;flex:1;justify-content:center;align-items:stretch;padding:12px;display:flex;position:relative;overflow:hidden}.landscape{pointer-events:none;position:absolute;inset:0;overflow:hidden}.mountain{opacity:.12;font-size:6rem;position:absolute}.mountain-1{top:5%;left:10%}.mountain-2{font-size:3rem;top:8%;right:15%}.forest-left,.forest-right{opacity:.35;letter-spacing:-5px;font-size:2.5rem;position:absolute;top:15%}.forest-left{left:0}.forest-right{right:0}.side-buttons{z-index:5;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:14px;padding:12px;display:flex}.side-btn{border:2px solid var(--border);cursor:pointer;text-align:center;min-width:110px;color:var(--text);background:linear-gradient(#284628e6 0%,#1e321ee6 100%);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;padding:18px 14px;transition:all .2s;display:flex}.side-btn:hover{border-color:var(--accent);background:linear-gradient(#325a32f2 0%,#284628f2 100%);transform:translate(3px);box-shadow:0 4px 12px #8b5cf633}.side-btn-icon{margin-bottom:4px;font-size:1.6rem}.side-btn-label{margin-top:4px;font-size:.75rem}.side-btn-progress{color:var(--text-dim);margin-top:4px;font-size:.7rem}.side-btn.locked-btn{opacity:.5;cursor:not-allowed}.side-btn.locked-btn:hover{border-color:var(--border);box-shadow:none;background:linear-gradient(#284628e6 0%,#1e321ee6 100%);transform:none}.ranch-center{z-index:2;gap:14px;margin-bottom:16px;display:flex}.ranch-center-area{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:450px;padding:12px;display:flex}.ranch-buildings{border-radius:var(--radius);background:#0003;flex-flow:wrap;justify-content:center;gap:8px;min-height:65px;margin-bottom:8px;padding:8px;display:flex}.building{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(#323232cc 0%,#232323cc 100%);flex-direction:column;flex-shrink:0;align-items:center;min-width:55px;padding:6px 10px;font-size:2rem;transition:all .15s;display:flex}.building:hover{border-color:var(--accent);transform:scale(1.05)}.building span{color:var(--text-dim);margin-top:3px;font-size:.65rem;font-weight:600}.main-content.with-panel .ranch-map{flex:1;min-width:0}.bottom-nav{border-top:2px solid var(--accent);background:linear-gradient(#0f1a0f 0%,#1a2a1a 100%);flex-shrink:0;display:flex;overflow-x:auto}.nav-btn{border:none;border-right:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:60px;padding:10px 4px;font-size:.7rem;transition:all .15s;display:flex}.nav-btn:last-child{border-right:none}.nav-btn span:first-child{font-size:1.3rem}.nav-btn.active{background:linear-gradient(180deg, var(--accent) 0%, #7c3aed 100%);color:#fff;box-shadow:inset 0 2px 8px #fff3}.nav-btn:not(.active):hover{background:var(--bg-light);color:var(--text)}.nav-label{display:block}.plot-grid{z-index:2;grid-template-columns:repeat(8,1fr);gap:6px;width:100%;max-width:520px;display:grid}.plot-cell{aspect-ratio:1;border:2px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:#285028b3;flex-direction:column;justify-content:center;align-items:center;min-height:50px;transition:all .15s;display:flex;position:relative;overflow:hidden}.plot-cell:hover{border-color:var(--accent);background:#3c783ce6;transform:scale(1.02)}.plot-cell.selected{border-color:var(--accent);box-shadow:0 0 12px #8b5cf680}.plot-cell.locked{opacity:.5;cursor:not-allowed;background:#1e1e1eb3;border-style:dashed}.plot-cell.grass{background:#2d5a2db3}.plot-cell.farming{background:#466432cc}.plot-cell.ready{border-color:var(--success);background:#2e7d32cc;box-shadow:0 0 10px #2ec55166}.plot-cell.pasture{background:#645032b3}.plot-icon{filter:drop-shadow(0 1px 2px #00000080);font-size:1.6rem}.plot-label{color:#fff;text-shadow:0 1px 3px #000c;text-align:center;margin-top:2px;font-size:.65rem;font-weight:700;line-height:1.1}.plot-progress{background:#00000080;height:4px;position:absolute;bottom:0;left:0;right:0}.plot-progress-fill{background:linear-gradient(90deg, var(--warning), var(--success));height:100%;transition:width .5s linear}.plot-actions{background:var(--bg-light);border-radius:var(--radius);width:100%;max-width:520px;min-height:80px;max-height:200px;box-shadow:var(--shadow);flex-direction:column;gap:10px;margin-top:8px;padding:12px;display:flex;overflow-y:auto}.plot-actions h4{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.8rem}.plot-actions p{color:var(--text);margin:4px 0;font-size:.9rem}.selector-grid{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.selector-btn{border:2px solid var(--border);border-radius:var(--radius);color:#fff;background:linear-gradient(#3a5a3a 0%,#2a4a2a 100%);flex-direction:column;align-items:center;min-width:75px;padding:10px 14px;transition:all .15s;display:flex;box-shadow:0 2px 4px #0000004d}.selector-btn:hover:not(:disabled){border-color:var(--accent);background:linear-gradient(#4a6a4a 0%,#3a5a3a 100%);transform:translateY(-2px);box-shadow:0 4px 8px #0006}.selector-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(50%)}.selector-icon{margin-bottom:4px;font-size:1.5rem}.selector-name{text-shadow:0 1px 2px #00000080;font-size:.75rem;font-weight:600}.selector-hint{color:#ffffffb3;margin-top:2px;font-size:.65rem}.bulk-actions{flex-wrap:wrap;align-items:center;gap:10px;width:100%;max-width:520px;min-height:40px;margin:10px 0;display:flex}.bulk-btn{border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;padding:10px 18px;font-size:.85rem;font-weight:700;transition:all .15s;box-shadow:0 2px 6px #0000004d}.bulk-btn:disabled{opacity:.4;cursor:default;filter:grayscale(30%)}.bulk-btn.harvest-all{color:#000;background:linear-gradient(#3ddc84 0%,#2ecc71 100%)}.bulk-btn.harvest-all:hover:not(:disabled){background:linear-gradient(#4eed8f 0%,#27ae60 100%);transform:translateY(-2px);box-shadow:0 4px 10px #2ec55166}.bulk-btn.plant-all{color:#fff;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%)}.bulk-btn.plant-all:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%);transform:translateY(-2px);box-shadow:0 4px 10px #8b5cf666}.bulk-plant{align-items:center;gap:8px;display:flex}.plant-select{background:var(--bg-dark);color:var(--text);border:2px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-width:140px;padding:8px 12px;font-size:.85rem}.plant-select:focus{border-color:var(--accent);outline:none}.action-btn{border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;padding:12px 24px;font-size:.9rem;font-weight:700;transition:all .15s;box-shadow:0 2px 6px #0000004d}.action-btn.harvest{color:#000;background:linear-gradient(#3ddc84 0%,#2ecc71 100%)}.action-btn.harvest:hover{background:linear-gradient(#4eed8f 0%,#27ae60 100%);transform:scale(1.02)}.action-btn.remove-btn{background:var(--bg-dark);color:var(--text-dim);border:2px solid var(--border)}.action-btn.remove-btn:hover{border-color:var(--danger);color:var(--danger)}.side-panel{background:linear-gradient(180deg, var(--bg-light) 0%, #1e2e1e 100%);border-left:1px solid var(--border);flex-shrink:0;width:300px;padding:16px;overflow-y:auto}.side-panel h3{color:var(--text);border-bottom:2px solid var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;padding-bottom:10px;font-size:1.1rem}.side-panel h4{color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin:16px 0 10px;font-size:.8rem}.shop-list{flex-direction:column;gap:8px;display:flex}.shop-item{background:var(--bg-dark);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;padding:12px;transition:all .15s;display:flex}.shop-item:hover{border-color:var(--accent)}.shop-item.buy{flex-direction:column;gap:10px}.shop-item>div:first-child{align-items:center;gap:8px;display:flex}.shop-item .icon{font-size:1.4rem}.shop-item .name{font-size:.95rem;font-weight:700}.shop-item .hint{color:var(--text-dim);margin-top:4px;font-size:.75rem}.shop-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.shop-btn{border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;padding:10px 18px;font-size:.85rem;font-weight:700;transition:all .15s;box-shadow:0 2px 4px #0000004d}.shop-btn.primary{color:#fff;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%)}.shop-btn.primary:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%);transform:translateY(-1px)}.shop-btn.secondary{background:var(--bg-light);color:var(--text);border:1px solid var(--border)}.shop-btn.secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.shop-btn.gold{color:#000;background:linear-gradient(#f7dc6f 0%,#f4d03f 100%)}.shop-btn.gold:hover:not(:disabled){background:linear-gradient(#fbe5a0 0%,#f7dc6f 100%)}.shop-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(30%)}.buy-input,.sell-input{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius-sm);width:55px;color:var(--text);text-align:center;padding:8px;font-size:.9rem;font-weight:600}.buy-input:focus,.sell-input:focus{border-color:var(--accent);outline:none}.seed-count{color:var(--gold);background:#f4d03f26;border:1px solid #f4d03f4d;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700}.sell-feedback{color:var(--success);font-weight:700;animation:1.5s ease-out forwards fadeOut}@keyframes fadeOut{0%{opacity:1}70%{opacity:1}to{opacity:0}}.axe-offer{border-radius:var(--radius);text-align:center;background:linear-gradient(135deg,#8c642833 0%,#64461e33 100%);border:2px solid #a84;margin-bottom:14px;padding:14px}.axe-offer p{margin-bottom:8px;font-size:.9rem}.buy-axe-btn{color:#000;border-radius:var(--radius);cursor:pointer;background:linear-gradient(#f5a623 0%,#e67e22 100%);border:none;padding:12px 24px;font-size:.9rem;font-weight:700;transition:all .15s;box-shadow:0 2px 8px #e67e2266}.buy-axe-btn:hover:not(:disabled){background:linear-gradient(#f7b545 0%,#f39c12 100%);transform:translateY(-2px)}.buy-axe-btn:disabled{opacity:.5;cursor:not-allowed}.order-list{flex-direction:column;gap:12px;display:flex}.order-card{background:var(--bg-dark);border:2px solid var(--border);border-radius:var(--radius);padding:14px;transition:all .15s}.order-card:hover{border-color:var(--accent)}.order-card.expired{opacity:.5;border-color:var(--danger)}.order-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.order-header .npc{font-size:.9rem;font-weight:700}.order-timer{color:var(--warning);font-size:.8rem;font-weight:600}.order-desc{color:var(--text-dim);margin-bottom:10px;font-size:.85rem}.order-progress{border-radius:var(--radius-sm);background:#0000004d;justify-content:space-between;align-items:center;margin-bottom:10px;padding:8px;font-size:.85rem;display:flex}.order-progress .current{color:var(--success);font-weight:700}.order-reward{color:var(--gold);font-weight:700}.deliver-btn{color:#000;border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(#3ddc84 0%,#2ecc71 100%);border:none;width:100%;padding:12px;font-size:.9rem;font-weight:700;transition:all .15s}.deliver-btn:hover:not(:disabled){background:linear-gradient(#4eed8f 0%,#27ae60 100%);transform:translateY(-1px)}.deliver-btn:disabled{background:var(--bg-light);color:var(--text-dim);cursor:not-allowed}.building-list{flex-direction:column;gap:12px;display:flex}.building-card{background:var(--bg-dark);border:2px solid var(--border);border-radius:var(--radius);padding:14px;transition:all .15s}.building-card:hover{border-color:var(--accent)}.building-card.built{border-color:var(--success)}.building-card.maxed{border-color:var(--gold)}.building-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.building-header .name{font-size:.95rem;font-weight:700}.building-header .level{color:var(--accent);font-size:.85rem;font-weight:600}.building-desc{color:var(--text-dim);margin-bottom:10px;font-size:.8rem}.building-cost{color:var(--gold);margin:8px 0;font-size:.85rem;font-weight:600}.build-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%);border:none;width:100%;padding:12px;font-size:.9rem;font-weight:700;transition:all .15s}.build-btn:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%);transform:translateY(-1px)}.build-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(30%)}.build-cost{color:#ffffffb3;margin-top:4px;font-size:.7rem;font-weight:400;display:block}.skill-list{flex-direction:column;gap:10px;display:flex}.skill-card{background:var(--bg-dark);border:2px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:12px;transition:all .15s;display:flex}.skill-card:hover{border-color:var(--accent)}.skill-card.unlocked{border-color:var(--success)}.skill-card.locked{opacity:.6}.skill-info{align-items:center;gap:10px;display:flex}.skill-icon{font-size:1.4rem}.skill-name{font-size:.9rem;font-weight:600}.skill-desc{color:var(--text-dim);font-size:.75rem}.skill-cost{color:var(--gold);margin-right:10px;font-size:.8rem;font-weight:600}.upgrade-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%);border:none;padding:10px 18px;font-size:.8rem;font-weight:700;transition:all .15s}.upgrade-btn:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%)}.upgrade-btn:disabled{opacity:.4;cursor:not-allowed}.research-list{flex-direction:column;gap:10px;display:flex}.research-card{background:var(--bg-dark);border:2px solid var(--border);border-radius:var(--radius);padding:14px;transition:all .15s}.research-card:hover{border-color:var(--accent)}.research-card.unlocked{border-color:var(--success);background:#2e7d321a}.research-card.locked{opacity:.6}.research-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.research-icon{font-size:1.4rem}.research-name{font-size:.95rem;font-weight:700}.research-desc{color:var(--text-dim);margin:8px 0;font-size:.8rem}.research-cost{color:var(--gold);margin:8px 0;font-size:.85rem;font-weight:600}.research-btn{color:#fff;border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%);border:none;padding:10px 18px;font-size:.8rem;font-weight:700;transition:all .15s}.research-btn:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%)}.research-btn:disabled{opacity:.4;cursor:not-allowed}.resources-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.resource-item{background:var(--bg-dark);border-radius:var(--radius);text-align:center;border:1px solid var(--border);padding:14px}.resource-icon{margin-bottom:6px;font-size:1.8rem;display:block}.resource-name{color:var(--text-dim);font-size:.75rem;display:block}.resource-count{margin-top:4px;font-size:1.1rem;font-weight:700;display:block}.castle-panel{flex-direction:column;gap:12px;display:flex}.castle-hp{background:var(--bg-dark);border-radius:var(--radius);margin:10px 0;padding:10px}.castle-hp span{font-size:.9rem;font-weight:600}.hp-bar{background:var(--bg);border-radius:7px;height:14px;margin-top:6px;overflow:hidden}.hp-fill{border-radius:7px;height:100%;transition:width .3s}.castle-bonus{color:var(--success);border-radius:var(--radius-sm);border:1px solid var(--success);background:#2ec5511a;margin:8px 0;padding:8px;font-weight:700}.castle-stats{background:var(--bg-dark);border-radius:var(--radius);flex-wrap:wrap;gap:12px;margin:10px 0;padding:10px;font-size:.85rem;display:flex}.castle-actions{gap:10px;margin:10px 0;display:flex}.castle-upgrade{margin:10px 0}.repair-btn{color:#000;border-radius:var(--radius);cursor:pointer;background:linear-gradient(#f7b545 0%,#e67e22 100%);border:none;flex:1;padding:12px 16px;font-size:.85rem;font-weight:700;transition:all .15s;box-shadow:0 2px 6px #e67e224d}.repair-btn:hover:not(:disabled){transform:translateY(-2px)}.repair-btn:disabled{opacity:.5;cursor:default;filter:grayscale(30%)}.defend-panel{flex-direction:column;gap:12px;display:flex}.defence-field{border-radius:var(--radius);border:2px solid var(--border);background:linear-gradient(#1a2a1a 0%,#0f1a0f 100%);width:100%;height:180px;margin:10px 0;position:relative;overflow:hidden}.castle-icon{filter:drop-shadow(0 2px 4px #00000080);font-size:2.5rem;position:absolute;bottom:12px;left:2%}.tower-slot{text-align:center;width:36px;position:absolute;bottom:12px}.tower-placed{filter:drop-shadow(0 2px 3px #00000080);font-size:1.8rem}.tower-empty{opacity:.3;font-size:1.4rem}.tower-picker{flex-direction:column;gap:4px;display:flex}.tower-option{border:2px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:linear-gradient(#4a5a4a 0%,#3a4a3a 100%);padding:4px;font-size:1rem;line-height:1;transition:all .15s}.tower-option:disabled{opacity:.3;cursor:default}.tower-option:hover:not(:disabled){border-color:var(--accent);background:linear-gradient(#5a6a5a 0%,#4a5a4a 100%)}.monster{text-align:center;width:36px;transition:left .1s linear;position:absolute;bottom:12px}.monster-icon{filter:drop-shadow(0 2px 3px #00000080);font-size:1.5rem}.monster-hp-bar{background:#333;border-radius:2px;width:28px;height:4px;margin:4px auto;overflow:hidden}.monster-hp-fill{background:linear-gradient(90deg,#e74c3c,#c0392b);border-radius:2px;height:100%}.defence-controls{text-align:center;margin:12px 0}.tower-placed-info{flex-direction:column;align-items:center;gap:4px;display:flex}.tower-icon-big{filter:drop-shadow(0 2px 3px #00000080);font-size:1.8rem}.tower-level{color:var(--success);font-size:.65rem;font-weight:700}.tower-upgrade-btn{border-radius:var(--radius-sm);cursor:pointer;color:#000;background:linear-gradient(#3ddc84 0%,#2ecc71 100%);border:none;padding:4px 10px;font-size:.75rem;font-weight:700;transition:all .15s;box-shadow:0 2px 4px #2ec5514d}.tower-upgrade-btn:hover:not(:disabled){transform:scale(1.1)}.tower-upgrade-btn:disabled{opacity:.3;cursor:default}.tower-max{color:var(--gold);font-size:.6rem;font-weight:700}.back-btn{background:var(--bg-dark);color:var(--text);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;margin-top:auto;padding:14px 20px;font-size:.9rem;font-weight:600;transition:all .15s}.castle-build-btn{color:#fff;border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%);border:none;width:100%;padding:14px;font-size:.95rem;font-weight:700;transition:all .15s;box-shadow:0 2px 8px #8b5cf64d}.castle-build-btn:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%);transform:translateY(-2px)}.castle-build-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(30%)}.wave-btn{color:#fff;border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:1px;background:linear-gradient(#ec7063 0%,#e74c3c 100%);border:none;width:100%;padding:16px;font-size:1rem;font-weight:700;transition:all .15s;box-shadow:0 2px 10px #e74c3c66}.wave-btn:hover:not(:disabled){background:linear-gradient(#f08070 0%,#c0392b 100%);transform:translateY(-2px)}.wave-btn:disabled{background:var(--bg-light);color:var(--text-dim);cursor:not-allowed;box-shadow:none}.minigame-container{flex-direction:column;align-items:center;gap:16px;padding:16px;display:flex}.minigame-title{margin-bottom:8px;font-size:1.5rem}.minigame-hint{color:var(--text-dim);text-align:center;max-width:300px;font-size:.85rem}.resource-display{background:var(--bg-dark);border-radius:var(--radius);border:2px solid var(--border);flex-direction:column;align-items:center;gap:4px;padding:16px 32px;display:flex}.resource-icon{font-size:3rem}.resource-name{font-size:1rem;font-weight:700}.resource-count{color:var(--text-dim);font-size:.85rem}.click-area{border:3px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(circle,#3a5a3a 0%,#2a4a2a 100%);border-radius:50%;justify-content:center;align-items:center;width:200px;height:200px;transition:all .1s;display:flex}.click-area:hover{border-color:var(--accent);transform:scale(1.02)}.click-area:active{border-color:var(--success);transform:scale(.98)}.click-area.shake{animation:.15s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)rotate(-1deg)}75%{transform:translate(4px)rotate(1deg)}}.click-area-inner{text-align:center}.click-icon{font-size:4rem}.click-hint{color:var(--text-dim);margin-top:4px;font-size:.75rem}.lockout-overlay{border-radius:var(--radius);background:#000000b3;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.lockout-timer{color:var(--warning);font-size:2rem;font-weight:700}.lockout-event{color:var(--text);text-align:center;padding:0 16px;font-size:.85rem}.drop-feedback{background:var(--bg-dark);border:2px solid var(--success);border-radius:var(--radius);text-align:center;z-index:10;padding:12px 20px;animation:.3s ease-out popIn;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes popIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.drop-icon{font-size:2rem}.drop-name{margin-top:4px;font-size:.85rem}.drop-xp{color:var(--success);margin-top:2px;font-size:.7rem}.progress-counter{color:var(--text-dim);margin:8px 0;font-size:.9rem}.progress-bar{background:var(--bg-dark);border-radius:4px;width:200px;height:8px;margin:8px 0;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--warning), var(--success));height:100%;transition:width .2s}.minigame-actions{margin-top:16px}.back-btn{background:var(--bg-dark);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:8px 16px;font-size:.85rem;transition:all .15s}.back-btn:hover{border-color:var(--accent);color:var(--text)}.btn{border-radius:var(--radius);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.9rem;font-weight:700;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(30%)}.btn-primary{color:#fff;background:linear-gradient(#9b7cf4 0%,#8b5cf6 100%);box-shadow:0 2px 8px #8b5cf64d}.btn-primary:hover:not(:disabled){background:linear-gradient(#ab8cf4 0%,#7c3aed 100%);transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf666}.btn-success{color:#000;background:linear-gradient(#3ddc84 0%,#2ecc71 100%);box-shadow:0 2px 8px #2ec5514d}.btn-success:hover:not(:disabled){background:linear-gradient(#4eed8f 0%,#27ae60 100%);transform:translateY(-2px)}.btn-warning{color:#000;background:linear-gradient(#f7b545 0%,#e67e22 100%);box-shadow:0 2px 8px #e67e224d}.btn-danger{color:#fff;background:linear-gradient(#ec7063 0%,#e74c3c 100%);box-shadow:0 2px 8px #e74c3c4d}.btn-secondary{background:var(--bg-light);color:var(--text);border:2px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.input{background:var(--bg-dark);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:10px 14px;font-size:.9rem;transition:border-color .15s}.input:focus{border-color:var(--accent);outline:none}.input::placeholder{color:var(--text-dim)}.select{background:var(--bg-dark);border:2px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;padding:10px 14px;font-size:.9rem}.select:focus{border-color:var(--accent);outline:none}.card{background:var(--bg-light);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.card-title{font-size:1rem;font-weight:700}.badge{background:var(--bg-dark);border-radius:999px;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-block}.badge-success{background:var(--success);color:#000}.badge-warning{background:var(--warning);color:#000}.badge-danger{background:var(--danger);color:#fff}.badge-gold{background:var(--gold);color:#000}.notification{background:var(--bg-dark);border:2px solid var(--accent);border-radius:var(--radius);z-index:1000;box-shadow:var(--shadow-lg);color:var(--text);padding:14px 24px;font-size:.95rem;animation:.3s ease-out slideUp;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.info-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:10px 0;display:grid}.info-grid>div{background:var(--bg-dark);border-radius:var(--radius-sm);padding:8px;font-size:.85rem}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(55px,1fr));gap:8px;margin:10px 0;display:grid}.inv-item{background:var(--bg-dark);border-radius:var(--radius-sm);border:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px;font-size:.75rem;transition:all .15s;display:flex}.inv-item:hover{border-color:var(--accent)}.inv-item span:first-child{font-size:1.4rem}.inv-item.inv-full{border-color:var(--warning);background:#e67e221a}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@media (width<=768px){.side-panel{z-index:50;width:100%;position:fixed;inset:0}.plot-grid{grid-template-columns:repeat(4,1fr)}.top-bar{flex-wrap:wrap;gap:6px}.top-center{order:-1;justify-content:center;width:100%}}
