*{box-sizing:border-box;margin:0;padding:0}:root{--tg-theme-bg-color:#fff;--tg-theme-text-color:#000;--tg-theme-hint-color:#999;--tg-theme-link-color:#2481cc;--tg-theme-button-color:#2481cc;--tg-theme-button-text-color:#fff;--tg-theme-secondary-bg-color:#f0f0f0;--food-color:#4caf50;--wood-color:#795548;--stone-color:#9e9e9e;--gold-color:#ffc107;--crystal-color:#9c27b0;--humans-color:gold;--elves-color:#50c878;--dwarves-color:#708090;--dark-color:purple;--panel-bg:#000c;--border-color:#333;--success-color:#4caf50;--error-color:#f44336;--warning-color:#ff9800}body{-webkit-tap-highlight-color:transparent;background-color:#fff;background-color:var(--tg-theme-bg-color);color:#000;color:var(--tg-theme-text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow:hidden;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}#root{width:100%}#root,.app-container{height:100vh;overflow:hidden}.app-container{display:flex;flex-direction:column;width:100vw}.top-bar{background:linear-gradient(180deg,#000000e6,#000000b3);border-bottom:2px solid #333;border-bottom:2px solid var(--border-color);justify-content:space-between;padding:8px 12px;z-index:100}.player-info,.top-bar{align-items:center;display:flex}.player-info{background:#ffffff1a;border-radius:8px;cursor:pointer;gap:8px;padding:4px 8px;transition:background .2s}.player-info:hover{background:#fff3}.player-avatar{align-items:center;background:#00000080;border:3px solid gold;border:3px solid var(--faction-color,gold);border-radius:50%;color:#fff;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;position:relative;width:40px}.player-level{background:#2481cc;background:var(--tg-theme-button-color);border-radius:50%;bottom:-5px;color:#fff;font-size:10px;min-width:18px;padding:2px 5px;position:absolute;right:-5px;text-align:center}.player-name{color:#fff;font-size:12px;font-weight:600}.resources{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.resource{align-items:center;background:#ffffff1a;border-radius:6px;color:#fff;display:flex;font-size:12px;font-weight:600;gap:4px;padding:4px 8px}.resource-icon{font-size:14px}.resource-food{background:#4caf504d}.resource-wood{background:#7955484d}.resource-stone{background:#9e9e9e4d}.resource-gold{background:#ffc1074d}.resource-crystal{background:#9c27b04d}.game-area{background:linear-gradient(180deg,#87ceeb,#98d8aa);flex:1 1;overflow:auto;position:relative}.city-container{display:flex;flex-direction:column;gap:0;margin:20px;padding:0}.wall-visual{background:linear-gradient(180deg,#8b4513,#654321);border:2px solid #4a3520;position:relative}.wall-bottom,.wall-top{align-items:center;display:flex;height:30px;justify-content:center}.wall-text{color:#fff;font-size:12px;font-weight:700;text-shadow:1px 1px 2px #000}.wall-left,.wall-right{background:linear-gradient(90deg,#8b4513,#654321);width:15px}.city-map,.city-map-wrapper{display:flex;gap:0}.city-map{background:#0003;flex-direction:column;padding:20px;transform:perspective(1000px) rotateX(20deg);transform-style:preserve-3d}.city-row{gap:0}.city-row,.city-slot{display:flex;justify-content:center}.city-slot{align-items:center;background:linear-gradient(135deg,#8b77654d,#65574d66 50%,#4d433b4d);border:1px solid #ffffff1a;cursor:pointer;height:50px;position:relative;transform:skewX(-26.5deg) scaleY(.85);transform-origin:center;transition:all .2s;width:50px}.city-slot:hover{background:linear-gradient(135deg,#8b776580,#65574d99 50%,#4d433b80);box-shadow:0 0 15px #ffffff4d}.city-slot.build-mode{background:linear-gradient(135deg,#4caf504d,#388e3c66 50%,#2e7d324d);border-color:#4caf50cc}.city-slot.build-mode:hover{background:linear-gradient(135deg,#4caf5080,#388e3c99 50%,#2e7d3280);box-shadow:0 0 20px #4caf5099}.city-slot.filled{background:#0000;border:none;cursor:pointer}.city-slot.filled:hover{box-shadow:0 0 15px #ffffff4d}.building-sprite{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:relative;transform:translateY(-20px);width:100%}.building-icon{filter:drop-shadow(3px 3px 4px rgba(0,0,0,.6));font-size:36px}.building-icon.sprite-castle{background-position:50%;background-repeat:no-repeat;background-size:contain;font-size:0;height:150px;width:150px}.building-level{background:linear-gradient(180deg,gold,#b8860b);border:1px solid #fff;border-radius:50%;bottom:-5px;box-shadow:0 2px 5px #00000080;color:#000;font-size:10px;font-weight:700;padding:2px 5px;position:absolute;right:-5px}.building-progress{background:#000000b3;border-radius:2px;bottom:-8px;height:4px;left:0;overflow:hidden;position:absolute;right:0}.progress-bar{background:linear-gradient(90deg,#4caf50,#8bc34a);box-shadow:0 0 5px #4caf50cc;height:100%;transition:width .3s}.building-extension{background:#0000;border:none;height:100%;width:100%}.build-preview{color:#4caf50;font-size:20px;font-weight:700}.empty-slot-hint{opacity:.3}.bottom-bar{background:linear-gradient(0deg,#000000f2,#000c);border-top:2px solid #333;border-top:2px solid var(--border-color);max-height:40vh;overflow-y:auto;padding:12px;z-index:100}.btn-build-main{background:linear-gradient(180deg,#4caf50,#388e3c);border:none;border-radius:12px;box-shadow:0 4px 15px #4caf504d;color:#fff;cursor:pointer;font-size:18px;font-weight:700;padding:16px 24px;transition:all .2s;width:100%}.btn-build-main:hover{box-shadow:0 6px 20px #4caf5080;transform:translateY(-2px)}.build-panel{display:flex;flex-direction:column;gap:12px}.build-panel-header{align-items:center;border-bottom:1px solid #fff3;display:flex;justify-content:space-between;padding-bottom:8px}.build-panel-header span{color:#fff;font-size:14px;font-weight:600}.btn-cancel{background:#f4433633;border:1px solid #f44336;border-radius:6px;color:#f44336;cursor:pointer;font-size:12px;padding:6px 12px;transition:all .2s}.btn-cancel:hover{background:#f4433666}.build-hint{background:#4caf5033;border:1px solid #4caf5080;border-radius:8px;color:#81c784;font-size:13px;padding:10px;text-align:center}.buildings-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));max-height:250px;overflow-y:auto;padding:8px}.building-card{align-items:center;background:#ffffff14;border:2px solid #ffffff26;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:10px;position:relative;transition:all .2s}.building-card:hover{background:#ffffff26;border-color:#fff6}.building-card.selected{background:#4caf5033;border-color:#4caf50;box-shadow:0 0 15px #4caf5066}.building-card.locked{cursor:not-allowed;filter:grayscale(1);opacity:.4}.building-card-icon{font-size:32px}.building-card-name{color:#fff;font-size:11px;font-weight:600;text-align:center}.building-card-size{background:#0000004d;border-radius:4px;color:#fff9;font-size:9px;padding:2px 6px}.building-card-cost{color:#fffc;flex-wrap:wrap;font-size:10px;gap:6px}.building-card-cost,.modal-overlay{display:flex;justify-content:center}.modal-overlay{align-items:center;background:#000c;bottom:0;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;background:var(--tg-theme-bg-color);border-radius:16px;box-shadow:0 10px 40px #00000080;max-height:80vh;max-width:400px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #333;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px}.modal-title{font-size:18px;font-weight:700}.modal-close{background:none;border:none;color:#999;color:var(--tg-theme-hint-color);cursor:pointer;font-size:24px}.modal-content{padding:16px}.modal-footer{border-top:1px solid #333;border-top:1px solid var(--border-color);display:flex;gap:8px;padding:16px}.btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:12px 20px;transition:all .2s}.btn-primary{background:#2481cc;background:var(--tg-theme-button-color);color:#fff;color:var(--tg-theme-button-text-color)}.btn-primary:hover{opacity:.9}.btn-secondary{background:#ffffff1a;color:#000;color:var(--tg-theme-text-color)}.faction-select-overlay{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e);bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.faction-select-title{font-size:28px;margin-bottom:8px}.faction-select-subtitle{color:#ffffffb3;font-size:14px;margin-bottom:30px}.factions-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);max-width:400px;width:100%}.faction-card{align-items:center;background:#ffffff1a;border:3px solid #fff3;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:16px;transition:all .3s}.faction-card:hover{border-color:var(--faction-color);box-shadow:0 10px 30px #0000004d;transform:translateY(-5px)}.faction-icon{font-size:48px}.faction-name{font-size:14px;font-weight:700}.faction-bonus{color:#ffffffb3;font-size:11px;text-align:center}.toast-container{display:flex;flex-direction:column;gap:8px;left:50%;pointer-events:none;position:fixed;top:80px;transform:translateX(-50%);z-index:3000}.toast{animation:slideDown .3s ease-out;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;font-size:14px;font-weight:500;padding:12px 20px}.toast-success{background:#4caf50;background:var(--success-color)}.toast-error{background:#f44336;background:var(--error-color)}.toast-warning{background:#ff9800;background:var(--warning-color)}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.loading-screen{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e);bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:5000}.loading-title{font-size:24px;margin-bottom:20px}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:40px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:360px){.resources{gap:4px}.resource{font-size:10px;padding:3px 6px}.city-slot{height:35px;width:35px}.building-icon{font-size:24px}}
/*# sourceMappingURL=main.85075f0f.css.map*/