@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}body,html,#root{color:#f8fafc;background-color:#090d16;width:100%;height:100%;font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI Emoji,Noto Color Emoji,Apple Color Emoji,Android Emoji,sans-serif;overflow:hidden}.game-container{width:100vw;height:100vh;position:relative;overflow:hidden}.hud-top-bar{-webkit-backdrop-filter:blur(16px);z-index:50;background:#0f172abf;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:20px;padding:8px 18px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0006}.hud-brand{border-right:1px solid #ffffff26;align-items:center;gap:10px;padding-right:14px;display:flex}.village-title{background:linear-gradient(135deg,#fde047,#f97316);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;font-size:.95rem;font-weight:700}.time-badge{color:#94a3b8;background:#ffffff0d;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:.82rem;font-weight:600;display:flex}.resource-list{align-items:center;gap:12px;display:flex}.resource-pill{background:#ffffff0f;border:1px solid #ffffff0f;border-radius:8px;align-items:center;gap:6px;padding:4px 10px;font-size:.88rem;font-weight:600;transition:transform .15s;display:flex}.resource-pill:hover{background:#ffffff1a;transform:translateY(-1px)}.resource-pill .icon{font-size:1rem}.resource-pill.population{color:#38bdf8;background:#38bdf81a;border-color:#38bdf84d}.speed-controls{border-left:1px solid #ffffff26;align-items:center;gap:6px;padding-left:14px;display:flex}.btn-icon{color:#94a3b8;cursor:pointer;background:#ffffff14;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.btn-icon:hover{color:#fff;background:#ffffff29}.btn-icon.active{color:#38bdf8;background:#38bdf833;border:1px solid #38bdf866}.hud-side-actions{z-index:50;flex-direction:column;gap:10px;display:flex;position:absolute;top:16px;right:20px}.btn-side{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#f8fafc;cursor:pointer;background:#0f172abf;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:8px;padding:8px 14px;font-size:.85rem;font-weight:600;transition:all .15s;display:flex;box-shadow:0 4px 14px #0000004d}.btn-side:hover{background:#1e293be6;transform:translateY(-1px)}.village-log-feed{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:45;pointer-events:none;background:#0f172abf;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;gap:8px;width:280px;padding:12px;display:flex;position:absolute;top:75px;right:20px;box-shadow:0 8px 24px #00000059}.log-header{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;border-bottom:1px solid #ffffff14;align-items:center;gap:6px;padding-bottom:6px;font-size:.75rem;font-weight:700;display:flex}.log-items{flex-direction:column;gap:6px;display:flex}.log-entry{color:#e2e8f0;background:#ffffff0a;border-left:2px solid #38bdf8;border-radius:6px;padding:4px 8px;font-size:.8rem;line-height:1.35;animation:.25s ease-out fadeIn}.build-toolbar-container{z-index:50;flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.placement-instruction{color:#0f172a;background:#f59e0be6;border-radius:9999px;align-items:center;gap:12px;padding:8px 16px;font-size:.88rem;font-weight:600;display:flex;box-shadow:0 4px 16px #f59e0b66}.btn-cancel{color:#0f172a;cursor:pointer;background:#0003;border:none;border-radius:9999px;align-items:center;gap:4px;padding:3px 8px;font-weight:700;display:flex}.btn-cancel:hover{background:#00000059}.build-toolbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172acc;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:16px;padding:10px 18px;display:flex;box-shadow:0 16px 36px #00000080}.toolbar-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;border-right:1px solid #ffffff1a;flex-direction:column;align-items:center;gap:4px;padding-right:12px;font-size:.75rem;font-weight:700;display:flex}.building-cards{align-items:center;gap:10px;display:flex}.building-btn{color:#f8fafc;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;align-items:center;gap:6px;min-width:100px;padding:8px 12px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex}.building-btn:hover:not(.disabled){background:#ffffff1f;border-color:#fff3;transform:translateY(-3px)}.building-btn.selected{background:#facc152e;border-color:#facc15;box-shadow:0 0 18px #facc154d}.building-btn.disabled{opacity:.45;cursor:not-allowed}.building-icon{font-size:1.5rem}.building-info{flex-direction:column;align-items:center;gap:4px;display:flex}.building-info .name{font-size:.8rem;font-weight:600}.cost-row{gap:4px;display:flex}.cost-pill{color:#cbd5e1;background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:600}.cost-pill.unmet{color:#f87171;background:#ef444426}.inspector-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:50;background:#0f172ad9;border:1px solid #ffffff24;border-radius:16px;flex-direction:column;gap:12px;width:290px;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:absolute;top:90px;left:20px;box-shadow:0 12px 30px #00000073}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.inspector-header{justify-content:space-between;align-items:center;display:flex}.title-with-icon{align-items:center;gap:8px;display:flex}.title-with-icon .icon{font-size:1.3rem}.title-with-icon h4{font-size:1.05rem;font-weight:700}.btn-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;display:flex}.btn-close:hover{color:#fff;background:#ffffff1a}.inspector-card .description{color:#94a3b8;font-size:.84rem;line-height:1.4}.io-row{flex-direction:column;gap:6px;display:flex}.io-row .label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:600}.tag.input{color:#fca5a5;background:#ef444426}.tag.output{color:#6ee7b7;background:#10b98126}.progress-bar-container{flex-direction:column;gap:6px;display:flex}.progress-label{color:#94a3b8;justify-content:space-between;font-size:.75rem;font-weight:600;display:flex}.progress-track{background:#ffffff14;border-radius:9999px;width:100%;height:8px;overflow:hidden}.progress-track.sm{height:6px}.progress-fill{background:#10b981;height:100%;transition:width .15s ease-out}.progress-fill.energy{background:#38bdf8}.progress-fill.hunger{background:#f59e0b}.inspector-actions{justify-content:flex-end;margin-top:4px;display:flex}.btn-demolish{color:#fca5a5;cursor:pointer;background:#ef444426;border:1px solid #ef44444d;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.btn-demolish:hover{background:#ef44444d}.villager-role{align-items:center;gap:8px;display:flex}.badge{color:#38bdf8;background:#38bdf826;border-radius:6px;padding:3px 8px;font-size:.8rem;font-weight:700}.state-badge{color:#94a3b8;font-size:.78rem}.stats-list{flex-direction:column;gap:8px;display:flex}.stat-row{flex-direction:column;gap:4px;display:flex}.stat-label{color:#cbd5e1;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.carrying-box{background:#ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.82rem;display:flex}.carrying-box.empty{color:#64748b;font-style:italic}.main-menu-overlay{-webkit-backdrop-filter:blur(12px);z-index:100;background:#090d16d9;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.main-menu-panel{background:#0f172af2;border:1px solid #ffffff26;border-radius:20px;flex-direction:column;width:90%;max-width:680px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 25px 60px #0009}.menu-header{background:#ffffff05;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.menu-title-row{align-items:center;gap:12px;display:flex}.game-logo{font-size:2rem}.menu-title-row h2{background:linear-gradient(135deg,#fde047,#f97316);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.3rem;font-weight:700}.menu-title-row .subtitle{color:#94a3b8;font-size:.8rem}.btn-close-menu{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px;transition:all .15s}.btn-close-menu:hover{color:#fff;background:#ffffff1a}.menu-tabs{background:#0003;border-bottom:1px solid #ffffff14;gap:12px;padding:0 24px;display:flex}.tab-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:12px 16px;font-size:.88rem;font-weight:600;transition:all .15s;display:flex}.tab-btn:hover{color:#fff}.tab-btn.active{color:#38bdf8;border-bottom-color:#38bdf8}.menu-body{flex-direction:column;gap:18px;padding:20px 24px;display:flex;overflow-y:auto}.save-actions-bar{align-items:center;gap:10px;display:flex}.new-save-form{flex:1;gap:8px;display:flex}.save-input{color:#f8fafc;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:10px;flex:1;padding:9px 14px;font-size:.88rem}.save-input:focus{background:#ffffff1a;border-color:#38bdf8;outline:none}.btn-save-action{cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-items:center;gap:6px;padding:9px 14px;font-size:.85rem;font-weight:600;transition:all .15s;display:flex}.btn-save-action.primary{color:#fff;background:#0284c7}.btn-save-action.primary:hover{background:#0369a1}.btn-save-action.secondary{color:#cbd5e1;background:#ffffff14;border:1px solid #ffffff1a}.btn-save-action.secondary:hover{color:#fff;background:#ffffff26}.save-slots-list{flex-direction:column;gap:10px;max-height:400px;display:flex;overflow-y:auto}.empty-saves-prompt{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 0;display:flex}.save-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:12px;justify-content:space-between;align-items:center;padding:14px 16px;transition:all .15s;display:flex}.save-card:hover{background:#ffffff14;border-color:#ffffff29}.save-card.autosave-card{border-left:3px solid #f59e0b}.save-card-info{flex-direction:column;gap:4px;display:flex}.save-title-row{align-items:center;gap:8px;display:flex}.save-name{color:#f8fafc;font-size:.95rem;font-weight:700}.badge-autosave{color:#fbbf24;background:#f59e0b33;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:700}.badge-manual{color:#38bdf8;background:#38bdf833;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:700}.save-meta-stats{color:#94a3b8;gap:12px;font-size:.78rem;display:flex}.meta-item{align-items:center;gap:4px;display:flex}.save-resource-preview{color:#cbd5e1;gap:10px;margin-top:2px;font-size:.75rem;display:flex}.save-card-actions{align-items:center;gap:6px;display:flex}.btn-slot-action{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:4px;padding:6px 12px;font-size:.82rem;font-weight:600;transition:all .15s;display:flex}.btn-slot-action.load{color:#fff;background:#10b981}.btn-slot-action.load:hover{background:#059669}.btn-slot-action.export,.btn-slot-action.delete{color:#94a3b8;background:#ffffff14;padding:6px 8px}.btn-slot-action.export:hover{color:#38bdf8;background:#38bdf826}.btn-slot-action.delete:hover{color:#ef4444;background:#ef444426}.guide-panel{flex-direction:column;gap:18px;display:flex}.cloud-status-box{color:#fde68a;background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:12px;align-items:flex-start;gap:12px;padding:14px;font-size:.85rem;display:flex}.cloud-status-box h4{color:#f59e0b;margin-bottom:2px;font-weight:700}.guide-content ul{color:#cbd5e1;padding-left:20px;font-size:.85rem;line-height:1.6}.danger-zone{border-top:1px solid #ffffff1a;flex-direction:column;gap:8px;margin-top:14px;padding-top:14px;display:flex}.danger-zone h4{color:#f87171;font-size:.9rem}.danger-zone p{color:#94a3b8;font-size:.82rem}.btn-danger-reset{color:#fca5a5;cursor:pointer;background:#ef444426;border:1px solid #ef44444d;border-radius:8px;align-items:center;gap:6px;width:fit-content;padding:8px 14px;font-size:.85rem;font-weight:600;display:flex}.btn-danger-reset:hover{background:#ef44444d}.task-list-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:95;background:#04070f8c;justify-content:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.task-list-panel{background:linear-gradient(#0f172af0 0%,#0a0f1ef5 100%);border-left:1px solid #38bdf833;flex-direction:column;width:440px;max-width:90vw;height:100vh;animation:.25s cubic-bezier(.16,1,.3,1) slideLeft;display:flex;overflow:hidden;box-shadow:-10px 0 35px #00000080}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}.task-list-header{background:#ffffff05;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:20px;display:flex}.task-icon-badge{background:#38bdf81f;border:1px solid #38bdf84d;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.task-list-header h3{color:#f8fafc;margin:0;font-size:1.15rem;font-weight:700}.task-list-header .subtitle{color:#94a3b8;font-size:.78rem}.task-stats-bar{background:#0003;border-bottom:1px solid #ffffff0f;gap:10px;padding:14px 20px;display:flex}.stat-pill{color:#cbd5e1;background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:.8rem;display:flex}.stat-pill.active{color:#86efac;background:#4ade8014;border-color:#4ade804d}.stat-pill.pending{color:#fcd34d;background:#f59e0b14;border-color:#f59e0b4d}.task-filter-row{border-bottom:1px solid #ffffff0f;align-items:center;gap:6px;padding:10px 20px;display:flex;overflow-x:auto}.filter-label{color:#64748b;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;margin-right:4px;font-size:.75rem;font-weight:700;display:flex}.filter-btn{color:#94a3b8;cursor:pointer;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:4px 10px;font-size:.75rem;font-weight:600;transition:all .15s}.filter-btn:hover{color:#f8fafc;background:#ffffff1a}.filter-btn.active{color:#38bdf8;background:#38bdf833;border-color:#38bdf880}.jobs-scroll-container{flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.job-card{cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:8px;padding:14px;transition:all .18s cubic-bezier(.16,1,.3,1);display:flex}.job-card:hover{background:#ffffff0f;border-color:#38bdf866;transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.job-card.in-progress{border-left:3px solid #38bdf8}.job-card.pending{border-left:3px solid #f59e0b}.job-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.job-identity{align-items:center;gap:10px;display:flex}.job-item-preview,.job-icon-box{background:#ffffff0f;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.job-icon-box{font-size:1.2rem}.job-title{color:#f1f5f9;margin:0;font-size:.88rem;font-weight:600}.job-coordinates{color:#64748b;font-size:.72rem}.job-badges{align-items:center;gap:5px;display:flex}.priority-tag{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700}.priority-tag.critical{color:#fca5a5;background:#ef444433;border:1px solid #ef444466}.priority-tag.high{color:#fcd34d;background:#f59e0b33;border:1px solid #f59e0b66}.priority-tag.normal{color:#cbd5e1;background:#64748b33;border:1px solid #64748b66}.priority-tag.low{color:#94a3b8;background:#47556933;border:1px solid #47556966}.status-tag{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700}.status-tag.active{color:#38bdf8;background:#38bdf833;border:1px solid #38bdf866}.status-tag.queued{color:#94a3b8;background:#94a3b826;border:1px solid #94a3b840}.job-desc{color:#cbd5e1;margin:0;font-size:.78rem;line-height:1.4}.job-card-bottom{border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;margin-top:4px;padding-top:8px;display:flex}.assigned-worker{color:#38bdf8;align-items:center;gap:5px;font-size:.74rem;display:flex}.unassigned-notice{color:#f59e0b;align-items:center;gap:5px;font-size:.74rem;display:flex}.inspect-hint{color:#64748b;align-items:center;gap:4px;font-size:.72rem;transition:color .15s;display:flex}.job-card:hover .inspect-hint{color:#38bdf8}.empty-jobs-notice{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.empty-jobs-notice h4{color:#f8fafc;margin:0;font-size:1.05rem}.empty-jobs-notice p{color:#94a3b8;max-width:260px;font-size:.82rem;line-height:1.4}.btn-side.jobs-btn.active{color:#38bdf8;background:#38bdf840;border-color:#38bdf899}
