:root{--bg:#10131a;--panel:#1a2030;--panel2:#242c3d;--text:#eef2ff;--muted:#aab4cc;--accent:#7c5cff;--danger:#ff637d;--good:#5ad29a;--border:#34405a}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#1b2340,var(--bg) 55%);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 5%;background:#0b0e15dd;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.topbar strong{font-size:1.2rem}.subtitle{display:block;color:var(--muted);font-size:.8rem}.topbar nav{display:flex;gap:14px;align-items:center}.topbar a{color:#cfc6ff;text-decoration:none}.container{width:min(1180px,92%);margin:28px auto}.card{background:linear-gradient(160deg,var(--panel),#141925);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:0 18px 50px #0005}.hero{text-align:center}.auth-grid,.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}label{display:grid;gap:7px;color:var(--muted);margin:14px 0}input,textarea,select,button{font:inherit}input,textarea,select{width:100%;padding:12px;border-radius:10px;border:1px solid var(--border);background:#0f1420;color:var(--text)}button{border:0;border-radius:10px;padding:12px 18px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.alert{padding:13px 16px;border-radius:10px;margin-bottom:16px}.error{background:#4b1721;color:#ffd5dc}.success{background:#143c2d;color:#c8ffe8}.city-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-top:22px}.city-card{display:block;background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden;color:var(--text);text-decoration:none;transition:.2s}.city-card:hover{transform:translateY(-4px);border-color:var(--accent)}.city-card img{width:100%;height:180px;object-fit:cover}.city-card div{padding:16px}.city-card p{color:var(--muted)}.game-layout{display:grid;grid-template-columns:320px 1fr;gap:22px}.city-hero{width:100%;height:210px;object-fit:cover;border-radius:12px}.command-list{display:flex;flex-wrap:wrap;gap:8px}.command-chip{padding:8px 10px;background:var(--panel2)}.feed-panel{min-height:70vh;display:flex;flex-direction:column}.feed{flex:1;max-height:65vh;overflow:auto;padding-right:6px}.feed-message{border-left:4px solid var(--accent);background:#111724;margin:0 0 12px;padding:13px;border-radius:10px}.feed-message.item{border-color:#f4cf55}.feed-message.enemy{border-color:var(--danger)}.feed-message.system{border-color:#8892a8}.message-head{display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem}.typed{font-family:ui-monospace,monospace;color:#b8c3ff;margin:6px 0}.result{display:flex;gap:12px;align-items:center}.result img{width:84px;height:84px;object-fit:cover;border-radius:10px}.result p{margin:4px 0}.command-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:12px}.status{color:var(--muted);font-size:.85rem}.full-width{grid-column:1/-1}.admin-city{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.admin-city img{width:90px;height:70px;object-fit:cover;border-radius:9px}@media(max-width:800px){.auth-grid,.admin-grid,.game-layout{grid-template-columns:1fr}.topbar{align-items:flex-start;gap:12px;flex-direction:column}.feed-panel{min-height:60vh}.command-form{grid-template-columns:1fr}.city-info{order:2}}
.health-box{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:10px;background:#0f1420}.health-box strong{color:var(--good)}.damage-label{font-size:.75rem;color:#ff9bad;margin-right:5px}.command-list{align-items:center}
.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.city-image-button{display:block;width:100%;padding:0;background:transparent;border:0}.city-image-button:hover{transform:none}.image-hint{font-size:.8rem;color:var(--muted);text-align:center;margin-top:7px}.enemy-command{background:#5a2232}.city-enemies{display:grid;gap:10px}.map-enemy{display:flex;gap:10px;align-items:center;background:#101622;border:1px solid var(--border);padding:9px;border-radius:10px}.map-enemy img{width:62px;height:62px;object-fit:cover;border-radius:8px}.map-enemy small{display:block;color:var(--muted);margin-top:4px}.map-dialog{width:min(1000px,94vw);max-height:92vh;background:#111724;color:var(--text);border:1px solid var(--border);border-radius:16px;padding:18px}.map-dialog::backdrop{background:#000c}.map-dialog img{display:block;width:100%;max-height:75vh;object-fit:contain;border-radius:12px;background:#080b10}.dialog-close{float:right;background:#3b4357}.enemy-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.enemy-admin-card{display:flex;gap:12px;align-items:center;background:#111724;border:1px solid var(--border);padding:10px;border-radius:12px}.enemy-admin-card img{width:80px;height:80px;object-fit:cover;border-radius:9px}.enemy-admin-card p{margin:5px 0;color:var(--muted)}small{color:var(--muted)}@media(max-width:800px){.form-columns{grid-template-columns:1fr}}
.input-tabs{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:14px;color:var(--text)}.input-tabs span{font-size:.8rem;color:var(--muted)}.chat-title{border-top:1px solid var(--border);padding-top:14px}.chat-form button{background:#287a66}.feed-message.chat{border-color:#48c7a6;background:#10231f}.chat-message{font-size:1rem;line-height:1.45;margin-top:7px;white-space:pre-wrap;overflow-wrap:anywhere}.city-card img,.city-hero,.admin-city img,.enemy-admin-card img,.map-enemy img{background:#080b10}.broken-image{display:none}@media(max-width:600px){.input-tabs{align-items:flex-start;flex-direction:column}.input-tabs span{margin-top:-7px}}
.activity-message{font-size:1.02rem;font-weight:700;margin:.4rem 0 .65rem;padding:.65rem .8rem;border-left:4px solid currentColor;background:rgba(255,255,255,.06);border-radius:6px}.message-preview{margin-top:.75rem;padding:.7rem;border:1px solid rgba(255,255,255,.12);border-radius:8px}.message-preview p{margin:.25rem 0 .6rem}.message-builder textarea{min-height:180px}.enemy-message-card{align-items:flex-start}.enemy-message-card>div{width:100%}
/* Adventure builder and RPG expansion */
.adventure-builder{background:radial-gradient(circle at 15% 0,#3b245f 0,transparent 35%),radial-gradient(circle at 90% 10%,#143d55 0,transparent 32%),linear-gradient(#0c1019,#080b11);background-attachment:fixed}.adventure-builder .topbar{background:linear-gradient(90deg,#120f21ee,#19132bee);border-bottom-color:#9d78ff}.adventure-builder .card{background:linear-gradient(145deg,#1e1830,#101725 68%);border-color:#5d4b83;box-shadow:0 20px 55px #0009,0 0 0 1px #b89cff14 inset}.adventure-builder h2{font-family:Georgia,serif;color:#f6dd9b;text-shadow:0 2px 10px #f3ad3740}.builder-heading{display:flex;gap:14px;align-items:center;border-bottom:1px solid #705c98;padding-bottom:14px;margin-bottom:12px}.builder-heading h2,.builder-heading p{margin:0}.builder-heading p{color:#bcb4d2;margin-top:4px}.builder-rune{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,#f3d486,#8a5ec9);box-shadow:0 0 24px #ac78ff88;color:#21162e;font-size:1.7rem}.quest-card fieldset{border:1px solid #5d4b83;border-radius:12px;margin:16px 0;padding:14px}.quest-card legend{color:#f6dd9b;padding:0 8px}.form-columns.three{grid-template-columns:repeat(3,minmax(0,1fr))}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px}.check-card{display:flex;align-items:center;gap:9px;margin:0;padding:10px;background:#0d1421;border:1px solid #3c4962;border-radius:10px}.check-card input,.toggle input{width:auto}.toggle-row{display:flex;flex-wrap:wrap;gap:12px}.toggle{display:flex;align-items:center;gap:9px;padding:12px 14px;background:#142338;border:1px solid #46658b;border-radius:10px}.loot-grid,.shop-grid,.building-grid,.inventory-grid{display:grid;gap:10px}.loot-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.loot-card,.shop-item,.inventory-item{display:flex;gap:11px;align-items:center;background:#0e1521;border:1px solid var(--border);border-radius:12px;padding:10px}.loot-card img,.shop-item img,.inventory-item img{width:70px;height:70px;object-fit:cover;border-radius:9px}.shop-item small{display:block;margin:4px 0}.buy-button{padding:6px 10px;background:#b27c28}.building-command{background:#36577d}.shop-command{background:#876020}.stat-strip{display:grid;grid-template-columns:1fr 1fr;gap:8px}.money-box{margin:14px 0;padding:12px;border:1px solid #7a6128;border-radius:10px;background:#211a0d}.money-box strong{color:#f6d06d}.inventory-item img{width:42px;height:42px}.inventory-item span{font-size:.85rem}.building-card{border-color:#4a7199}@media(max-width:800px){.form-columns.three{grid-template-columns:1fr}.stat-strip{grid-template-columns:1fr}.toggle-row{display:grid}.shop-grid{grid-template-columns:1fr}}


/* Persistent player health bar */
.health-panel{width:100%;min-width:220px;padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(8,13,24,.72);box-shadow:inset 0 0 18px rgba(0,0,0,.35)}
.health-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:.92rem}
.health-bar{height:18px;overflow:hidden;border:2px solid rgba(255,255,255,.2);border-radius:999px;background:#241318;box-shadow:inset 0 2px 6px rgba(0,0,0,.65)}
.health-bar-fill{height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#8f1515,#ef3e32 62%,#ff8178);box-shadow:0 0 12px rgba(239,62,50,.65);transition:width .35s ease}
.health-panel.health-low .health-bar-fill{animation:healthPulse .85s infinite alternate}
.health-panel.health-empty{filter:grayscale(.35)}
@keyframes healthPulse{from{opacity:.72}to{opacity:1;box-shadow:0 0 20px rgba(255,30,30,.95)}}
@media(max-width:700px){.stat-strip{align-items:stretch}.health-panel{min-width:0}.health-label{font-size:.85rem}}

/* Inventory equipment and battle UI */
.inventory-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px}
.inventory-heading h3{margin:0}.inventory-open{padding:8px 12px;background:#6f4fc7}
.equipped-summary{padding:11px;margin:10px 0;border:1px solid #6c5b99;border-radius:10px;background:#17132a}
.unequip-button{padding:6px 9px;margin-left:8px;background:#5d3441}
.inventory-dialog{position:fixed;inset:0;z-index:50;background:#000c;display:grid;place-items:center;padding:18px}
.inventory-dialog[hidden]{display:none}.inventory-dialog-card{width:min(760px,96vw);max-height:88vh;overflow:auto;background:linear-gradient(145deg,#211a35,#101725);border:1px solid #8d71cf;border-radius:18px;padding:20px;box-shadow:0 30px 90px #000}
.inventory-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.inventory-card{display:flex;gap:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#0d1420}
.inventory-card.is-equipped{border-color:#e1bd58;box-shadow:0 0 18px #e1bd5833}.inventory-card img{width:76px;height:76px;object-fit:cover;border-radius:9px}
.inventory-card-info{display:grid;gap:5px;align-content:start}.inventory-card-info small{display:block}.equip-button{padding:7px 10px;margin-top:4px}.is-equipped .equip-button{background:#8f762c}
.active-enemy-panel{display:flex;gap:12px;align-items:center;padding:12px;margin:12px 0;border:1px solid #a44455;border-radius:12px;background:#29131a}
.active-enemy-panel img{width:76px;height:76px;object-fit:cover;border-radius:10px}.active-enemy-panel>div{flex:1}.active-enemy-panel small{display:block;margin:4px 0}
.enemy-health-track{height:12px;background:#17090d;border-radius:999px;overflow:hidden;margin:7px 0}.enemy-health-track span{display:block;height:100%;background:linear-gradient(90deg,#8f1515,#ff4b5e)}
.active-enemy-panel button{padding:8px 11px;background:#a62f48}.attack-command{background:#8c273c}
.builder-nav{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:12px 14px;border:1px solid #6b5791;border-radius:14px;background:#151024;position:sticky;top:84px;z-index:3}
.builder-nav a{color:#f7dfa2;text-decoration:none;padding:7px 10px;border-radius:8px;background:#2a2042}.builder-nav span{color:#bdb4d4;font-size:.85rem}
.builder-section{scroll-margin-top:150px;outline:1px solid transparent}.builder-section:target{outline-color:#d4b760;box-shadow:0 0 30px #d4b76033}
@media(max-width:700px){.builder-nav{position:static}.inventory-dialog-card{padding:14px}.inventory-card{align-items:center}}


/* Enemy markers shown directly on the city map */
.city-map-stage{
    position:relative;
    width:100%;
    min-height:260px;
    margin:12px 0 18px;
    overflow:hidden;
    border:1px solid #67558b;
    border-radius:15px;
    background:#0b0f18;
}
.city-map-background{
    display:block;
    width:100%;
    min-height:260px;
    max-height:460px;
    object-fit:cover;
    opacity:.82;
}
.enemy-map-markers{
    position:absolute;
    inset:0;
}
.enemy-map-marker{
    position:absolute;
    left:var(--marker-x);
    top:var(--marker-y);
    transform:translate(-50%,-50%);
    display:grid;
    justify-items:center;
    gap:3px;
    width:auto;
    min-width:68px;
    padding:5px;
    border:1px solid #e15567;
    border-radius:10px;
    background:#210d14e8;
    color:#fff;
    box-shadow:0 0 18px #d93f5559;
    z-index:2;
}
.enemy-map-marker:hover{
    transform:translate(-50%,-50%) scale(1.08);
}
.enemy-map-marker img{
    width:48px;
    height:48px;
    object-fit:cover;
    border-radius:8px;
}
.enemy-map-marker span{
    max-width:100px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:.72rem;
}
@media(max-width:700px){
    .city-map-stage,.city-map-background{min-height:220px}
    .enemy-map-marker img{width:40px;height:40px}
    .enemy-map-marker{min-width:58px}
}

/* Reliable city map, presence, profiles, and public inventory */
.city-map-stage{background:linear-gradient(135deg,#11182a,#22142e)}
.city-map-background{background:#121827}
.city-map-background.map-image-failed{visibility:hidden}
.players-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}
.players-heading h3{margin:0}.players-heading span{font-size:.85rem;color:#c8badf}
.city-players{display:grid;gap:8px;margin:10px 0 16px}
.player-presence-card{display:flex;align-items:center;text-align:left;gap:10px;width:100%;padding:9px;border:1px solid #55476f;border-radius:12px;background:#121827;color:#fff}
.player-presence-card:hover{border-color:#b08fe3;transform:translateY(-1px)}
.player-presence-card span:nth-child(2){display:grid;gap:2px;flex:1}.player-presence-card small{color:#aaa0bd}.player-presence-card em{font-size:.72rem;color:#d6bdff;font-style:normal}
.player-avatar{width:46px;height:46px;object-fit:cover;border-radius:50%;border:2px solid #9b7ad0;background:#2a2240;display:grid;place-items:center;flex:0 0 auto}
.avatar-initial{font-weight:800;font-size:1.1rem;color:#fff;background:linear-gradient(145deg,#7250a6,#2e6c84)}
.profile-avatar{width:96px;height:96px;font-size:2rem}
.profile-header{display:flex;gap:18px;align-items:flex-start;padding:10px 0 18px}.profile-header h2{margin:4px 0}.profile-header p{white-space:pre-wrap}
.profile-dialog-card{width:min(820px,96vw)}
.profile-edit-form{display:grid;gap:14px}.profile-edit-form label{display:grid;gap:7px}.profile-edit-form textarea{resize:vertical;min-height:120px}
.nav-button{background:transparent;border:1px solid #67568b;padding:7px 10px}
.item-placeholder{width:76px;height:76px;border-radius:9px;background:#222b3a;display:grid;place-items:center;font-weight:bold}
.equipped-label{color:#f6d36f!important;font-weight:bold}
.public-inventory{margin-top:10px}
@media(max-width:650px){.profile-header{display:grid;justify-items:center;text-align:center}.player-presence-card em{display:none}}

html.modal-open,body.modal-open{overflow:hidden!important}
.inventory-dialog,.map-dialog{
position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;
z-index:2147483000!important;display:flex!important;align-items:center!important;
justify-content:center!important;padding:18px!important;background:rgba(0,0,0,.86)!important;
isolation:isolate!important;transform:none!important}
.inventory-dialog[hidden],.map-dialog[hidden]{display:none!important}
.inventory-dialog-card,.map-dialog-content{
position:relative!important;z-index:2147483001!important;width:min(820px,96vw)!important;
max-height:88vh!important;overflow:auto!important;margin:0!important;border-radius:18px!important;
box-shadow:0 35px 120px rgba(0,0,0,.95)!important}
.dialog-close{position:sticky!important;top:0!important;float:right;z-index:5;background:#8b2942!important}
@media(max-width:700px){.inventory-dialog,.map-dialog{padding:8px!important}.inventory-dialog-card,.map-dialog-content{width:100%!important;max-height:94vh!important}}


/* Enemy images are always compact */
.feed-message.enemy .result img,
.active-enemy-panel img,
.enemy-map-marker img,
.enemy-card img,
.enemy-result-image {
    width:100px !important;
    height:100px !important;
    max-width:100px !important;
    max-height:100px !important;
    object-fit:cover !important;
    object-position:center !important;
    border-radius:10px !important;
    flex:0 0 100px !important;
}
.enemy-map-marker{max-width:120px !important;}

/* enemy-click-attack-image-size */
.feed-message.enemy .result img,
.active-enemy-panel img,
.enemy-map-marker img,
.enemy-card img {
    width:100px !important;
    height:100px !important;
    max-width:100px !important;
    max-height:100px !important;
    object-fit:cover !important;
    border-radius:10px !important;
}


/* Unlimited enemy map markers: grid overlay prevents markers from overlapping. */
.city-map-stage{
    position:relative;
    overflow:auto !important;
    min-height:320px;
}
.enemy-map-markers{
    position:absolute !important;
    inset:0 !important;
    display:grid !important;
    grid-template-columns:repeat(auto-fill,minmax(112px,1fr)) !important;
    align-content:start !important;
    gap:10px !important;
    padding:12px !important;
    overflow-y:auto !important;
    max-height:100% !important;
    pointer-events:none;
}
.enemy-map-marker{
    position:relative !important;
    left:auto !important;
    top:auto !important;
    transform:none !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    pointer-events:auto;
}
.enemy-map-marker:hover{
    transform:translateY(-2px) scale(1.02) !important;
}
.enemy-map-marker img{
    width:100px !important;
    height:100px !important;
    max-width:100px !important;
    max-height:100px !important;
    object-fit:cover !important;
}
.feed-message.enemy .typed{
    display:block;
}
.feed-message.enemy .result>img{
    width:100px !important;
    height:100px !important;
    max-width:100px !important;
    max-height:100px !important;
    object-fit:cover !important;
}
@media(max-width:700px){
    .enemy-map-markers{grid-template-columns:repeat(auto-fill,minmax(100px,1fr)) !important;}
}


/* Unlimited enemy lists */
.city-enemies,
.enemy-admin-grid,
.enemy-map-list {
    display:grid !important;
    grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) !important;
    gap:12px !important;
    width:100% !important;
    max-height:none !important;
    overflow:visible !important;
}

.enemy-map-markers {
    overflow:auto !important;
    align-content:start !important;
}

.enemy-admin-card,
.city-enemies .map-enemy {
    min-width:0 !important;
}

.active-enemies-wrap{margin:14px 0;padding:12px;border:1px solid #654d7e;border-radius:14px;background:#111624}.active-enemies-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.active-enemy-card{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #8a3a4d;border-radius:12px;background:#25121a}.active-enemy-card img{width:100px!important;height:100px!important;object-fit:cover!important;border-radius:10px}.active-enemy-card>div{flex:1}.active-enemy-card strong,.active-enemy-card small{display:block}.active-enemy-attack{margin-top:7px;padding:7px 10px;background:#a83049}

.command-reward-options{margin:16px 0;padding:14px;border:1px solid #725a9f;border-radius:14px;background:#14101f}.command-reward-options h3{margin-top:0}.check-row{display:flex!important;align-items:center;gap:10px;margin:10px 0;padding:10px;border:1px solid #4f416e;border-radius:10px;background:#1b1628}.check-row input{width:auto!important}.conditional-fields{display:none;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:0 0 14px 24px;padding:12px;border-left:3px solid #a383dc;background:#111621;border-radius:8px}

.eat-button{padding:7px 10px;margin-top:4px;background:#3f8a55}.inventory-card.is-equipped{outline:2px solid #d5b85c}.item-type-badge{font-size:.72rem}


/* Clean RPG layout */
.rpg-ui-tabs{
 position:sticky;
 top:72px;
 z-index:20;
 display:flex;
 flex-wrap:wrap;
 gap:8px;
 margin:12px auto 18px;
 padding:10px;
 border:1px solid #5d4b80;
 border-radius:14px;
 background:rgba(15,18,30,.96);
 backdrop-filter:blur(12px);
}
.rpg-tab{
 flex:1 1 130px;
 padding:10px 14px;
 border:1px solid #66528c;
 border-radius:10px;
 background:#1b2132;
 color:#eee;
}
.rpg-tab.active{
 background:linear-gradient(135deg,#6f4db0,#3d6b91);
 border-color:#b39ae3;
 box-shadow:0 0 18px #7854bd55;
}
.rpg-panel{
 display:block;
 margin:0 0 18px;
 padding:16px;
 border:1px solid #4d4567;
 border-radius:16px;
 background:linear-gradient(145deg,#151a28,#10141f);
 box-shadow:0 12px 30px rgba(0,0,0,.25);
}
.rpg-panel[hidden]{display:none!important}
.inventory-toolbar,
.summary-title{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:10px;
 margin-bottom:10px;
}
.inventory-toolbar h3{margin:0}
.equipped-items-summary{
 margin-bottom:18px;
 padding:12px;
 border:1px solid #7a6330;
 border-radius:14px;
 background:#211b11;
}
.equipped-summary-grid{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
 gap:10px;
}
.equipped-summary-card{
 display:flex;
 gap:10px;
 align-items:center;
 padding:10px;
 border:1px solid #886c2b;
 border-radius:12px;
 background:#17140e;
}
.equipped-summary-card img,
.item-placeholder.small{
 width:58px!important;
 height:58px!important;
 min-width:58px!important;
 object-fit:cover;
 border-radius:9px;
}
.equipped-summary-card>div{
 display:grid;
 gap:4px;
 flex:1;
}
.inventory-grid{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
 gap:12px;
}
.inventory-card{
 min-height:116px;
 align-items:center;
}
.inventory-actions{
 display:flex;
 flex-wrap:wrap;
 gap:8px;
 margin-top:8px;
}
.inventory-actions button{
 flex:1 1 90px;
 margin:0;
}
.unequip-button{
 background:#7a3042!important;
}
.eat-button{
 background:#477a42!important;
}
.empty-equipped{
 padding:12px;
 border:1px dashed #655b74;
 border-radius:10px;
 color:#bcb4c8;
}
@media(max-width:700px){
 .rpg-ui-tabs{position:static}
 .rpg-tab{flex:1 1 calc(50% - 8px)}
 .rpg-panel{padding:12px}
 .inventory-grid{grid-template-columns:1fr}
 .equipped-summary-grid{grid-template-columns:1fr}
}


/* CLEAN RESPONSIVE CITY UI v3 */
*{box-sizing:border-box}.city-shell{max-width:1280px;margin:0 auto;padding:18px}.city-banner{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:center;margin-bottom:14px}.city-hero{width:180px;height:150px;object-fit:cover;border-radius:14px}.city-banner-copy h1{margin:0 0 6px}.stat-strip{display:grid;grid-template-columns:minmax(220px,1fr) 150px;gap:12px;margin-top:14px}.money-box{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #665a85;border-radius:12px;background:#151a29}.money-box strong{font-size:1.45rem}.rpg-ui-tabs{position:sticky;top:70px;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:10px;margin:0 0 16px;background:#0e1320f2;border:1px solid #554b70;border-radius:14px;backdrop-filter:blur(12px)}.rpg-tab{padding:11px 10px;border-radius:10px;border:1px solid #5a4f76;background:#1a2030;color:#fff;font-weight:700;cursor:pointer}.rpg-tab.active{background:linear-gradient(135deg,#7658b7,#3c7390);border-color:#c1a9ef}.rpg-panel{display:block}.rpg-panel[hidden]{display:none!important}.adventure-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);gap:16px}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.card{border:1px solid #4e4664;border-radius:16px;background:linear-gradient(145deg,#161b29,#10141f);padding:16px;box-shadow:0 12px 28px #0004}.section-head,.summary-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h2,.summary-title h3{margin:0}.section-head p{margin:3px 0 0;color:#a9a3b7}.secondary-button{padding:8px 12px;background:#27334b}.city-map-stage{position:relative;min-height:380px;border-radius:14px;overflow:auto;background:#0a0f19}.city-map-background{display:block;width:100%;height:380px;object-fit:cover;opacity:.78}.enemy-map-markers{position:absolute;inset:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;align-content:start;pointer-events:none}.enemy-map-marker{position:static!important;transform:none!important;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;background:#24131dd9;border:1px solid #a8495d;border-radius:12px;color:#fff}.enemy-map-marker img{width:100px!important;height:100px!important;object-fit:cover;border-radius:10px}.command-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.command-chip{width:auto;padding:8px 11px}.command-form{display:grid;grid-template-columns:1fr auto;gap:10px}.command-form input{min-width:0}.chat-block{margin-top:16px;padding-top:14px;border-top:1px solid #3e3a4e}.shop-grid,.building-grid,.inventory-grid,.city-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.shop-item,.inventory-card,.equipped-summary-card{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #4b435e;border-radius:12px;background:#111725}.shop-item img,.inventory-card img,.equipped-summary-card img,.item-placeholder{width:82px;height:82px;min-width:82px;object-fit:cover;border-radius:10px}.shop-item>div,.inventory-card-info,.equipped-summary-card>div{display:grid;gap:6px;flex:1;min-width:0}.building-tile{display:flex;flex-direction:column;gap:8px;padding:8px;border:1px solid #4b435e;border-radius:12px;background:#111725;color:#fff}.building-tile img{width:100%;height:130px;object-fit:cover;border-radius:9px}.equipped-summary{margin-bottom:18px}.equipped-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.inventory-actions{display:flex;flex-wrap:wrap;gap:8px}.inventory-actions button{flex:1}.is-equipped{border-color:#c8a64a;box-shadow:0 0 18px #d9b94d33}.unequip-button{background:#84384d}.eat-button{background:#3f7648}.player-presence-card{display:flex;align-items:center;gap:12px;text-align:left;padding:12px;border:1px solid #4b435e;border-radius:12px;background:#111725;color:#fff}.player-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover}.avatar-initial{display:grid;place-items:center;background:#5b4784}.feed{max-height:70vh;overflow:auto;display:grid;gap:10px}.feed-message{padding:12px;border:1px solid #423b53;border-radius:12px;background:#101622}.message-head{display:flex;justify-content:space-between;gap:10px}.result{display:flex;gap:12px;margin-top:8px}.result>img{width:100px!important;height:100px!important;object-fit:cover;border-radius:10px}.inventory-dialog{position:fixed!important;inset:0!important;z-index:2147483000!important;display:grid!important;place-items:center!important;padding:16px;background:#000d}.inventory-dialog[hidden]{display:none!important}.inventory-dialog-card{width:min(850px,96vw);max-height:90vh;overflow:auto;background:#121826;border:1px solid #6c5a8a;border-radius:18px;padding:18px}.full-map-image{display:block;max-width:100%;max-height:75vh;margin:auto;object-fit:contain}.dialog-close{position:sticky;top:0;float:right}.modal-open{overflow:hidden}.empty-equipped,.status{color:#aaa3b6}
@media(max-width:900px){.adventure-grid,.content-grid{grid-template-columns:1fr}.rpg-ui-tabs{top:62px}.city-map-stage,.city-map-background{height:330px;min-height:330px}}
@media(max-width:640px){.city-shell{padding:10px}.city-banner{grid-template-columns:90px 1fr;gap:12px}.city-hero{width:90px;height:90px}.stat-strip{grid-template-columns:1fr}.money-box{padding:10px}.rpg-ui-tabs{position:static;grid-template-columns:1fr 1fr}.rpg-tab{font-size:.9rem}.command-form{grid-template-columns:1fr}.command-form button{width:100%}.enemy-map-markers{grid-template-columns:repeat(2,minmax(0,1fr));inset:8px}.enemy-map-marker img{width:86px!important;height:86px!important}.shop-grid,.building-grid,.inventory-grid,.city-players,.equipped-summary-grid{grid-template-columns:1fr}.section-head{align-items:flex-start}.card{padding:12px}}


/* Restored command and live-chat controls */
.interaction-dock{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    width:min(1200px,100%);
    margin:20px auto 0;
}

.interaction-block{
    display:grid;
    gap:12px;
    padding:16px;
    border:1px solid rgba(139,112,190,.55);
    border-radius:18px;
    background:
        linear-gradient(145deg,rgba(27,32,49,.98),rgba(14,18,29,.98));
    box-shadow:0 15px 40px rgba(0,0,0,.28);
}

.interaction-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px;
}

.interaction-heading h2{
    margin:0 0 4px;
    font-size:1.05rem;
}

.interaction-heading p{
    margin:0;
    color:#aaa4b8;
    font-size:.86rem;
}

.interaction-example,
.live-status{
    flex:0 0 auto;
    padding:6px 9px;
    border:1px solid rgba(136,112,177,.45);
    border-radius:999px;
    background:#111725;
    color:#d9c7f3;
    font-size:.75rem;
}

.interaction-form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
}

.interaction-form input{
    width:100%;
    min-width:0;
    min-height:48px;
    padding:0 14px;
    border:1px solid #51456c;
    border-radius:12px;
    background:#0c111c;
    color:#f4f1f8;
    font:inherit;
    outline:none;
}

.interaction-form input:focus{
    border-color:#a687df;
    box-shadow:0 0 0 3px rgba(145,110,214,.18);
}

.interaction-form button{
    min-height:48px;
    padding:0 18px;
    border:0;
    border-radius:12px;
    color:#fff;
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
}

.command-submit{
    background:linear-gradient(135deg,#7552c5,#496fa5);
}

.chat-submit{
    background:linear-gradient(135deg,#2f7c70,#3c668e);
}

.interaction-form button:hover{
    filter:brightness(1.08);
    transform:translateY(-1px);
}

.interaction-form input:disabled{
    opacity:.65;
}

.sr-only{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
}

@media(max-width:850px){
    .interaction-dock{
        grid-template-columns:1fr;
    }
}

@media(max-width:560px){
    .interaction-block{
        padding:13px;
        border-radius:14px;
    }

    .interaction-heading{
        display:grid;
    }

    .interaction-example,
    .live-status{
        width:max-content;
        max-width:100%;
    }

    .interaction-form{
        grid-template-columns:1fr;
    }

    .interaction-form button{
        width:100%;
    }
}


/* City item placement builder */
.item-location-builder{
    display:grid;
    gap:12px;
    margin:14px 0;
    padding:14px;
    border:1px solid #65538d;
    border-radius:14px;
    background:#121725;
}
.item-location-builder fieldset{margin:0}
.item-location-builder .always-visible{display:grid!important}

.weather-panel{display:grid;gap:12px;margin:14px 0 18px;padding:16px;border:1px solid #4f789b;border-radius:18px;background:linear-gradient(145deg,#172536,#101722)}.weather-panel-heading{display:flex;justify-content:space-between;gap:14px}.weather-panel-heading h2{margin:3px 0}.weather-countdown{padding:7px 10px;border:1px solid #4f789b;border-radius:999px;background:#0e1622;color:#c9e3ff;font-size:.78rem}.weather-details{display:flex;flex-wrap:wrap;gap:10px}.weather-details span{padding:7px 10px;border:1px solid #465a70;border-radius:10px;background:#101925}.weather-danger{color:#ffbac4!important;border-color:#b95162!important}.weather-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.weather-admin-card{display:grid;gap:6px;padding:13px;border:1px solid #5d6680;border-radius:13px;background:#141b29}@media(max-width:650px){.weather-panel-heading{display:grid}.weather-details{display:grid}}

.weather-available{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.weather-available small{color:#9eb8d4}.weather-available span{padding:5px 8px;border:1px solid #44576b;border-radius:999px;background:#0f1824;font-size:.76rem}

/* Independent AJAX weather loader */
.weather-panel.weather-loading{opacity:.82}
.weather-panel.weather-loading::after{content:'Updating…';display:block;color:#9eb8d4;font-size:.78rem}
.weather-retry{padding:7px 11px;border:1px solid #6f8caf;border-radius:9px;background:#18283a;color:#dbeeff;cursor:pointer}
.weather-available{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.weather-available span{display:inline-flex;padding:5px 8px;border:1px solid rgba(119,143,170,.35);border-radius:999px;background:#101925;color:#c8d4e1;font-size:.76rem}


/* Weather countdown only */
#weatherCountdown{
    min-width:72px;
    text-align:center;
    font-size:1rem;
    font-weight:800;
    letter-spacing:.04em;
}

.possible-weather-chip{
    display:inline-flex;
    margin:4px;
    padding:5px 9px;
    border:1px solid rgba(120,145,180,.4);
    border-radius:999px;
    background:#101825;
    color:#cbd9e8;
    font-size:.78rem;
}


.possible-weather-wrap{
    display:grid;
    gap:7px;
    margin-top:8px;
    padding-top:10px;
    border-top:1px solid rgba(120,145,180,.25);
}

.possible-weather-list{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.possible-weather-chip{
    display:inline-flex;
    padding:6px 10px;
    border:1px solid rgba(120,145,180,.45);
    border-radius:999px;
    background:#101825;
    color:#d5e4f3;
    font-size:.8rem;
}


/* One city-wide weather announcement, without a player username */
.feed-message.weather-change{
    padding:12px 14px;
    border:1px solid rgba(102,151,201,.55);
    border-radius:13px;
    background:
        linear-gradient(135deg,rgba(37,72,108,.92),rgba(24,40,64,.96));
    box-shadow:0 8px 24px rgba(0,0,0,.22);
}

.weather-change-message{
    color:#e7f4ff;
    font-weight:800;
    text-align:center;
    letter-spacing:.01em;
}

.feed-message.weather-change .message-head,
.feed-message.weather-change .result{
    display:none!important;
}

.building-type-fields{display:none;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;padding:12px;border-left:3px solid #7860a5;background:#121724;border-radius:10px;margin:8px 0}
.special-building-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.service-card{padding:14px;border:1px solid #52617d;border-radius:14px;background:#151b29}
.hospital-service{border-color:#4e9674}.prison-service{border-color:#7e7188}.casino-service{border-color:#a17b2e}
.service-card button{width:100%;margin-top:8px}.revive-button{background:#347b62!important}.slots-button{background:#87621f!important}
.death-dialog-card{text-align:center;width:min(520px,95vw)!important}


.death-only-screen{
    min-height:70vh;
    display:grid;
    place-items:center;
    padding:20px;
}

.death-only-card{
    width:min(560px,100%);
    padding:22px;
    border:1px solid #a84e62;
    border-radius:18px;
    background:
        linear-gradient(145deg,#26131a,#141722);
    box-shadow:0 18px 50px rgba(0,0,0,.38);
    text-align:center;
}

.death-only-card h1{
    margin-top:0;
}

.death-cause{
    color:#f3b4bf;
}

.selected-hospital-card{
    margin-top:16px;
    padding:16px;
    border:1px solid #4d9472;
    border-radius:14px;
    background:#112219;
}

.primary-revive-button{
    width:100%;
    min-height:48px;
    margin-top:10px;
    background:linear-gradient(135deg,#2f8b68,#3e6e86)!important;
    font-weight:800;
}

@media(max-width:600px){
    .death-only-card{
        padding:16px;
        border-radius:14px;
    }
}


.selected-hospital-image{
    display:block;
    width:min(100%,420px);
    height:220px;
    margin:0 auto 14px;
    object-fit:cover;
    border:1px solid #4d9472;
    border-radius:14px;
    background:#0e1712;
}

.hospital-image-placeholder{
    display:grid;
    place-items:center;
    color:#89c9a7;
    font-size:4rem;
}

#reviveStatus{
    min-height:1.3em;
    margin:10px 0 0;
}

.primary-revive-button:disabled{
    opacity:.65;
    cursor:wait;
}

.revive-form{
    display:block;
    margin:0;
}
