*{margin:0;padding:0;box-sizing:border-box}body{background:#111;font-family:Segoe UI,sans-serif;color:#fff;overflow:hidden}#game-container{position:fixed;inset:0}#game-container canvas{display:block;width:100%!important;height:100%!important}#lobby{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000000d9;z-index:100}.lobby-box{background:#1e2a1e;border:2px solid #4caf50;border-radius:16px;padding:32px 40px;min-width:360px;text-align:center}.lobby-box h1{font-size:2rem;margin-bottom:4px}.lobby-box h2{font-size:1rem;margin-bottom:8px;color:#aaa}.lobby-box p{color:#aaa;margin-bottom:16px}.section{margin:16px 0;display:flex;gap:8px;flex-direction:column}input[type=text]{padding:8px 12px;border-radius:8px;border:1px solid #4caf50;background:#111;color:#fff;font-size:1rem;text-align:center}button{padding:10px 20px;border-radius:8px;border:none;background:#4caf50;color:#fff;font-size:1rem;cursor:pointer;transition:background .2s}button:hover{background:#388e3c}#lobby-status{margin-top:12px;color:#ff9800;font-size:.9rem}.lobby-hint{color:#aaa;margin-bottom:8px;font-size:.9rem}.welcome-msg{font-size:1.15rem;color:#81c784;margin:8px 0 16px}.lobby-row{flex-direction:row!important;justify-content:center}.lobby-row button{flex:1}.btn-icon{flex:0!important;padding:10px 14px!important}.btn-secondary{background:transparent;border:1px solid #555;color:#aaa;margin-top:8px;font-size:.85rem}.btn-secondary:hover{background:#222;border-color:#888}#map-list{display:flex;flex-direction:column;gap:8px;margin-bottom:8px;max-height:320px;overflow-y:auto}.map-row{display:flex;gap:6px;align-items:stretch}.map-row .map-item{flex:1;min-width:0}.map-item{text-align:left;padding:10px 14px;background:#2e3d2e;border:1px solid #3e5d3e;border-radius:8px}.map-item:hover{background:#3e5d3e;border-color:#4caf50}.map-new{border-style:dashed;color:#81c784}.map-action-btn{padding:0 12px;min-width:38px;background:#2e3d2e;border:1px solid #3e5d3e;border-radius:8px;font-size:1rem;cursor:pointer;color:#aaa;transition:background .12s,border-color .12s,color .12s}.map-action-btn:hover{background:#3e5d3e;border-color:#4caf50;color:#fff}.map-delete-btn:hover{background:#5d2e2e;border-color:#e57373;color:#ef9a9a}.map-confirm-btn:hover{background:#2e5d2e;border-color:#81c784;color:#81c784}.map-rename-input{flex:1;padding:10px 14px;background:#1a2a1a;border:1px solid #4caf50;border-radius:8px;color:#fff;font-size:.9rem;font-family:inherit;outline:none;min-width:0}.map-rename-input:focus{border-color:#81c784;background:#1e331e}#reconnect-overlay{position:fixed;inset:0;background:#000000b8;display:flex;align-items:center;justify-content:center;z-index:999}.reconnect-box{background:#1e2216;border:2px solid #ff9800;border-radius:16px;padding:36px 52px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.reconnect-spinner{width:40px;height:40px;border:4px solid rgba(255,152,0,.25);border-top-color:#ff9800;border-radius:50%;animation:spin .8s linear infinite}.reconnect-sub{opacity:.65;font-size:.88rem}@keyframes spin{to{transform:rotate(360deg)}}#daynight-bar{display:flex;align-items:center;gap:6px;pointer-events:none;font-size:.76rem;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.95);white-space:nowrap;flex-shrink:0}#dn-icon{font-size:.88rem;line-height:1}#dn-day{font-size:.74rem;letter-spacing:.5px;opacity:.92}#dn-track{position:relative;width:110px;height:8px;border-radius:4px;border:1px solid rgba(255,255,255,.28);background:linear-gradient(to right,#87ceeb 0% 25%,#ff7040 35%,#0d1b3e,#ff9050 65%,#87ceeb 75% 100%);overflow:visible}#dn-dot{position:absolute;top:50%;width:11px;height:11px;background:#fff;border-radius:50%;border:1.5px solid rgba(0,0,0,.45);transform:translate(-50%,-50%);box-shadow:0 0 5px #000000b3;transition:left .08s linear}#hud{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:#0009;z-index:50}.hud-left{display:flex;align-items:center;gap:10px;font-size:.88rem}#hud-center{display:flex;align-items:center}.hud-right{display:flex;align-items:center;gap:8px}.hud-vitals{display:flex;flex-direction:column;gap:2px}.hud-hearts-row{display:flex;align-items:center;gap:6px}#hud-hearts{display:flex;gap:2px;align-items:center}.heart{font-size:1rem;line-height:1;transition:color .2s}.heart--full{color:#e84040}.heart--empty{color:#333}.hud-hp-text{font-size:.72rem;color:#c06060;font-weight:700;letter-spacing:.5px;white-space:nowrap}#hud-hunger-row{display:flex;align-items:center;gap:3px;font-size:.74rem;color:#e8d08a;white-space:nowrap;letter-spacing:.5px}#hud-hunger-segs{color:#f0b030;letter-spacing:1px}.hud-xp-block{display:flex;flex-direction:column;gap:2px;min-width:150px}.hud-xp-label{display:flex;align-items:center;gap:5px;font-size:.76rem;white-space:nowrap}#hud-xp-bar-track{height:5px;background:#ffffff1f;border-radius:3px;overflow:hidden}#hud-xp-bar{height:100%;background:linear-gradient(to right,#7ec8e3,#3a9fd5);border-radius:3px;transition:width .3s ease;width:0%}.hud-save-btn{padding:3px 10px;font-size:.78rem;background:#ffffff1f;border-radius:6px}.hud-save-btn:hover{background:#ffffff38}#hud-room{padding:3px 10px;background:#4caf5033;border:1px solid #4caf50;border-radius:6px;font-size:.82rem;cursor:pointer;user-select:none;white-space:nowrap}#hud-room:hover{background:#4caf5059}#hud-room-code{letter-spacing:3px;color:#81c784}#side-dock{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:40px;background:#0009;backdrop-filter:blur(4px)}.dock-panel{max-width:920px;width:100%;max-height:100%;overflow-y:auto;background:#14161ceb;border:2px solid rgba(255,255,255,.25);border-radius:16px;padding:24px 28px;box-shadow:0 8px 40px #00000080}.dock-title{font-size:1.4rem;font-weight:700;letter-spacing:3px;color:#fff;text-align:center;margin-bottom:18px;opacity:.9}.dock-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px}.dock-row{display:flex;align-items:center;gap:12px;padding:7px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#ddd}.dock-row--action{cursor:pointer;transition:background .12s,border-color .12s}.dock-row--action:hover{background:#ffffff24;border-color:#ffffff73;color:#fff}.dock-keys{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:0;min-width:96px}.dock-fn{font-size:.82rem;line-height:1.35}.dock-row-icon{width:18px;height:18px;flex-shrink:0;color:#cfe0ff}.dock-row-icon svg{width:100%;height:100%}.dock-key{font-size:.7rem;background:#ffffff1f;border:1px solid rgba(255,255,255,.28);border-radius:4px;padding:2px 7px;cursor:pointer;font-family:monospace;white-space:nowrap;transition:background .1s}.dock-key--static{cursor:default}.dock-key:not(.dock-key--static):hover{background:#ffffff42}.dock-key--listening{background:#ffc80040;border-color:#ffd060;color:#ffd060}#hotbar{position:fixed;bottom:14px;left:50%;transform:translate(-50%);z-index:50;display:flex;gap:5px;background:#00000073;border-radius:10px;padding:5px;border:1px solid rgba(255,255,255,.08)}.hotbar-slot{width:54px;height:54px;background:#ffffff0d;border:2px solid rgba(255,255,255,.22);border-radius:7px;position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .1s,background .1s}.hotbar-slot--active{border-color:#fffffff2;background:#ffffff2e;box-shadow:0 0 10px #ffffff4d}.hotbar-icon{font-size:1.7rem;line-height:1}.hotbar-count{position:absolute;bottom:2px;left:4px;font-size:.62rem;font-weight:700;color:#ffffffe6;text-shadow:1px 1px 0 rgba(0,0,0,.9)}.hotbar-name{position:absolute;bottom:-18px;left:0;right:0;font-size:.55rem;font-weight:700;color:#ffffffbf;text-align:center;text-shadow:1px 1px 0 rgba(0,0,0,.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;padding:0 2px}.float-panel{position:fixed;z-index:80;pointer-events:auto}#inventory-ui{position:fixed;inset:0;background:#00000061;z-index:80;display:flex;align-items:center;justify-content:flex-start;padding-left:8px}#crafting-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:80;display:flex;align-items:stretch;width:620px;height:520px;border-radius:12px;border:2px solid rgba(80,140,220,.5);overflow:hidden;box-shadow:0 8px 40px #000000bf;background:#0f1932}.craft-list-col{width:300px;flex-shrink:0;align-self:stretch;min-height:0;box-sizing:border-box;overflow-y:auto;background:#0f1932;border-right:1px solid rgba(80,140,220,.25);display:flex;flex-direction:column;gap:4px;padding:12px 10px}.craft-list-col::-webkit-scrollbar{width:4px}.craft-list-col::-webkit-scrollbar-thumb{background:#508cdc59;border-radius:2px}.craft-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:5px;background:#64a0ff0a;border:1px solid transparent;color:#8aaccc;font-size:.88rem;text-align:left;cursor:pointer;transition:background .1s}.craft-row:hover{background:#508cdc26;color:#b8d8ff}.craft-row--selected{background:#508cdc40;border-color:#64a0ff80;color:#d8eeff}.craft-row--ok{color:#ace}.craft-row--locked{opacity:.4}.craft-row-icon{font-size:1.3rem;flex-shrink:0}.craft-row-name{flex:1;font-weight:700}.craft-row-lock{font-size:.7rem;flex-shrink:0}.craft-detail-col{flex:1;height:100%;min-height:0;box-sizing:border-box;overflow-y:auto;background:#141e37;padding:28px 20px 20px;display:flex;flex-direction:column;gap:12px;align-items:center}.craft-detail-empty{color:#2a4a7a;font-size:.85rem;margin:auto}.craft-detail-name{font-size:1.05rem;font-weight:700;letter-spacing:2px;color:#b8d8ff;text-align:center}.craft-detail-icon{font-size:4rem;line-height:1}.craft-detail-owned{font-size:.8rem;color:#3a6a9a;letter-spacing:1px}.craft-reqs{width:100%;display:flex;flex-direction:column;gap:4px;margin-top:2px}.craft-req-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;padding:5px 8px;border-radius:4px;background:#0000004d}.craft-req--ok{color:#81c784}.craft-req--miss{color:#ef9a9a}.btn-craft-main{margin-top:auto;width:100%;padding:14px 0;border-radius:8px;background:#2a6acc;color:#fff;font-size:1rem;font-weight:700;letter-spacing:3px;border:none;cursor:pointer;transition:background .15s}.btn-craft-main:hover{background:#4080e0}.btn-craft-main:disabled{background:#0a1a3a;color:#2a4a6a;cursor:not-allowed}.craft-locked-msg{color:#2a4a7a;font-size:.8rem;margin-top:auto}#building-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:80}.panel{background:#1a110a;border:4px solid #c8901a;border-radius:8px;box-shadow:inset 0 0 0 2px #7a4e0a,0 0 0 2px #6b3d06,0 8px 32px #000000b3;min-width:320px;min-height:200px;padding:0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#2a1a0a;border-bottom:2px solid #7a4e0a;font-weight:700;letter-spacing:.5px}.panel-header button{background:none;color:#c8901a;padding:0 4px;font-size:1.1rem}.panel-header button:hover{color:#ffd060}.item-grid{display:grid;grid-template-columns:repeat(9,100px);gap:14px 6px;padding:0;user-select:none}.item-slot{width:100px;height:100px;user-select:none;background:#2a1c0e;border:2px solid #7a5818;border-radius:4px;position:relative;display:flex;align-items:center;justify-content:center;cursor:default;transition:border-color .1s,background .1s;box-shadow:inset 0 1px #ffc85014,inset 0 -1px #0000004d}.item-slot.has-item{background:#3a2610;border-color:#c8901a;box-shadow:inset 0 1px #ffc85026,inset 0 -1px #0006}.item-slot.has-item:hover{background:#4a3218;border-color:#ffd060;box-shadow:inset 0 1px #ffdc6440,0 0 6px #ffb4284d}.item-icon{font-size:2.4rem;line-height:1;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.6))}.item-amount{position:absolute;bottom:3px;left:5px;font-size:.72rem;font-weight:700;color:#ffe88a;text-shadow:1px 1px 0 rgba(0,0,0,.9),-1px -1px 0 rgba(0,0,0,.6)}.item-label{position:absolute;bottom:3px;right:5px;font-size:.65rem;font-weight:700;color:#fff;text-shadow:1px 1px 0 rgba(0,0,0,.9);max-width:70px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-name{display:none}.crafting-panel{min-width:400px}#crafting-list{padding:12px;overflow-y:auto;background:#1a110a}.recipe-card{display:flex;align-items:center;justify-content:space-between;background:#2a1c0e;border-radius:6px;padding:10px 14px;margin-bottom:6px;border:1px solid #5a3a10;opacity:.7}.recipe-card.craftable{border-color:#c8901a;opacity:1}.recipe-card.locked{opacity:.4}.recipe-info{flex:1}.recipe-result{font-size:.9rem;font-weight:700;margin-bottom:4px}.recipe-reqs{display:flex;gap:8px;flex-wrap:wrap;font-size:.8rem}.recipe-reqs small{color:#888;margin-left:2px}.req-ok{color:#81c784}.req-missing{color:#ef9a9a}.recipe-lock{font-size:.75rem;color:#888;white-space:nowrap}.btn-craft{padding:5px 14px;font-size:.82rem;background:#4caf50;white-space:nowrap}.btn-craft:disabled{background:#444;cursor:not-allowed}.island-label{position:fixed;z-index:55;pointer-events:none;padding:4px 11px;border-radius:12px;font-size:.82rem;font-family:monospace;font-weight:700;white-space:nowrap;transform:translate(-50%,-50%);text-shadow:0 1px 3px rgba(0,0,0,.9);box-shadow:0 2px 8px #0000008c}.island-label--afford{background:#0f320fe0;border:1px solid #4caf50;color:#8f8}.island-label--locked{background:#281405e0;border:1px solid #c87020;color:#fa5}.island-label kbd{display:inline-block;background:#ffffff2e;border:1px solid rgba(255,255,255,.35);border-radius:3px;padding:0 4px;font-size:.72rem;font-family:monospace}.drag-ghost{position:fixed;width:64px;height:64px;background:#ffc83c40;border:2px solid #ffd060;border-radius:8px;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:200;font-size:2.2rem;box-shadow:0 4px 18px #0009;backdrop-filter:blur(2px)}.item-slot--dragging{opacity:.35;border-style:dashed!important;border-color:#ffffff4d!important}.item-slot--dragover{border-color:#ffd060!important;background:#ffc83c2e!important;box-shadow:0 0 10px #ffc83c73!important}#unlock-hint{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:60;padding:7px 18px;border-radius:20px;font-size:.88rem;font-family:monospace;white-space:nowrap;pointer-events:none;text-shadow:0 1px 4px rgba(0,0,0,.95);animation:hintPulse 2s ease-in-out infinite}#unlock-hint.unlock-hint--afford{background:#143c14d9;border:1px solid #4caf50;color:#8f8}#unlock-hint.unlock-hint--locked{background:#321e0ad9;border:1px solid #c87020;color:#fa5}#unlock-hint kbd{display:inline-block;background:#ffffff2e;border:1px solid rgba(255,255,255,.35);border-radius:3px;padding:0 5px;font-size:.78rem;font-family:monospace}@keyframes hintPulse{0%,to{opacity:1}50%{opacity:.75}}.eat-anim{position:fixed;font-size:34px;pointer-events:none;z-index:999;transform-origin:center bottom;animation:eatSlam .5s ease-in forwards}@keyframes eatSlam{0%{transform:translateY(-48px) rotate(-18deg) scale(1.3);opacity:1}55%{transform:translateY(8px) rotate(8deg) scale(1.5);opacity:1}72%{transform:translateY(-4px) rotate(-5deg) scale(.92);opacity:1}86%{transform:translateY(3px) rotate(2deg) scale(1.08);opacity:.8}to{transform:translateY(0) rotate(0) scale(.55);opacity:0}}.craft-qty-row{display:flex;align-items:center;gap:6px;margin-top:4px}.craft-qty-num{min-width:32px;text-align:center;font-size:1rem;font-weight:700;color:#d8eeff}.btn-qty-arrow{padding:4px 10px;font-size:.75rem;background:#508cdc40;border:1px solid rgba(80,140,220,.45);border-radius:4px;color:#acf;cursor:pointer;line-height:1}.btn-qty-arrow:hover{background:#508cdc73;color:#fff}.btn-craft-extra{padding:4px 8px;font-size:.68rem;font-weight:700;letter-spacing:1px;background:#3c64b433;border:1px solid rgba(80,140,220,.3);border-radius:4px;color:#7aabdd;cursor:pointer}.btn-craft-extra:hover{background:#508cdc59;color:#cce0ff}#furnace-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:80;display:flex;align-items:center;justify-content:center}.furnace-panel{background:#1a110a;border:4px solid #c8901a;border-radius:10px;box-shadow:inset 0 0 0 2px #7a4e0a,0 0 0 2px #6b3d06,0 8px 32px #000000bf;padding:0;min-width:280px;overflow:hidden;display:flex;flex-direction:column}.furnace-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#2a1a0a;border-bottom:2px solid #7a4e0a;font-weight:700;font-size:1.05rem;letter-spacing:1px;color:#ffd060}.furnace-close{background:none;border:none;color:#c8901a;padding:0 4px;font-size:1.1rem;cursor:pointer;line-height:1}.furnace-close:hover{color:#ffd060;background:none}.furnace-tabs{display:flex;border-bottom:2px solid #7a4e0a}.furnace-tab{flex:1;padding:8px 6px;background:#120c05;border:none;color:#7a5020;font-size:.78rem;font-weight:700;cursor:pointer;letter-spacing:.5px;transition:background .12s,color .12s}.furnace-tab:hover{background:#1e1408;color:#c8901a}.furnace-tab.active{background:#2a1a0a;color:#ffd060;border-bottom:2px solid #ffd060}.furnace-recipe-row{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 20px 10px;background:#00000040}.furnace-item{display:flex;flex-direction:column;align-items:center;gap:4px}.furnace-item-icon{font-size:2.2rem;line-height:1}.furnace-item-name{font-size:.72rem;color:#c8a060;letter-spacing:1px}.furnace-arrow{font-size:1.5rem;color:#c8901a}.furnace-ratio{font-size:.7rem;color:#7a5020;align-self:flex-end;margin-left:6px}.furnace-stock{padding:8px 20px;font-size:.85rem;color:#b09070;border-top:1px solid rgba(200,144,26,.18)}.furnace-stock strong{color:#ffd060}.furnace-panel .craft-qty-row{padding:6px 20px 0;justify-content:center}.furnace-panel .craft-qty-num{color:#ffd060}.btn-smelt{margin:12px 20px 16px;padding:12px 0;border-radius:8px;background:#b84010;color:#ffe0a0;font-size:.95rem;font-weight:700;letter-spacing:2px;border:none;cursor:pointer;transition:background .15s}.btn-smelt:hover{background:#e05020}.btn-smelt:disabled{background:#3a1a0a;color:#5a3a1a;cursor:not-allowed}#market-ui{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center}.market-panel{background:#0a1a10;border:4px solid #2eb872;border-radius:10px;box-shadow:inset 0 0 0 2px #0e5a30,0 0 0 2px #1a4d2e,0 8px 32px #000000bf;padding:0;min-width:320px;max-height:70vh;overflow:hidden;display:flex;flex-direction:column}.market-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#1a2a1a;border-bottom:2px solid #0e5a30;font-weight:700;font-size:1.05rem;letter-spacing:1px;color:#5fdd9f}.market-close{background:none;border:none;color:#2eb872;padding:0 4px;font-size:1.1rem;cursor:pointer;line-height:1}.market-close:hover{color:#5fdd9f;background:none}.market-content{display:flex;gap:16px;padding:16px;flex:1;overflow-y:auto}.market-items-list{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.market-empty{color:#6a7a6a;text-align:center;padding:24px 8px;font-size:.9rem}.market-item-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#2eb87214;border:1px solid rgba(46,184,114,.25);border-radius:6px;cursor:pointer;transition:background .15s,border-color .15s}.market-item-row:hover{background:#2eb87229;border-color:#2eb87266}.market-row-left{display:flex;align-items:center;gap:8px;flex:1}.market-row-icon{font-size:1.5rem;line-height:1}.market-row-info{font-size:.8rem}.market-row-name{color:#5fdd9f;font-weight:700}.market-row-price{color:#2eb872;font-size:.7rem}.market-row-stock{color:#c8a060;font-size:.85rem;min-width:40px;text-align:right}.market-detail{flex:0 0 auto;padding:12px;border-left:2px solid rgba(46,184,114,.25);display:flex;flex-direction:column;gap:10px;min-width:180px}.market-detail-item{display:flex;flex-direction:column;align-items:center;gap:6px}.market-item-icon{font-size:2rem;line-height:1}.market-item-name{color:#5fdd9f;font-weight:700;font-size:.9rem}.market-price-info{font-size:.75rem;color:#a0a0a0;border:1px solid rgba(46,184,114,.15);padding:8px;border-radius:4px}.market-price-info strong{color:#5fdd9f}.market-panel .craft-qty-row{padding:4px 0;gap:2px}.market-panel .craft-qty-num{color:#5fdd9f}.market-sell-total{font-size:.85rem;color:#c8a060;border:1px solid rgba(200,160,96,.2);padding:8px;border-radius:4px;text-align:center}.market-sell-total strong{color:#ffd060}.market-left-col{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.market-daily-section{background:#c88c141a;border:1.5px solid rgba(200,160,60,.55);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.market-daily-label{font-size:.72rem;font-weight:700;letter-spacing:1px;color:#d4a020;text-transform:uppercase}.market-daily-item{display:flex;align-items:center;gap:10px}.market-daily-icon{font-size:1.6rem;line-height:1}.market-daily-info{flex:1}.market-daily-name{color:#f0c040;font-weight:700;font-size:.85rem}.market-daily-price{color:#b08820;font-size:.72rem;margin-top:2px}.btn-buy-blueprint{padding:6px 12px;border-radius:6px;background:#c8a020;color:#1a1000;font-size:.8rem;font-weight:700;border:none;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-buy-blueprint:hover:not(:disabled){background:#f0c040}.btn-buy-blueprint.disabled,.btn-buy-blueprint:disabled{background:#4a3a10;color:#7a6a30;cursor:not-allowed}.btn-sell{padding:10px 0;border-radius:6px;background:#2eb872;color:#0a1a10;font-size:.9rem;font-weight:700;letter-spacing:1px;border:none;cursor:pointer;transition:background .15s;margin-top:4px}.btn-sell:hover{background:#5fdd9f}.btn-sell:disabled{background:#1a4a2a;color:#3a6a4a;cursor:not-allowed}#research-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:5000}.research-panel{background:#1a1520;border:4px solid #9050ff;border-radius:10px;box-shadow:inset 0 0 0 2px #6030a0,0 0 0 2px #4a2080,0 8px 32px #000000bf;padding:0;width:680px;max-height:75vh;overflow:hidden;display:flex;flex-direction:column}.research-header{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#2a1a3a;border-bottom:2px solid #6030a0;font-weight:700;font-size:1.05rem;letter-spacing:1px;color:#d090ff}.research-header .research-close{margin-left:auto}.research-level-badge{font-size:.78rem;background:#6030a0;color:#f0d0ff;border-radius:4px;padding:2px 8px;letter-spacing:1px}.research-close{background:none;border:none;color:#9050ff;padding:0 4px;font-size:1.1rem;cursor:pointer;line-height:1}.research-close:hover{color:#d090ff;background:none}.research-body{display:flex;flex:1;overflow:hidden;background:#0a0614}.research-list-col{width:240px;flex-shrink:0;align-self:stretch;min-height:0;box-sizing:border-box;overflow-y:auto;border-right:1px solid rgba(144,80,255,.25);background:#0a0614;display:flex;flex-direction:column;gap:3px;padding:10px 8px}.research-list-col::-webkit-scrollbar{width:4px}.research-list-col::-webkit-scrollbar-thumb{background:#9050ff59;border-radius:2px}.research-row{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:5px;background:#9050ff0a;border:1px solid transparent;color:#9070b0;font-size:.82rem;text-align:left;cursor:pointer;transition:background .1s;width:100%}.research-row:hover{background:#9050ff26;color:#d090ff}.research-row--selected{background:#9050ff38;border-color:#9050ff80;color:#f0c8ff}.research-row--done{opacity:.55}.research-row-icon{font-size:1.1rem;flex-shrink:0}.research-row-text{display:flex;flex-direction:column;gap:1px;flex:1;overflow:hidden}.research-row-title{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.research-row-sub{font-size:.72rem;color:#6040a0}.research-row-done-mark{font-size:.7rem;color:#60aa60;flex-shrink:0}.research-detail-col{flex:1;height:100%;min-height:0;box-sizing:border-box;overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;gap:12px;background:#140e23}.research-detail-empty{color:#4a3a6a;font-size:.85rem;margin:auto;text-align:center}.research-detail-title{font-size:1rem;font-weight:700;color:#d090ff;letter-spacing:1px;border-bottom:1px solid rgba(144,80,255,.25);padding-bottom:8px}.research-detail-meta{display:flex;flex-direction:column;gap:4px}.research-meta-row{font-size:.8rem;color:#a080c0}.research-detail-section-label{font-size:.75rem;color:#7050a0;text-transform:uppercase;letter-spacing:1px}.research-mats{display:flex;flex-direction:column;gap:4px}.research-mat-row{display:flex;align-items:center;gap:8px;padding:4px 8px;background:#9050ff14;border:1px solid rgba(144,80,255,.15);border-radius:3px;font-size:.78rem}.research-mat-icon{font-size:1.1rem}.research-mat-name{flex:1;color:#c090e0}.research-mat-amt{color:#9050ff;font-weight:700}.research-mat-free{font-size:.8rem;color:#60aa60}.research-detail-done{color:#60aa60;font-size:.9rem;text-align:center;padding:8px;background:#60aa6014;border:1px solid rgba(96,170,96,.2);border-radius:4px}.research-progress-wrap{display:flex;flex-direction:column;gap:6px;padding:10px;background:#9050ff14;border:1px solid rgba(144,80,255,.2);border-radius:4px;text-align:center;color:#d090ff;font-size:.85rem}.research-bar-track{width:100%;height:8px;background:#0006;border-radius:4px;overflow:hidden}.research-bar-fill{height:100%;background:linear-gradient(90deg,#6030a0,#9050ff);transition:width .1s}.research-time-left{font-size:.78rem;color:#9070b0}.btn-research-upgrade{padding:10px 0;border-radius:6px;background:#9050ff;color:#1a1520;font-size:.9rem;font-weight:700;letter-spacing:1px;border:none;cursor:pointer;transition:background .15s;margin-top:4px}.btn-research-upgrade:hover{background:#d090ff}.btn-research-upgrade:disabled{background:#4a3a6a;color:#6a5a8a;cursor:not-allowed}.btn-upgrade{padding:10px 0;border-radius:6px;background:#9050ff;color:#1a1520;font-size:.9rem;font-weight:700;letter-spacing:1px;border:none;cursor:pointer;transition:background .15s;margin-top:4px}.btn-upgrade:hover{background:#d090ff}.btn-upgrade:disabled{background:#4a3a6a;color:#6a5a8a;cursor:not-allowed}#bag-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:460px;max-height:80vh;background:#100c1cf7;border:2px solid rgba(136,80,200,.6);border-radius:10px;flex-direction:column;gap:0;z-index:200;overflow:hidden;box-shadow:0 8px 32px #000000b3}.bag-header{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#50288c59;border-bottom:1px solid rgba(136,80,200,.4)}#bag-title{font-size:1.05rem;font-weight:700;color:#d0a0ff;flex:1}#bag-capacity{font-size:.8rem;color:#a8d8a0}.bag-close-btn{background:none;border:none;color:#d0a0ff;font-size:1.2rem;cursor:pointer;padding:2px 6px;border-radius:4px}.bag-close-btn:hover{background:#c864644d;color:#f88}.bag-body{display:flex;flex-direction:column;gap:0;overflow-y:auto;max-height:calc(80vh - 52px)}.bag-section{padding:10px 14px;border-bottom:1px solid rgba(136,80,200,.2)}.bag-section-label{font-size:.75rem;color:#9060c0;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.bag-inv-list{display:flex;flex-wrap:wrap;gap:6px}.bag-inv-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#3c285a66;border:1px solid rgba(136,80,200,.25);border-radius:6px;font-size:.82rem;min-width:140px}.bag-inv-icon{font-size:1.1rem}.bag-inv-name{color:#c8c0dc;flex:1}.bag-inv-amount{color:#9060c0;font-size:.75rem}.bag-put-btn{padding:2px 8px;border-radius:4px;font-size:.75rem;background:#50a05066;border:1px solid #40a040;color:#90e090;cursor:pointer}.bag-put-btn:hover{background:#50c85080}.bag-put-btn:disabled{opacity:.4;cursor:not-allowed}.bag-contents-list{display:flex;flex-direction:column;gap:5px}.bag-content-row{display:flex;align-items:center;gap:8px;padding:5px 8px;background:#281e4680;border:1px solid rgba(100,60,160,.3);border-radius:6px;font-size:.85rem}.bag-ci{font-size:1.1rem}.bag-cn{flex:1;color:#c8c0dc}.bag-ca{color:#8870c0;min-width:40px;text-align:right;font-weight:700}.bag-take-one,.bag-take-all{padding:2px 8px;border-radius:4px;font-size:.75rem;cursor:pointer;border:1px solid;transition:background .1s}.bag-take-one{background:#3c64a066;border-color:#4080c0;color:#90c8ff}.bag-take-one:hover{background:#3c64c899}.bag-take-all{background:#8c502866;border-color:#a06030;color:#ffb870}.bag-take-all:hover{background:#b4642899}.item-icon-img{display:inline-block;vertical-align:middle;object-fit:contain;image-rendering:pixelated}.bag-empty-hint{color:#605080;font-size:.8rem;padding:4px}.hotbar-slot--bag-hover{outline:2px solid #88ddff!important;background:#64b4ff40!important}.hotbar-slot--bag-flash{outline:3px solid #a8ff88!important;background:#64ff644d!important}.furnace-panel{flex-direction:row!important;padding:0!important;min-width:unset!important;max-height:480px}.furnace-list-col{width:180px;min-width:180px;align-self:stretch;min-height:0;box-sizing:border-box;border-right:2px solid #7a4e0a;border-bottom:none;overflow-y:auto}.furnace-list-title{padding:10px 12px 6px;font-size:.9rem;font-weight:700;color:#ffd060;letter-spacing:1px;border-bottom:1px solid rgba(200,144,26,.25)}.furnace-recipe-btn{width:100%;text-align:left}.furnace-detail-col{flex:1;height:100%;min-height:0;box-sizing:border-box;display:flex;flex-direction:column;padding:0;min-width:240px}.furnace-detail-close-row{display:flex;justify-content:flex-end;padding:6px 10px 0}.furnace-recipe-display{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 20px 8px;background:#0003}.furnace-ratio-row{text-align:center;font-size:.78rem;color:#b09070;padding:2px 20px 6px}.furnace-ratio-row strong{color:#ffd060}.furnace-tabs{display:none!important}.building-list-scroll{max-height:420px;overflow-y:auto;padding:10px}.building-list-scroll::-webkit-scrollbar{width:4px}.building-list-scroll::-webkit-scrollbar-thumb{background:#c8901a66;border-radius:2px}.craft-weapon-stats{margin:6px 0 2px;padding:8px 10px;background:#00000040;border-radius:6px;border:1px solid rgba(200,144,26,.2)}.craft-stats-title{font-size:.75rem;font-weight:700;color:#ffd060;margin-bottom:5px;letter-spacing:.5px}.craft-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;font-size:.78rem;color:#c8a060}.craft-stats-grid strong{color:#fff}#base-core-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:90;display:none;align-items:center;justify-content:center}.base-core-panel{background:#0f1a0f;border:4px solid #4caf50;border-radius:10px;box-shadow:inset 0 0 0 2px #2a5a2a,0 0 0 2px #1a3a1a,0 8px 32px #000000bf,0 0 24px #4caf5040;min-width:300px;max-width:360px;display:flex;flex-direction:column;overflow:hidden}.base-core-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#1a2e1a;border-bottom:2px solid #2a5a2a;font-weight:700;font-size:1rem;color:#8f8;letter-spacing:1px}.base-core-close{background:none;border:none;color:#4caf50;font-size:1.1rem;cursor:pointer;padding:0 4px}.base-core-close:hover{color:#8f8}.base-core-content{padding:14px 16px;display:flex;flex-direction:column;gap:6px}.bcu-level{font-size:1.05rem;color:#afa}.bcu-level strong{color:#8f8;font-size:1.2rem}.bcu-buffs{display:flex;flex-direction:column;gap:3px;padding:8px 10px;background:#00000040;border-radius:6px;font-size:.85rem;color:#9c9}.bcu-buffs strong{color:#cfc}.bcu-divider{border:none;border-top:1px solid rgba(76,175,80,.25);margin:4px 0}.bcu-next-title{font-size:.88rem;font-weight:700;color:#8f8;margin-bottom:2px}.bcu-next-preview{font-size:.8rem;color:#9c9;padding:4px 8px;background:#4caf501a;border-radius:4px}.bcu-next-preview strong{color:#cfc}.bcu-costs{display:flex;flex-direction:column;gap:2px;font-size:.82rem;padding:4px 0}.bcu-costs .req-ok{color:#81c784}.bcu-costs .req-missing{color:#ef9a9a}.bcu-free{color:#81c784;font-size:.85rem}.bcu-max{color:#ffd060;font-size:.9rem;text-align:center;padding:8px}.btn-upgrade-core{margin-top:6px;padding:10px 0;width:100%;background:linear-gradient(135deg,#2e7d32,#43a047);border:2px solid #4caf50;border-radius:6px;color:#cfc;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .12s,transform .08s}.btn-upgrade-core:hover{background:linear-gradient(135deg,#388e3c,#66bb6a)}.btn-upgrade-core:active{transform:scale(.97)}.btn-upgrade-core:disabled{background:#2a2a2a;border-color:#444;color:#666;cursor:not-allowed}#barracks-ui{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:90;display:none;align-items:center;justify-content:center}.barracks-panel{background:#0f1020;border:4px solid #5588ee;border-radius:10px;box-shadow:inset 0 0 0 2px #2a3a8a,0 0 0 2px #1a2a5a,0 8px 32px #000000bf,0 0 24px #58e3;min-width:320px;max-width:400px;display:flex;flex-direction:column;overflow:hidden}.barracks-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#1a2040;border-bottom:2px solid #2a3a8a;font-weight:700;font-size:1rem;color:#8af;letter-spacing:1px}.barracks-close{background:none;border:none;color:#58e;font-size:1.1rem;cursor:pointer;padding:0 4px}.barracks-close:hover{color:#8af}.barracks-content{padding:14px 16px;display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.barracks-level-row{font-size:1rem;color:#abf}.barracks-level-row strong{color:#8af;font-size:1.1rem}.barracks-section-title{font-size:.8rem;color:#57c;text-transform:uppercase;letter-spacing:1px;margin-top:4px}.barracks-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.barracks-stat{display:flex;flex-direction:column;align-items:center;background:#5588ee14;border:1px solid rgba(85,136,238,.2);border-radius:5px;padding:6px 4px}.barracks-stat-label{font-size:.68rem;color:#57c;text-align:center;white-space:nowrap}.barracks-stat strong{color:#acf;font-size:1.05rem}.barracks-divider{border:none;border-top:1px solid rgba(85,136,238,.2);margin:4px 0}.barracks-next-preview{font-size:.8rem;color:#89c;padding:7px 10px;background:#5588ee12;border:1px solid rgba(85,136,238,.15);border-radius:4px}.barracks-next-preview strong{color:#acf}.barracks-costs{display:flex;flex-direction:column;gap:3px;font-size:.8rem}.barracks-costs .req-ok{color:#81c784}.barracks-costs .req-missing{color:#ef9a9a}.barracks-max{color:#ffd060;font-size:.9rem;text-align:center;padding:8px}.btn-upgrade-barracks{margin-top:6px;padding:10px 0;border-radius:6px;background:linear-gradient(135deg,#24a,#48c);color:#e8f0ff;font-size:.9rem;font-weight:700;letter-spacing:1px;border:1px solid #5588ee;cursor:pointer;transition:background .12s,transform .08s;width:100%}.btn-upgrade-barracks:hover{background:linear-gradient(135deg,#35b,#5ad)}.btn-upgrade-barracks:active{transform:scale(.97)}.btn-upgrade-barracks:disabled{background:#2a2a2a;border-color:#444;color:#666;cursor:not-allowed}#demolish-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1a0f0f;border:2px solid #8b3030;border-radius:10px;padding:20px 24px;min-width:260px;display:flex;flex-direction:column;gap:10px;z-index:9999;box-shadow:0 4px 24px #0008;color:#eee}.demolish-title{font-size:1.1rem;font-weight:700;color:#f77;border-bottom:1px solid #4a2020;padding-bottom:8px}.demolish-bname{font-size:1rem;color:#fc8}.demolish-refund{font-size:.88rem;color:#ada;background:#0f1a0f;border-radius:6px;padding:6px 10px;display:flex;flex-direction:column;gap:3px}.demolish-btns{display:flex;gap:10px;margin-top:4px}.demolish-btns button{flex:1;padding:8px 0;border-radius:6px;border:none;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .12s}#demolish-ok{background:#8b2020;color:#fff}#demolish-ok:hover{background:#b33030}#demolish-cancel{background:#333;color:#ccc}#demolish-cancel:hover{background:#444}.ui-toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-180px);background:#0a0614eb;border:1.5px solid rgba(255,255,255,.15);border-radius:8px;padding:9px 20px;font-size:1.05rem;font-family:inherit;color:#fff;pointer-events:none;white-space:nowrap;z-index:99999;animation:ui-toast-fade 2.2s ease forwards}@keyframes ui-toast-fade{0%{opacity:0;transform:translate(-50%,-195px)}12%{opacity:1;transform:translate(-50%,-180px)}70%{opacity:1;transform:translate(-50%,-180px)}to{opacity:0;transform:translate(-50%,-168px)}}
