:root{--bg:#06110f;--panel:#0d201b;--line:rgba(125,255,213,.18);--text:#eafff8;--muted:#86a79d;--a:#6fffd2;--b:#d8b55f;--bad:#ff7670}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 10% 0%,rgba(111,255,210,.13),transparent 30%),radial-gradient(circle at 100% 10%,rgba(216,181,95,.11),transparent 28%),var(--bg);color:var(--text);font-family:Inter,system-ui,Segoe UI,sans-serif}
main{width:min(1420px,calc(100% - 32px));margin:auto;padding:32px 0 52px}.hero{display:grid;grid-template-columns:1fr 390px;gap:20px;margin-bottom:20px}.hero>div,.deed,.panel{border:1px solid var(--line);background:rgba(13,32,27,.88);border-radius:24px;box-shadow:0 18px 70px rgba(0,0,0,.38);padding:24px}.hero>div{padding:48px}.eyebrow{margin:0 0 12px;color:var(--a);font:700 12px ui-monospace,Consolas,monospace;letter-spacing:.14em}h1{font-size:clamp(42px,7vw,88px);line-height:.9;letter-spacing:-.07em;margin:0}h2{margin:0 0 16px}.lede{color:var(--muted);font-size:18px;line-height:1.6;max-width:820px}.deed h2{color:var(--b);font-size:30px}.deed dl{display:grid;grid-template-columns:90px 1fr;gap:10px;margin:20px 0}.deed dt{color:var(--muted)}.deed dd{margin:0;overflow:hidden;text-overflow:ellipsis}
button{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);border-radius:12px;padding:12px 13px;font-weight:800;cursor:pointer}button:hover{border-color:var(--a);background:rgba(111,255,210,.08)}#mint{width:100%;background:linear-gradient(135deg,var(--a),var(--b));color:#06110f;border:0}
.grid{display:grid;grid-template-columns:300px 1fr 320px;gap:20px;margin-bottom:20px}.grid.two{grid-template-columns:1fr 1fr}.stat{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.07);padding:8px 0}.stat span,.muted{color:var(--muted)}.buttons{display:grid;gap:10px;margin-top:16px}
#map{font-family:ui-monospace,Consolas,monospace;display:grid;grid-template-columns:repeat(28,1fr);gap:4px;background:#040a08;padding:12px;border-radius:16px;border:1px solid rgba(255,255,255,.08)}.tile{aspect-ratio:1;border-radius:6px;display:grid;place-items:center;background:rgba(255,255,255,.04);font-size:12px}.wall{color:#78958b}.farm{color:#82ff93;background:rgba(130,255,147,.08)}.keep{color:var(--a);background:rgba(111,255,210,.12)}.work{color:var(--b);background:rgba(216,181,95,.1)}.water{color:#8acbff;background:rgba(80,160,255,.12)}.enemy{color:var(--bad);background:rgba(255,118,112,.13)}
pre{white-space:pre-wrap;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px;color:var(--muted);font-size:12px}ol{padding:0;margin:0;list-style:none;display:grid;gap:10px;max-height:430px;overflow:auto}.event,.receipt{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}.event time{display:block;color:var(--a);font:12px ui-monospace,Consolas,monospace;margin-bottom:6px}.receipt code{display:block;color:var(--muted);word-break:break-all;font-size:12px}.receipt strong{color:var(--b)}
@media(max-width:1050px){.hero,.grid,.grid.two{grid-template-columns:1fr}.hero>div{padding:28px}}

.fileLabel{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);border-radius:12px;padding:12px 13px;font-weight:800;cursor:pointer;text-align:center}.fileLabel:hover{border-color:var(--a);background:rgba(111,255,210,.08)}.fileLabel input{display:none}

.world-panel{margin-bottom:20px}
.world-header{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:14px}
.world-header h2{font-size:28px;margin-bottom:8px}
.world-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.world-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.world-controls input{background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:12px;min-width:220px}
.layer-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.layer.active{border-color:var(--a);box-shadow:0 0 0 1px rgba(111,255,210,.18) inset;background:rgba(111,255,210,.1)}
.world-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}
.world-map{--world-cols:96;display:grid;grid-template-columns:repeat(var(--world-cols), 1fr);gap:1px;background:#030706;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px;overflow:auto;max-height:620px}
.world-tile{font-family:ui-monospace,Consolas,monospace;display:grid;place-items:center;min-width:9px;aspect-ratio:1;border-radius:2px;font-size:10px;line-height:1;background:rgba(255,255,255,.025);cursor:crosshair}.world-tile.selected{outline:1px solid #fff;z-index:1}
.world-sidebar{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.18);border-radius:18px;padding:16px}.world-sidebar h3{margin:0 0 8px;color:var(--b)}
.world-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.legend-row{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}
.wm-water-deep{color:#246d9f;background:rgba(40,100,180,.15)}.wm-water{color:#6fc7ff;background:rgba(40,150,255,.14)}.wm-coast{color:#cdbb8b;background:rgba(210,190,120,.09)}.wm-plains{color:#8fff9e;background:rgba(120,255,150,.07)}.wm-forest{color:#37d46f;background:rgba(30,150,80,.13)}.wm-hills{color:#c0ae7d;background:rgba(180,150,80,.13)}.wm-mountain{color:#cbd5d0;background:rgba(200,220,220,.12)}.wm-snow{color:#f0fbff;background:rgba(230,250,255,.18)}.wm-desert{color:#e0c36d;background:rgba(224,195,109,.11)}.wm-swamp{color:#8bb06a;background:rgba(90,130,70,.15)}.wm-route{color:#ffde7a;text-shadow:0 0 8px rgba(255,222,122,.5)}.wm-settlement{color:#fff;background:rgba(255,255,255,.10);font-weight:900}
.faction-iron{color:#a7c7c1;background:rgba(150,190,190,.14)}.faction-salt{color:#f2d47c;background:rgba(242,212,124,.13)}.faction-ash{color:#ff8d7d;background:rgba(255,120,100,.13)}.faction-moon{color:#bba8ff;background:rgba(170,150,255,.13)}
.event-raid{color:#ff7670;background:rgba(255,118,112,.18)}.event-caravan{color:#ffd86f;background:rgba(255,216,111,.16)}.event-artifact{color:#e58cff;background:rgba(229,140,255,.16)}.event-ruin{color:#9db0aa;background:rgba(157,176,170,.14)}
.elev-0{color:#256d9f}.elev-1{color:#6fc7ff}.elev-2{color:#77d98c}.elev-3{color:#a4e181}.elev-4{color:#d4c06f}.elev-5{color:#c0ae7d}.elev-6{color:#b5bdb8}.elev-7{color:#d8e0dc}.elev-8{color:#fff}
@media(max-width:1050px){.world-layout,.world-header{grid-template-columns:1fr;display:grid}.world-sidebar{order:-1}.world-tile{min-width:8px}}

/* SOL Fortress Atlas Modal V0 */
.world-panel{margin-bottom:20px}
.world-header{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:14px}
.world-header h2{font-size:28px;margin-bottom:8px}
.world-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.world-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.world-controls input{background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:12px;min-width:220px}
.layer-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.layer.active,.atlas-layer.active{border-color:var(--a);box-shadow:0 0 0 1px rgba(111,255,210,.18) inset;background:rgba(111,255,210,.1)}
.world-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}
.world-map{--world-cols:112;display:grid;grid-template-columns:repeat(var(--world-cols), 1fr);gap:1px;background:#030706;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:10px;overflow:auto;max-height:620px}
.world-tile{font-family:ui-monospace,Consolas,monospace;display:grid;place-items:center;min-width:9px;aspect-ratio:1;border-radius:2px;font-size:10px;line-height:1;background:rgba(255,255,255,.025);cursor:crosshair;user-select:none}.world-tile.selected{outline:1px solid #fff;z-index:1}
.world-sidebar{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.18);border-radius:18px;padding:16px}.world-sidebar h3{margin:0 0 8px;color:var(--b)}
.world-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.legend-row{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}
.wm-water-deep{color:#246d9f;background:rgba(40,100,180,.15)}.wm-water{color:#6fc7ff;background:rgba(40,150,255,.14)}.wm-coast{color:#cdbb8b;background:rgba(210,190,120,.09)}.wm-plains{color:#8fff9e;background:rgba(120,255,150,.07)}.wm-forest{color:#37d46f;background:rgba(30,150,80,.13)}.wm-hills{color:#c0ae7d;background:rgba(180,150,80,.13)}.wm-mountain{color:#cbd5d0;background:rgba(200,220,220,.12)}.wm-snow{color:#f0fbff;background:rgba(230,250,255,.18)}.wm-desert{color:#e0c36d;background:rgba(224,195,109,.11)}.wm-swamp{color:#8bb06a;background:rgba(90,130,70,.15)}.wm-route{color:#ffde7a;text-shadow:0 0 8px rgba(255,222,122,.5)}.wm-settlement{color:#fff;background:rgba(255,255,255,.10);font-weight:900}
.faction-iron{color:#a7c7c1;background:rgba(150,190,190,.14)}.faction-salt{color:#f2d47c;background:rgba(242,212,124,.13)}.faction-ash{color:#ff8d7d;background:rgba(255,120,100,.13)}.faction-moon{color:#bba8ff;background:rgba(170,150,255,.13)}
.event-raid{color:#ff7670;background:rgba(255,118,112,.18)}.event-caravan{color:#ffd86f;background:rgba(255,216,111,.16)}.event-artifact{color:#e58cff;background:rgba(229,140,255,.16)}.event-ruin{color:#9db0aa;background:rgba(157,176,170,.14)}
.elev-0{color:#256d9f}.elev-1{color:#6fc7ff}.elev-2{color:#77d98c}.elev-3{color:#a4e181}.elev-4{color:#d4c06f}.elev-5{color:#c0ae7d}.elev-6{color:#b5bdb8}.elev-7{color:#d8e0dc}.elev-8{color:#fff}

body.atlas-open{overflow:hidden}
.atlas-modal{position:fixed;inset:0;z-index:1000;display:none}.atlas-modal.open{display:block}.atlas-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(10px)}
.atlas-window{position:absolute;inset:24px;border:1px solid rgba(111,255,210,.22);background:rgba(6,17,15,.92);border-radius:26px;box-shadow:0 30px 120px rgba(0,0,0,.72);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.atlas-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035)}
.atlas-topbar h2{margin:0;font-size:24px}.atlas-top-actions{display:flex;gap:8px;flex-wrap:wrap}
.atlas-body{position:relative;min-height:0;display:grid}
.atlas-viewport{position:absolute;inset:0;overflow:auto;cursor:grab;padding:72px 340px 180px 132px;background:radial-gradient(circle at 50% 50%,rgba(111,255,210,.06),transparent 45%),#030706}
.atlas-viewport.dragging{cursor:grabbing}.atlas-map{width:max-content;max-height:none;transform:scale(var(--atlas-zoom,1));transform-origin:top left;overflow:visible}.atlas-map .world-tile{min-width:calc(10px * var(--atlas-zoom,1));font-size:calc(10px * var(--atlas-zoom,1))}
.atlas-floating{position:absolute;z-index:4;border:1px solid rgba(255,255,255,.10);background:rgba(10,24,21,.78);backdrop-filter:blur(12px);border-radius:18px;box-shadow:0 16px 60px rgba(0,0,0,.4);padding:12px}
.floating-title{margin:0 0 10px;color:var(--a);font:800 11px ui-monospace,Consolas,monospace;letter-spacing:.14em;text-transform:uppercase}
.atlas-layers{top:18px;left:18px;display:grid;gap:8px;width:104px}.atlas-inspector{top:18px;right:18px;width:300px;max-height:calc(100% - 220px);overflow:auto}.atlas-inspector h3{margin:0 0 8px;color:var(--b)}.atlas-mini-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.atlas-chat{position:absolute;z-index:5;left:18px;right:18px;bottom:18px;border:1px solid rgba(111,255,210,.18);background:rgba(8,18,16,.88);border-radius:18px;box-shadow:0 16px 70px rgba(0,0,0,.5);overflow:hidden}
.atlas-chat::before{content:"";position:absolute;inset:0;background:rgba(111,255,210,.12);pointer-events:none}.atlas-chat header,.atlas-chat form,.atlas-chat ol{position:relative}
.atlas-chat header{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:12px}.atlas-chat header strong{color:var(--a)}
#atlasChatLog{list-style:none;margin:0;padding:8px 12px;display:grid;gap:4px;max-height:118px;overflow:auto}#atlasChatLog li{display:grid;grid-template-columns:52px 92px 1fr;gap:8px;align-items:start;color:var(--text);font-size:13px}#atlasChatLog time{color:var(--muted);font-family:ui-monospace,Consolas,monospace}#atlasChatLog strong{color:var(--b);font-family:ui-monospace,Consolas,monospace;font-size:11px;text-transform:uppercase}
#atlasChatForm{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 10px;border-top:1px solid rgba(255,255,255,.08)}#atlasChatInput{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.10);border-radius:12px;color:var(--text);padding:10px}
@media(max-width:1050px){.world-layout,.world-header{grid-template-columns:1fr;display:grid}.world-sidebar{order:-1}.world-tile{min-width:8px}.atlas-window{inset:8px}.atlas-viewport{padding:190px 16px 190px 16px}.atlas-layers{left:12px;top:12px}.atlas-inspector{left:128px;right:12px;top:12px;width:auto}.atlas-chat{left:10px;right:10px;bottom:10px}#atlasChatLog li{grid-template-columns:42px 72px 1fr}}

/* SOL FORTRESS IMMERSIVE ATLAS V1 */
.icon-btn{min-width:44px;font-size:20px;line-height:1}
.world-panel{margin-bottom:20px}
.world-header{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:14px}
.world-header h2{font-size:28px;margin-bottom:8px}
.world-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.world-controls label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.world-controls input{background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:12px;min-width:220px}
.layer-controls{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.layer.active,.atlas-layer.active{border-color:var(--a);box-shadow:0 0 0 1px rgba(111,255,210,.18) inset;background:rgba(111,255,210,.1)}
.world-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}
.world-viewport{position:relative;height:620px;overflow:hidden;background:#030706;border:1px solid rgba(255,255,255,.08);border-radius:18px;cursor:grab;touch-action:none;isolation:isolate}.world-viewport.dragging{cursor:grabbing}.world-viewport::after{content:"wheel zoom · drag pan · click inspect";position:absolute;left:14px;bottom:12px;padding:6px 9px;border-radius:999px;color:var(--muted);font:700 11px ui-monospace,Consolas,monospace;background:rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.08);pointer-events:none}
.world-map{--world-cols:124;position:absolute;left:0;top:0;display:grid;grid-template-columns:repeat(var(--world-cols), 1fr);gap:1px;background:#030706;border:0;border-radius:0;padding:10px;width:max-content;max-height:none;overflow:visible;transform-origin:0 0;will-change:transform}
.world-tile{font-family:ui-monospace,Consolas,monospace;display:grid;place-items:center;width:12px;height:12px;border-radius:2px;font-size:10px;line-height:1;background:rgba(255,255,255,.025);cursor:crosshair;user-select:none}.world-tile.selected{outline:1px solid #fff;z-index:1}
.world-sidebar{border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.18);border-radius:18px;padding:16px}.world-sidebar h3{margin:0 0 8px;color:var(--b)}
.world-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.legend-row{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.legend-row .world-tile{position:static;width:18px;height:18px}
.wm-water-deep{color:#246d9f;background:rgba(40,100,180,.15)}.wm-water{color:#6fc7ff;background:rgba(40,150,255,.14)}.wm-coast{color:#cdbb8b;background:rgba(210,190,120,.09)}.wm-plains{color:#8fff9e;background:rgba(120,255,150,.07)}.wm-forest{color:#37d46f;background:rgba(30,150,80,.13)}.wm-hills{color:#c0ae7d;background:rgba(180,150,80,.13)}.wm-mountain{color:#cbd5d0;background:rgba(200,220,220,.12)}.wm-snow{color:#f0fbff;background:rgba(230,250,255,.18)}.wm-desert{color:#e0c36d;background:rgba(224,195,109,.11)}.wm-swamp{color:#8bb06a;background:rgba(90,130,70,.15)}.wm-route{color:#ffde7a;text-shadow:0 0 8px rgba(255,222,122,.5)}.wm-settlement{color:#fff;background:rgba(255,255,255,.10);font-weight:900}
.faction-iron{color:#a7c7c1;background:rgba(150,190,190,.14)}.faction-salt{color:#f2d47c;background:rgba(242,212,124,.13)}.faction-ash{color:#ff8d7d;background:rgba(255,120,100,.13)}.faction-moon{color:#bba8ff;background:rgba(170,150,255,.13)}
.event-raid{color:#ff7670;background:rgba(255,118,112,.18)}.event-caravan{color:#ffd86f;background:rgba(255,216,111,.16)}.event-artifact{color:#e58cff;background:rgba(229,140,255,.16)}.event-ruin{color:#9db0aa;background:rgba(157,176,170,.14)}
.elev-0{color:#256d9f}.elev-1{color:#6fc7ff}.elev-2{color:#77d98c}.elev-3{color:#a4e181}.elev-4{color:#d4c06f}.elev-5{color:#c0ae7d}.elev-6{color:#b5bdb8}.elev-7{color:#d8e0dc}.elev-8{color:#fff}

body.atlas-open{overflow:hidden}
.sol-atlas{position:fixed;inset:0;z-index:2000;display:none;background:rgba(0,0,0,.78);backdrop-filter:blur(10px)}.sol-atlas.open{display:block}
.sol-atlas-shell{position:absolute;inset:18px;border:1px solid rgba(111,255,210,.26);background:rgba(3,10,8,.96);border-radius:28px;overflow:hidden;box-shadow:0 30px 120px rgba(0,0,0,.78)}
.sol-atlas-top{position:absolute;z-index:7;left:18px;right:18px;top:16px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(8,20,17,.62);backdrop-filter:blur(12px)}.sol-atlas-top h2{margin:0;font-size:24px}.sol-atlas-actions{display:flex;gap:8px;flex-wrap:wrap}
.sol-atlas-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;background:radial-gradient(circle at 50% 50%,rgba(111,255,210,.06),transparent 45%),#030706}.sol-atlas-viewport.dragging{cursor:grabbing}.sol-atlas-map{left:0;top:0}
.atlas-float{position:absolute;z-index:8;border:1px solid rgba(255,255,255,.10);background:rgba(10,24,21,.74);backdrop-filter:blur(12px);border-radius:18px;box-shadow:0 16px 60px rgba(0,0,0,.42);padding:12px}
.floating-title{margin:0 0 10px;color:var(--a);font:800 11px ui-monospace,Consolas,monospace;letter-spacing:.14em;text-transform:uppercase}
.atlas-layers{top:104px;left:18px;display:grid;gap:8px;width:112px}.atlas-inspector{top:104px;right:18px;width:322px;max-height:calc(100% - 260px);overflow:auto}.atlas-inspector h3{margin:0 0 8px;color:var(--b)}.atlas-inspector p{color:var(--muted);line-height:1.45}.atlas-mini-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.atlas-chat{position:absolute;z-index:9;left:18px;right:18px;bottom:18px;border:1px solid rgba(111,255,210,.18);background:rgba(8,18,16,.86);border-radius:18px;box-shadow:0 16px 70px rgba(0,0,0,.55);overflow:hidden}.atlas-chat::before{content:"";position:absolute;inset:0;background:rgba(111,255,210,.12);pointer-events:none}.atlas-chat header,.atlas-chat form,.atlas-chat ol{position:relative}
.atlas-chat header{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:12px}.atlas-chat header strong{color:var(--a)}
#solAtlasChatLog{list-style:none;margin:0;padding:8px 12px;display:grid;gap:4px;max-height:118px;overflow:auto}#solAtlasChatLog li{display:grid;grid-template-columns:52px 92px 1fr;gap:8px;align-items:start;color:var(--text);font-size:13px}#solAtlasChatLog time{color:var(--muted);font-family:ui-monospace,Consolas,monospace}#solAtlasChatLog strong{color:var(--b);font-family:ui-monospace,Consolas,monospace;font-size:11px;text-transform:uppercase}
#solAtlasChatForm{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 10px;border-top:1px solid rgba(255,255,255,.08)}#solAtlasChatInput{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.10);border-radius:12px;color:var(--text);padding:10px}
@media(max-width:1050px){.world-layout,.world-header{grid-template-columns:1fr;display:grid}.world-sidebar{order:-1}.world-viewport{height:430px}.sol-atlas-shell{inset:6px}.sol-atlas-top{left:8px;right:8px;top:8px}.atlas-layers{left:8px;top:96px}.atlas-inspector{left:128px;right:8px;top:96px;width:auto}.atlas-chat{left:8px;right:8px;bottom:8px}#solAtlasChatLog li{grid-template-columns:42px 72px 1fr}.world-tile{width:11px;height:11px;font-size:9px}}

/* SOL FORTRESS LEDGER OVERHAUL V1 */
.state-card{margin:14px 0;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(0,0,0,.18)}.state-card .eyebrow{margin-bottom:6px}.state-card strong{font-size:12px}
.tile.dwarf{color:#fff;background:rgba(111,255,210,.22);text-shadow:0 0 8px rgba(111,255,210,.75);font-weight:900}.tile.animal{color:#f1d084;background:rgba(216,181,95,.15);text-shadow:0 0 8px rgba(216,181,95,.55)}
.wm-home{color:#06110f!important;background:linear-gradient(135deg,var(--a),var(--b))!important;font-weight:1000;text-shadow:none!important}.wm-dwarf{color:#fff;background:rgba(111,255,210,.25);text-shadow:0 0 8px rgba(111,255,210,.85);font-weight:900}.wm-animal{color:#f1d084;background:rgba(216,181,95,.18);text-shadow:0 0 8px rgba(216,181,95,.65)}
#liveLedgerPanel.atlas-ledger{position:absolute;z-index:14;left:18px;right:18px;bottom:18px;border:1px solid rgba(111,255,210,.18);background:rgba(8,18,16,.86);border-radius:18px;box-shadow:0 16px 70px rgba(0,0,0,.55);overflow:hidden;transition:transform .22s ease, opacity .22s ease}
#liveLedgerPanel.atlas-ledger::before{content:"";position:absolute;inset:0;background:rgba(111,255,210,.12);pointer-events:none}
#liveLedgerPanel.collapsed{transform:translateY(calc(100% - 42px));opacity:.92}
.ledger-toggle{position:absolute;right:12px;top:8px;z-index:5;min-width:34px;height:28px;padding:0;border-radius:999px}
.atlas-ledger header,.atlas-ledger form,.atlas-ledger ol{position:relative}
.atlas-ledger header{display:flex;justify-content:space-between;gap:10px;padding:9px 54px 9px 12px;border-bottom:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:12px}.atlas-ledger header strong{color:var(--a)}
#liveLedgerLog{list-style:none;margin:0;padding:8px 12px;display:grid;gap:4px;max-height:128px;overflow:hidden}
#liveLedgerLog li{display:grid;grid-template-columns:52px 92px 1fr;gap:8px;align-items:start;color:var(--text);font-size:13px}
#liveLedgerLog time{color:var(--muted);font-family:ui-monospace,Consolas,monospace}
#liveLedgerLog strong{color:var(--b);font-family:ui-monospace,Consolas,monospace;font-size:11px;text-transform:uppercase}
#liveLedgerLog span::after{content:"▌";color:var(--a);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}
#solAtlasChatForm{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 10px;border-top:1px solid rgba(255,255,255,.08);position:relative}
#solAtlasChatInput{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.10);border-radius:12px;color:var(--text);padding:10px}

/* SOL FORTRESS TILE DIVE V2 */
.tile-dive{position:fixed;inset:0;z-index:3000;display:none;background:rgba(0,0,0,.80);backdrop-filter:blur(12px)}.tile-dive.open{display:block}
.tile-dive-shell{position:absolute;inset:22px;border:1px solid rgba(111,255,210,.25);background:rgba(3,10,8,.97);border-radius:28px;overflow:hidden;box-shadow:0 30px 140px rgba(0,0,0,.82)}
.tile-dive-top{position:absolute;z-index:8;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(8,20,17,.70);backdrop-filter:blur(12px)}
.tile-dive-top h2{margin:0 0 4px;font-size:24px}.tile-dive-top p{margin:0;color:var(--muted)}.tile-dive-actions{display:flex;gap:8px;flex-wrap:wrap}
.tile-dive-body{position:absolute;inset:0}.tile-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none;background:radial-gradient(circle at 50% 50%,rgba(216,181,95,.05),transparent 42%),#030706}.tile-viewport.dragging{cursor:grabbing}
.tile-map{--tile-cols:54;position:absolute;left:0;top:0;display:grid;grid-template-columns:repeat(var(--tile-cols), 1fr);gap:2px;width:max-content;padding:12px;transform-origin:0 0;will-change:transform}
.tile-cell{font-family:ui-monospace,Consolas,monospace;display:grid;place-items:center;width:18px;height:18px;border-radius:3px;font-size:13px;line-height:1;background:rgba(255,255,255,.025);user-select:none;cursor:crosshair}.tile-cell.selected{outline:1px solid #fff;box-shadow:0 0 0 2px rgba(111,255,210,.35)}
.tile-dive-panel{position:absolute;z-index:9;border:1px solid rgba(255,255,255,.10);background:rgba(10,24,21,.76);backdrop-filter:blur(12px);border-radius:18px;box-shadow:0 16px 60px rgba(0,0,0,.42);padding:12px}
.tile-dive-left{top:104px;left:18px;width:156px;display:grid;gap:8px}.tile-dive-right{top:104px;right:18px;width:330px;max-height:calc(100% - 280px);overflow:auto}.tile-dive-right h3{margin:0 0 8px;color:var(--b)}.tile-dive-right p{color:var(--muted);line-height:1.45}.tile-mini-stats{margin-top:10px}.tile-layer.active{border-color:var(--a);box-shadow:0 0 0 1px rgba(111,255,210,.18) inset;background:rgba(111,255,210,.1)}
.tile-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.tile-legend .legend-row{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:12px}.tile-legend .tile-cell{position:static;width:18px;height:18px;font-size:12px}
.tile-ledger{position:absolute;z-index:10;left:18px;right:18px;bottom:18px;border:1px solid rgba(111,255,210,.18);background:rgba(8,18,16,.86);border-radius:18px;box-shadow:0 16px 70px rgba(0,0,0,.55);overflow:hidden;transition:transform .22s ease, opacity .22s ease}.tile-ledger::before{content:"";position:absolute;inset:0;background:rgba(216,181,95,.10);pointer-events:none}.tile-ledger.collapsed{transform:translateY(calc(100% - 42px));opacity:.92}
.tile-ledger header,.tile-ledger ol{position:relative}.tile-ledger header{display:flex;justify-content:space-between;gap:10px;padding:9px 54px 9px 12px;border-bottom:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:12px}.tile-ledger header strong{color:var(--a)}
#tileLedgerLog{list-style:none;margin:0;padding:8px 12px;display:grid;gap:4px;max-height:118px;overflow:auto}#tileLedgerLog li{display:grid;grid-template-columns:52px 92px 1fr;gap:8px;align-items:start;color:var(--text);font-size:13px}#tileLedgerLog time{color:var(--muted);font-family:ui-monospace,Consolas,monospace}#tileLedgerLog strong{color:var(--b);font-family:ui-monospace,Consolas,monospace;font-size:11px;text-transform:uppercase}
.tc-water-deep{color:#246d9f;background:rgba(40,100,180,.15)}.tc-water{color:#6fc7ff;background:rgba(40,150,255,.14)}.tc-coast{color:#cdbb8b;background:rgba(210,190,120,.09)}.tc-plains{color:#8fff9e;background:rgba(120,255,150,.07)}.tc-forest{color:#37d46f;background:rgba(30,150,80,.13)}.tc-hills{color:#c0ae7d;background:rgba(180,150,80,.13)}.tc-mountain{color:#cbd5d0;background:rgba(200,220,220,.12)}.tc-snow{color:#f0fbff;background:rgba(230,250,255,.18)}.tc-desert{color:#e0c36d;background:rgba(224,195,109,.11)}.tc-swamp{color:#8bb06a;background:rgba(90,130,70,.15)}.tc-floor{color:#d3c7a0;background:rgba(160,130,80,.14)}
.tc-keep{color:#06110f;background:linear-gradient(135deg,var(--a),var(--b));font-weight:900}.tc-workshop{color:var(--b);background:rgba(216,181,95,.2);font-weight:900}.tc-stockpile{color:#e4d09b;background:rgba(210,180,100,.14)}.tc-camp{color:#ff7670;background:rgba(255,118,112,.18)}.tc-ruin{color:#c4b7a6;background:rgba(170,150,120,.14)}.tc-marker{color:#e58cff;background:rgba(229,140,255,.16)}
.tc-path{color:#ffde7a;background:rgba(255,222,122,.12)}.tc-resource{color:#fff3a5;background:rgba(255,230,130,.16);text-shadow:0 0 8px rgba(255,230,130,.55)}.tc-tree{color:#37d46f;background:rgba(30,150,80,.18)}.tc-flower{color:#ffa3e6;background:rgba(255,160,230,.12)}.tc-rubble{color:#b5bdb8;background:rgba(200,220,220,.08)}
.tc-dwarf{color:#fff;background:rgba(111,255,210,.25);text-shadow:0 0 8px rgba(111,255,210,.85);font-weight:900}.tc-animal{color:#f1d084;background:rgba(216,181,95,.18);text-shadow:0 0 8px rgba(216,181,95,.65)}.tc-raider{color:#ff7670;background:rgba(255,118,112,.18);font-weight:900}
.atlas-mini-actions{grid-template-columns:1fr 1fr 1fr 1fr}
@media(max-width:1050px){.tile-dive-shell{inset:6px}.tile-dive-top{left:8px;right:8px;top:8px}.tile-dive-left{top:118px;left:8px}.tile-dive-right{top:118px;left:174px;right:8px;width:auto}.tile-ledger{left:8px;right:8px;bottom:8px}.tile-cell{width:15px;height:15px;font-size:11px}}

/* SOL FORTRESS STABILITY WORKOVER V6 */
.world-tile.hovered{
  outline:1px solid rgba(255,255,255,.6)!important;
  box-shadow:0 0 0 2px rgba(255,255,255,.10),0 0 12px rgba(255,255,255,.20)!important;
  z-index:3;
  position:relative;
}
.world-tile.selected,
.world-tile.pinned{
  outline:2px solid #fff!important;
  box-shadow:0 0 0 3px rgba(111,255,210,.65),0 0 24px rgba(111,255,210,.9)!important;
  z-index:6;
  position:relative;
}
.world-tile.pinned::after{
  content:"";
  position:absolute;
  inset:-4px;
  border:1px dashed rgba(216,181,95,.95);
  border-radius:5px;
  pointer-events:none;
}
.tile-cell{
  pointer-events:auto!important;
}
.tile-cell.selected{
  outline:2px solid #fff!important;
  box-shadow:0 0 0 3px rgba(111,255,210,.52),0 0 18px rgba(111,255,210,.75)!important;
  z-index:5;
  position:relative;
}
.tc-dwarf,.tc-selected-dwarf,.tc-animal,.tc-raider{
  font-weight:1000;
  position:relative;
  z-index:4;
}
.tc-selected-dwarf{
  color:#06110f!important;
  background:linear-gradient(135deg,#fff,var(--a))!important;
  text-shadow:none!important;
}
.entity-title,.clickable-title{
  cursor:pointer;
}
.entity-title:disabled,
.tile-action-buttons button:disabled{
  opacity:.35;
  cursor:not-allowed;
}

/* SOL FORTRESS RIGHT DRAG KEYBOARD V7 */
.world-viewport,
.sol-atlas-viewport,
.tile-viewport{
  cursor:crosshair!important;
}
.world-viewport.right-dragging,
.sol-atlas-viewport.right-dragging,
.tile-viewport.right-dragging{
  cursor:grabbing!important;
}
.world-viewport::after{
  content:"left click select · right-click drag pan · wheel zoom · arrows move · enter select · E enter tile"!important;
}
.tile-viewport::after{
  content:"left click cell · right-click drag pan · wheel zoom · arrows move cell · M move · G gather · F fight · T tick";
  position:absolute;
  left:14px;
  bottom:12px;
  padding:6px 9px;
  border-radius:999px;
  color:var(--muted);
  font:700 11px ui-monospace,Consolas,monospace;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
  z-index:20;
}
.world-tile.selected,
.world-tile.pinned,
.tile-cell.selected{
  animation: sfSelectionPulse 1.2s ease-in-out infinite alternate;
}
@keyframes sfSelectionPulse{
  from{filter:brightness(1)}
  to{filter:brightness(1.35)}
}

/* SOL FORTRESS UNIT STACK PANEL V8 */
.tile-selection-stack{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.08);
  display:grid;
  gap:8px;
}
.tile-selection-stack .entity-section.compact{
  gap:6px;
  margin-top:2px;
}
.tile-underlay-title{
  border-color:rgba(216,181,95,.28)!important;
  background:rgba(216,181,95,.08)!important;
}
.tile-underlay-detail{
  color:var(--muted);
  font-size:11px;
  line-height:1.35;
  padding:0 2px;
}
.selected-unit-note{
  color:var(--a);
  font-family:ui-monospace,Consolas,monospace;
}
.tile-cell.tc-dwarf.selected,
.tile-cell.tc-selected-dwarf.selected,
.tile-cell.tc-animal.selected,
.tile-cell.tc-raider.selected{
  box-shadow:
    0 0 0 3px rgba(111,255,210,.72),
    0 0 20px rgba(111,255,210,.9),
    inset 0 0 0 1px rgba(255,255,255,.8)!important;
}

/* SOL FORTRESS LANDING REFRAME V9
   Tile-first landing surface: trims old mock panels into a secondary dock and
   brings the homepage closer to the TILE DIVE glass/control language. */
body{
  min-height:100vh;
  background:
    radial-gradient(circle at 18% 8%,rgba(111,255,210,.16),transparent 34%),
    radial-gradient(circle at 78% 12%,rgba(216,181,95,.14),transparent 30%),
    linear-gradient(135deg,#020605 0%,#06110f 48%,#020806 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.16;
  background-image:
    linear-gradient(rgba(111,255,210,.10) 1px,transparent 1px),
    linear-gradient(90deg,rgba(111,255,210,.08) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:radial-gradient(circle at 45% 20%,#000 0%,transparent 76%);
}
.landing-shell{
  width:min(1760px,calc(100% - 28px));
  padding:20px 0 34px;
}
.landing-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:16px;
  margin-bottom:16px;
}
.hero-panel,.command-deed,.landing-board>.panel,.dock-panel{
  border:1px solid rgba(111,255,210,.20);
  background:linear-gradient(180deg,rgba(10,24,21,.88),rgba(5,13,11,.86));
  box-shadow:0 24px 90px rgba(0,0,0,.44), inset 0 1px 0 rgba(255,255,255,.035);
  backdrop-filter:blur(12px);
}
.hero-copy{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  padding:30px 34px;
}
.hero-copy::after{
  content:"";
  position:absolute;
  inset:auto 28px 24px auto;
  width:190px;
  height:190px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(111,255,210,.16),transparent 64%);
  pointer-events:none;
}
.hero-copy h1{
  max-width:960px;
  font-size:clamp(38px,5.6vw,86px);
  line-height:.88;
}
.hero-copy .lede{
  max-width:860px;
  margin:18px 0 0;
  font-size:17px;
}
.hero-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:24px;
  position:relative;
  z-index:1;
}
.primary-action,#enterSelectedTile{
  min-height:46px;
  padding-inline:18px;
}
.primary-action{
  background:linear-gradient(135deg,var(--a),var(--b));
  color:#06110f;
  border:0;
  box-shadow:0 0 30px rgba(111,255,210,.10);
}
.control-ribbon{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:18px;
}
.control-ribbon span{
  border:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.22);
  color:var(--muted);
  border-radius:999px;
  padding:7px 10px;
  font:800 11px ui-monospace,Consolas,monospace;
  letter-spacing:.03em;
}
.command-deed{
  border-radius:28px;
  padding:20px;
}
.command-deed h2{
  font-size:28px;
  margin-bottom:10px;
}
.command-deed dl{
  margin:14px 0;
}
.command-deed dt,.command-deed dd{
  font-size:13px;
}
.landing-board{
  display:grid;
  grid-template-columns:260px minmax(0,1fr) 330px;
  gap:16px;
  align-items:stretch;
  min-height:680px;
}
.command-rail,.landing-map-card,.inspector-card{
  border-radius:24px;
  margin:0;
}
.command-rail{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:14px;
}
.seed-control{
  display:grid;
  gap:6px;
  color:var(--muted);
  font:900 11px ui-monospace,Consolas,monospace;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.seed-control input{
  width:100%;
  min-width:0;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(111,255,210,.18);
  border-radius:12px;
  color:var(--text);
  padding:11px 10px;
}
.compact-layers{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin:0;
  gap:8px;
}
.compact-layers .layer,
.compact-actions button,
.inspector-actions button{
  padding:10px;
  min-height:38px;
  border-radius:11px;
}
.live-card{
  border:1px solid rgba(216,181,95,.16);
  background:rgba(216,181,95,.055);
  border-radius:16px;
  padding:12px;
}
.live-card .eyebrow{
  margin-bottom:6px;
}
.mini-stat-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.mini-stat-grid .stat{
  display:grid;
  gap:4px;
  padding:8px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:12px;
  background:rgba(0,0,0,.16);
}
.mini-stat-grid .stat span{
  font:800 10px ui-monospace,Consolas,monospace;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.mini-stat-grid .stat strong{
  color:var(--b);
  font-size:15px;
}
.compact-actions{
  margin-top:auto;
  grid-template-columns:1fr;
  gap:8px;
}
.landing-map-card{
  padding:14px;
  overflow:hidden;
  position:relative;
}
.landing-map-card::before{
  content:"";
  position:absolute;
  inset:8px;
  border:1px solid rgba(255,255,255,.045);
  border-radius:20px;
  pointer-events:none;
}
.slim-header{
  margin:0 0 12px;
  align-items:start;
}
.slim-header h2{
  margin:0 0 4px;
}
.slim-header .muted{
  margin:0;
  max-width:850px;
}
.landing-world-viewport{
  position:relative;
  min-height:560px;
  overflow:hidden;
  border:1px solid rgba(111,255,210,.13);
  border-radius:20px;
  background:
    radial-gradient(circle at 50% 40%,rgba(216,181,95,.06),transparent 50%),
    #030706;
}
.landing-world-viewport .world-map{
  max-height:none;
  height:100%;
  min-height:560px;
  border:0;
  border-radius:0;
  background:transparent;
}
.inspector-card{
  padding:16px;
  max-height:none;
  overflow:auto;
}
.inspector-card h3{
  margin:4px 0 10px;
  color:var(--b);
  font-size:24px;
}
.inspector-card .muted{
  line-height:1.45;
}
.inspector-card .world-legend{
  grid-template-columns:1fr;
}
.inspector-actions{
  grid-template-columns:1fr;
}
.landing-dock{
  display:grid;
  grid-template-columns:1.1fr 1.4fr .9fr 1fr;
  gap:16px;
  margin-top:16px;
  align-items:start;
}
.dock-panel{
  padding:0;
  overflow:hidden;
  border-radius:20px;
}
.dock-panel summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border-bottom:1px solid rgba(255,255,255,.075);
  color:var(--a);
  font:900 12px ui-monospace,Consolas,monospace;
  letter-spacing:.08em;
}
.dock-panel summary::-webkit-details-marker{display:none}
.dock-panel summary small{
  color:var(--muted);
  font:800 11px ui-monospace,Consolas,monospace;
  letter-spacing:0;
  text-transform:none;
}
.dock-panel:not([open]) summary{
  border-bottom:0;
}
.dock-panel>#map,
.dock-panel>.dock-split,
.dock-panel>pre{
  margin:12px;
}
.raw-dock{
  padding:16px;
}
.raw-dock h2{
  font-size:18px;
}
.raw-dock .muted{
  display:none;
}
.dock-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.dock-split h2{
  font-size:18px;
}
.dock-split ol,
#receipts{
  max-height:310px;
  overflow:auto;
}
.proof-dock pre{
  max-height:320px;
  overflow:auto;
}
#map{
  grid-template-columns:repeat(28,minmax(12px,1fr));
  max-width:100%;
}
.world-viewport::after{
  content:"left click select · right-click drag pan · wheel zoom · E enter tile"!important;
  left:14px;
  bottom:12px;
  padding:6px 9px;
  border-radius:999px;
  color:var(--muted);
  font:700 11px ui-monospace,Consolas,monospace;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
  z-index:20;
}
@media(max-width:1250px){
  .landing-hero,.landing-board,.landing-dock{grid-template-columns:1fr}
  .landing-board{min-height:0}
  .command-rail{display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .compact-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}
  .landing-world-viewport,.landing-world-viewport .world-map{min-height:520px}
  .inspector-card .world-legend{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .landing-shell{width:min(100% - 12px,1760px);padding-top:8px}
  .hero-copy{padding:24px}
  .command-rail,.compact-actions,.dock-split{grid-template-columns:1fr}
  .landing-world-viewport,.landing-world-viewport .world-map{min-height:420px}
  .command-deed dl{grid-template-columns:78px 1fr}
}

/* SOL FORTRESS LANDING TACTICAL STRIP V10
   Map controls live directly under the atlas; chronicle becomes the primary chat feed. */
.hero-copy{
  min-height:100%;
  display:grid;
  align-content:center;
}
.map-underbar{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px 14px;
  align-items:center;
  margin:12px 0 0;
  padding:10px;
  border:1px solid rgba(111,255,210,.15);
  border-radius:18px;
  background:linear-gradient(90deg,rgba(4,10,8,.82),rgba(13,32,27,.58));
}
.map-action-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}
.map-action-row button{
  min-height:42px;
}
.map-tip-row{
  margin:0;
  justify-content:flex-end;
  align-items:center;
}
.map-tip-row span{
  white-space:nowrap;
}
.landing-world-viewport::after{
  display:none!important;
}
.chronicle-chat-card{
  position:relative;
  z-index:2;
  margin-top:12px;
  border:1px solid rgba(111,255,210,.16);
  border-radius:22px;
  background:
    radial-gradient(circle at 8% 0%,rgba(111,255,210,.10),transparent 28%),
    linear-gradient(180deg,rgba(8,18,16,.88),rgba(3,8,7,.82));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  overflow:hidden;
}
.chronicle-chat-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:end;
  padding:13px 15px 10px;
  border-bottom:1px solid rgba(255,255,255,.075);
}
.chronicle-chat-header h2{
  margin:0;
  font-size:20px;
}
.chronicle-chat-header .eyebrow{
  margin-bottom:4px;
}
.chronicle-chat-header>span{
  color:var(--muted);
  font:800 11px ui-monospace,Consolas,monospace;
  white-space:nowrap;
}
.chronicle-chat-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(210px,300px);
  gap:0;
  min-height:178px;
}
.chronicle-chat-log{
  list-style:none;
  margin:0;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:240px;
  overflow:hidden;
}
.chronicle-message,
.chronicle-chat-log .event{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:0;
  border:0;
  background:transparent;
}
.message-avatar{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid rgba(111,255,210,.22);
  background:rgba(111,255,210,.10);
  color:var(--a);
  box-shadow:0 0 24px rgba(111,255,210,.08);
  font-weight:900;
}
.message-bubble,
.chronicle-chat-log .event:not(.chronicle-message){
  min-width:0;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px 16px 16px 4px;
  background:rgba(0,0,0,.24);
  color:var(--text);
  line-height:1.45;
}
.message-bubble time,
.chronicle-chat-log .event time{
  display:block;
  margin:0 0 4px;
  color:var(--a);
  font:800 11px ui-monospace,Consolas,monospace;
  letter-spacing:.02em;
}
.message-bubble span::after{
  content:"▌";
  color:var(--a);
  animation:blink 1s steps(1) infinite;
}
.chronicle-message.complete .message-bubble span::after{
  content:"";
  animation:none;
}
.receipt-feed{
  border-left:1px solid rgba(255,255,255,.075);
  padding:14px;
  background:rgba(0,0,0,.14);
  min-width:0;
}
.receipt-feed h3{
  margin:0 0 10px;
  color:var(--b);
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-family:ui-monospace,Consolas,monospace;
}
.receipt-feed #receipts{
  display:grid;
  gap:8px;
  max-height:190px;
  overflow:hidden;
}
.receipt-feed .receipt{
  padding:9px;
  border-radius:12px;
  background:rgba(216,181,95,.055);
}
.receipt-feed .receipt strong{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.receipt-feed .receipt code{
  font-size:11px;
}
.inspector-card{
  overflow:visible!important;
  align-self:start;
}
.inspector-card .world-legend{
  margin:12px 0;
  gap:6px;
}
.inspector-card .legend-row{
  font-size:11px;
}
.inspector-card .legend-row .world-tile{
  width:16px;
  height:16px;
}
.landing-dock{
  grid-template-columns:1.15fr .9fr 1fr;
}
.world-radial-menu{
  position:fixed;
  z-index:5000;
  left:0;
  top:0;
  width:1px;
  height:1px;
  pointer-events:none;
  opacity:0;
  transform:scale(.9);
  transition:opacity .14s ease, transform .14s ease;
}
.world-radial-menu.open{
  opacity:1;
  transform:scale(1);
}
.world-radial-menu::before{
  content:"";
  position:absolute;
  width:42px;
  height:42px;
  left:-21px;
  top:-21px;
  border-radius:50%;
  border:1px solid rgba(111,255,210,.28);
  background:rgba(3,10,8,.86);
  box-shadow:0 0 32px rgba(111,255,210,.16);
}
.world-radial-menu button{
  position:absolute;
  pointer-events:auto;
  width:82px;
  min-height:34px;
  padding:7px 8px;
  border-radius:999px;
  border-color:rgba(111,255,210,.24);
  background:rgba(8,18,16,.94);
  box-shadow:0 10px 35px rgba(0,0,0,.38);
  font:900 10px ui-monospace,Consolas,monospace;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.world-radial-menu button:nth-child(1){transform:translate(-41px,-76px)}
.world-radial-menu button:nth-child(2){transform:translate(28px,-18px)}
.world-radial-menu button:nth-child(3){transform:translate(-41px,44px)}
.world-radial-menu button:nth-child(4){transform:translate(-110px,-18px)}
@media(max-width:1250px){
  .map-underbar{grid-template-columns:1fr}
  .map-tip-row{justify-content:flex-start}
  .chronicle-chat-layout{grid-template-columns:1fr}
  .receipt-feed{border-left:0;border-top:1px solid rgba(255,255,255,.075)}
  .receipt-feed #receipts{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}
  .landing-dock{grid-template-columns:1fr}
}
@media(max-width:760px){
  .map-action-row{display:grid;grid-template-columns:1fr}
  .map-tip-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .chronicle-chat-header{display:grid;align-items:start}
  .chronicle-chat-header>span{white-space:normal}
  .chronicle-chat-log{max-height:300px}
  .receipt-feed #receipts{grid-template-columns:1fr}
  .world-radial-menu button{width:74px;font-size:9px}
}

/* V10.1: make the chronicle itself span the atlas width; receipts become a strip below it. */
.chronicle-chat-layout{
  grid-template-columns:1fr;
}
.receipt-feed{
  border-left:0;
  border-top:1px solid rgba(255,255,255,.075);
}
.receipt-feed #receipts{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-height:none;
}
@media(max-width:760px){.receipt-feed #receipts{grid-template-columns:1fr}}

/* SOL FORTRESS LOCAL JOB QUEUE V11 */
.tile-action-buttons,
.tile-entities{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.08);
  display:grid;
  gap:10px;
}
.tile-quick-builds{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.action-grid button,
.task-grid button,
.tile-job-queue .job-row,
.tile-radial-menu button{
  min-height:34px;
}
.task-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.task-grid button{
  padding:6px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.tile-job-note{
  color:var(--muted);
  font:700 10px/1.45 ui-monospace,Consolas,monospace;
  border:1px solid rgba(216,181,95,.14);
  background:rgba(216,181,95,.055);
  padding:7px 8px;
  border-radius:10px;
}
.tile-job-queue{
  display:grid;
  gap:7px;
  padding:8px;
  border:1px solid rgba(111,255,210,.16);
  border-radius:12px;
  background:rgba(111,255,210,.045);
}
.tile-job-queue strong{
  color:var(--a);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.tile-job-queue.empty span{
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.tile-job-queue .job-row{
  display:grid;
  gap:2px;
  text-align:left;
  border-color:rgba(255,255,255,.10);
  background:rgba(3,10,8,.55);
}
.tile-job-queue .job-row span{
  color:var(--text);
  font-weight:900;
}
.tile-job-queue .job-row em{
  color:var(--muted);
  font-style:normal;
  font-size:11px;
  font-family:ui-monospace,Consolas,monospace;
}
.entity-section{
  display:grid;
  gap:7px;
  margin-top:8px;
}
.entity-section strong{
  color:var(--b);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.empty-line{
  color:var(--muted);
  font-size:12px;
}
.tc-trap{
  color:#ffef9c;
  background:rgba(255,210,80,.18);
  text-shadow:0 0 8px rgba(255,210,80,.5);
  font-weight:900;
}
.tc-job,
.tc-job-gather,
.tc-job-build{
  color:#06110f;
  background:linear-gradient(135deg,rgba(111,255,210,.95),rgba(216,181,95,.95));
  font-weight:1000;
  box-shadow:0 0 12px rgba(111,255,210,.55);
}
.tc-job-build{
  background:linear-gradient(135deg,rgba(216,181,95,.95),rgba(255,239,156,.95));
}
.tile-radial-menu{
  position:fixed;
  z-index:7000;
  left:0;
  top:0;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
  transform:scale(.86);
  transition:opacity .12s ease, transform .12s ease;
}
.tile-radial-menu.open{
  opacity:1;
  transform:scale(1);
}
.tile-radial-menu::before{
  content:"";
  position:absolute;
  left:-23px;
  top:-23px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(111,255,210,.34);
  background:rgba(3,10,8,.88);
  box-shadow:0 0 34px rgba(111,255,210,.22), inset 0 0 18px rgba(216,181,95,.12);
}
.tile-radial-menu button{
  position:absolute;
  pointer-events:auto;
  left:var(--dx,0px);
  top:var(--dy,0px);
  width:88px;
  padding:7px 8px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  border-color:rgba(111,255,210,.28);
  background:rgba(8,18,16,.96);
  box-shadow:0 12px 34px rgba(0,0,0,.46);
  font:1000 10px ui-monospace,Consolas,monospace;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.tile-radial-menu button:disabled{
  opacity:.34;
  cursor:not-allowed;
  filter:saturate(.55);
}
@media(max-width:1050px){
  .action-grid{grid-template-columns:1fr}
  .task-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile-radial-menu button{width:78px;font-size:9px}
}

/* SOL FORTRESS LOCAL ROSTER + LEDGER SPLIT V12 */
.tile-ledger{
  left:18px;
  right:auto;
  width:calc(50% - 27px);
  max-height:178px;
}
.tile-dwarf-roster{
  position:absolute;
  z-index:10;
  right:18px;
  bottom:18px;
  width:calc(50% - 27px);
  max-height:178px;
  border:1px solid rgba(216,181,95,.18);
  background:rgba(8,18,16,.86);
  border-radius:18px;
  box-shadow:0 16px 70px rgba(0,0,0,.55);
  overflow:hidden;
  backdrop-filter:blur(12px);
}
.tile-dwarf-roster::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(111,255,210,.07);
  pointer-events:none;
}
.tile-dwarf-roster header,
.tile-dwarf-roster .tile-auto-control,
.tile-dwarf-roster-list{
  position:relative;
}
.tile-dwarf-roster header{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:9px 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:var(--muted);
  font-size:12px;
}
.tile-dwarf-roster header strong{
  color:var(--b);
}
.tile-auto-control{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-bottom:1px solid rgba(255,255,255,.07);
  color:var(--muted);
  font:800 11px ui-monospace,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.tile-auto-control input[type="range"]{
  width:100%;
  accent-color:#6fffd2;
}
.tile-auto-control output{
  color:var(--a);
  min-width:44px;
  text-align:right;
}
.tile-dwarf-roster-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  padding:8px 10px 10px;
  max-height:106px;
  overflow:auto;
}
.tile-dwarf-card{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:7px;
  min-height:34px;
  padding:6px 8px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(3,10,8,.48);
  color:var(--text);
  text-align:left;
  cursor:pointer;
}
.tile-dwarf-card:hover,
.tile-dwarf-card.selected{
  border-color:rgba(111,255,210,.55);
  background:rgba(111,255,210,.10);
  box-shadow:0 0 0 1px rgba(111,255,210,.13) inset;
}
.tile-dwarf-card .dwarf-name{
  color:#fff;
  font-size:12px;
  font-weight:1000;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tile-dwarf-card .dwarf-meta{
  display:block;
  margin-top:1px;
  color:var(--muted);
  font:800 10px ui-monospace,Consolas,monospace;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tile-dwarf-card .dwarf-badge{
  color:#06110f;
  background:linear-gradient(135deg,var(--a),var(--b));
  border-radius:999px;
  padding:2px 6px;
  font:1000 10px ui-monospace,Consolas,monospace;
}
.tile-dwarf-card.busy .dwarf-badge{
  background:rgba(216,181,95,.9);
}
.tile-dwarf-card.idle .dwarf-badge{
  background:rgba(111,255,210,.95);
}
.tile-dwarf-card.automated{
  border-color:rgba(216,181,95,.42);
}
.tile-dwarf-card.automated .dwarf-name::after{
  content:" · auto";
  color:var(--b);
  font-size:10px;
}
@media(max-width:1050px){
  .tile-ledger,
  .tile-dwarf-roster{
    left:8px;
    right:8px;
    width:auto;
  }
  .tile-ledger{
    bottom:190px;
  }
  .tile-dwarf-roster{
    bottom:8px;
  }
}
@media(max-width:720px){
  .tile-dwarf-roster-list{
    grid-template-columns:1fr;
  }
}
.tile-dive-right{
  max-height:calc(100% - 318px);
}
@media(max-width:1050px){
  .tile-dive-right{
    max-height:calc(100% - 390px);
  }
}

/* SOL FORTRESS LOCAL DAY RUNNER V1 */
.tile-dive-actions button.running{
  border-color:var(--b);
  background:linear-gradient(135deg,rgba(216,181,95,.22),rgba(111,255,210,.10));
  box-shadow:0 0 0 1px rgba(216,181,95,.25) inset,0 0 24px rgba(216,181,95,.12);
}


/* SOL FORTRESS LOCAL EVENTS + BUILD RADIAL V14 */
.tc-wall{
  color:#d8d8d8;
  background:linear-gradient(135deg,rgba(180,190,186,.32),rgba(80,92,88,.34));
  font-weight:1000;
  text-shadow:0 0 8px rgba(220,230,226,.35);
}
.tc-gate{
  color:#ffdf91;
  background:rgba(160,110,45,.28);
  font-weight:1000;
}
.tc-forge{
  color:#ffb36f;
  background:rgba(255,100,40,.20);
  font-weight:1000;
  text-shadow:0 0 10px rgba(255,120,70,.55);
}
.tc-still{
  color:#b8ffda;
  background:rgba(90,210,150,.17);
  font-weight:1000;
}
.tc-watchpost{
  color:#aee7ff;
  background:rgba(100,180,255,.18);
  font-weight:1000;
}
.tc-trader{
  color:#ffe6a1;
  background:rgba(216,181,95,.24);
  text-shadow:0 0 8px rgba(216,181,95,.65);
  font-weight:1000;
}
.tc-predator{
  color:#ff9b70;
  background:rgba(255,100,70,.22);
  text-shadow:0 0 8px rgba(255,100,70,.65);
  font-weight:1000;
}
.tile-radial-menu[data-mode="build"]::before{
  border-color:rgba(216,181,95,.44);
  box-shadow:0 0 34px rgba(216,181,95,.22), inset 0 0 18px rgba(111,255,210,.12);
}
.tile-radial-menu[data-mode="build"] button{
  border-color:rgba(216,181,95,.34);
}
.tile-radial-menu[data-mode="build"] button:first-child{
  border-color:rgba(111,255,210,.42);
  color:var(--a);
}

/* SOL FORTRESS CONTEXTUAL LOCAL MENUS V15 */
.tile-layer-dock{
  top:104px!important;
  left:18px!important;
  width:auto!important;
  min-width:44px;
  display:grid!important;
  grid-template-columns:1fr;
  gap:7px!important;
  padding:8px!important;
  border-radius:16px!important;
  background:rgba(6,16,14,.62)!important;
}
.tile-layer-dock .floating-title{
  font-size:9px;
  text-align:center;
  margin:0 0 2px;
}
.tile-layer-dock .tile-layer{
  width:34px;
  height:34px;
  min-height:34px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:12px;
  font-size:15px;
  line-height:1;
}
.tile-layer-status{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  justify-self:center;
  max-height:168px;
  color:var(--muted);
  font:900 9px ui-monospace,Consolas,monospace;
  letter-spacing:.08em;
  text-transform:uppercase;
  opacity:.9;
}
.tile-context-menu-shell{
  top:104px!important;
  right:18px!important;
  width:min(360px,calc(100vw - 92px))!important;
  max-height:calc(100% - 318px)!important;
  overflow:hidden!important;
  display:grid;
  grid-template-rows:auto auto 1fr;
  background:rgba(7,18,16,.82)!important;
}
.tile-context-menu-shell h3{
  margin:0 0 5px!important;
  font-size:18px;
  color:var(--b)!important;
}
.tile-context-menu-shell #tileCellInfo{
  margin:0 0 10px!important;
  font-size:12px;
  line-height:1.35!important;
  color:var(--muted)!important;
}
.tile-context-panel{
  overflow:auto;
  display:grid;
  gap:10px;
  padding-right:2px;
}
.context-empty,
.context-note{
  color:var(--muted);
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  border-radius:12px;
  padding:10px;
  font:750 12px/1.45 ui-monospace,Consolas,monospace;
}
.context-summary{
  display:grid;
  gap:5px;
  padding:10px;
  border:1px solid rgba(111,255,210,.14);
  background:rgba(111,255,210,.045);
  border-radius:14px;
}
.context-summary strong{
  color:#fff;
  font-size:13px;
}
.context-summary span{
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.building-summary{
  grid-template-columns:auto 1fr;
  align-items:center;
}
.context-menu-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.context-menu-head strong{
  color:var(--a);
  text-transform:uppercase;
  letter-spacing:.08em;
  font:1000 11px ui-monospace,Consolas,monospace;
}
.context-menu-head button{
  min-height:30px;
  padding:6px 9px;
}
.context-menu-grid,
.context-section,
.context-order-list{
  display:grid;
  gap:8px;
}
.context-menu-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.context-menu-grid button,
.context-section button,
.build-category-tabs button{
  min-height:34px;
  text-align:left;
}
.context-section{
  padding:9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:13px;
  background:rgba(3,10,8,.42);
}
.context-section strong{
  color:var(--b);
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.compact-role-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.compact-role-grid strong{
  grid-column:1/-1;
}
.context-section button.active,
.build-category-tabs button.active{
  border-color:var(--a);
  background:rgba(111,255,210,.10);
  box-shadow:0 0 0 1px rgba(111,255,210,.16) inset;
}
.build-category-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.build-category-tabs button{
  display:grid;
  place-items:center;
  gap:2px;
  padding:7px 4px;
  text-align:center;
  font-size:10px;
}
.build-category-tabs button span{
  display:block;
  font-size:16px;
}
.context-order-list{
  max-height:360px;
  overflow:auto;
}
.context-order-card{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:9px;
  text-align:left;
  padding:9px;
  border-radius:14px;
  min-height:54px;
  background:rgba(3,10,8,.55);
  border:1px solid rgba(255,255,255,.10);
}
.context-order-card .order-glyph{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(216,181,95,.10);
  color:var(--b);
  font:1000 16px ui-monospace,Consolas,monospace;
}
.context-order-card strong{
  display:block;
  color:#fff;
  font-size:12px;
}
.context-order-card em{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-style:normal;
  font-size:10px;
  line-height:1.25;
}
.menu-cost{
  justify-self:end;
  color:var(--a);
  max-width:82px;
  text-align:right;
  font:900 9px/1.25 ui-monospace,Consolas,monospace;
}
.context-order-card:disabled .menu-cost,
.context-menu-grid button:disabled{
  opacity:.5;
}
.tile-legend,
.tile-quick-builds,
.tile-action-buttons,
.tile-entities,
.tile-mini-stats{
  display:none!important;
}
@media(max-width:1050px){
  .tile-layer-dock{top:112px!important;left:8px!important;grid-template-columns:repeat(5,34px);width:max-content!important}
  .tile-layer-status{display:none}
  .tile-context-menu-shell{top:154px!important;left:8px!important;right:8px!important;width:auto!important;max-height:calc(100% - 520px)!important}
  .context-menu-grid{grid-template-columns:1fr}
  .build-category-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* SOL FORTRESS RESOURCE OVERLAY + EXPEDITIONS V16 */
.tc-seen{
  box-shadow:inset 0 0 0 1px rgba(111,255,210,.075);
}
.tc-trail{
  outline:1px solid rgba(111,255,210,.42);
  box-shadow:0 0 10px rgba(111,255,210,.22), inset 0 0 0 1px rgba(216,181,95,.16);
}
.tile-resource-overlay{
  position:absolute;
  z-index:13;
  left:18px;
  bottom:206px;
  width:min(480px,calc(50vw - 30px));
  border:1px solid rgba(111,255,210,.18);
  background:rgba(6,16,14,.84);
  border-radius:18px;
  box-shadow:0 16px 70px rgba(0,0,0,.52);
  overflow:hidden;
  backdrop-filter:blur(12px);
}
.tile-resource-overlay header{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:8px 10px;
  border-bottom:1px solid rgba(255,255,255,.08);
  color:var(--muted);
  font-size:12px;
}
.tile-resource-overlay header strong{
  color:var(--a);
  text-transform:uppercase;
  letter-spacing:.08em;
  font:1000 11px ui-monospace,Consolas,monospace;
}
.resource-toggle{
  width:30px;
  min-height:26px;
  padding:4px;
  border-radius:10px;
}
.tile-resource-overlay-body{
  padding:8px 10px 10px;
  display:grid;
  gap:8px;
}
.resource-chip-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
}
.resource-chip{
  position:relative;
  display:grid;
  grid-template-columns:28px 1fr;
  align-items:center;
  gap:7px;
  min-height:42px;
  padding:6px 7px;
  border-radius:13px;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(3,10,8,.54);
  text-align:left;
  overflow:hidden;
}
.resource-chip:disabled{
  cursor:default;
  opacity:.76;
}
.resource-icon{
  position:relative;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:10px;
  overflow:hidden;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.08);
}
.resource-fill{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:var(--fill,0%);
  opacity:.68;
}
.resource-chip.low .resource-fill{background:#ff5d5d}
.resource-chip.mid .resource-fill{background:#ffb347}
.resource-chip.full .resource-fill{background:#62ff9f}
.resource-glyph{
  position:relative;
  z-index:1;
  color:#fff;
  font:1000 16px ui-monospace,Consolas,monospace;
  text-shadow:0 1px 4px rgba(0,0,0,.85);
}
.resource-text strong,
.resource-text em{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.resource-text strong{
  color:#fff;
  font:950 11px ui-monospace,Consolas,monospace;
}
.resource-text em{
  color:var(--muted);
  font:850 9px ui-monospace,Consolas,monospace;
  font-style:normal;
}
.resource-overlay-footer{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  padding-top:2px;
  color:var(--muted);
  font:900 10px ui-monospace,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.resource-overlay-footer button{
  min-height:26px;
  min-width:28px;
  padding:4px 7px;
  border-radius:999px;
}
.resource-overlay-footer button.active{
  border-color:var(--a);
  color:var(--a);
  background:rgba(111,255,210,.10);
}
.resource-expeditions{
  display:grid;
  gap:3px;
  color:var(--b);
  font:850 10px ui-monospace,Consolas,monospace;
  max-height:56px;
  overflow:auto;
}
.tile-resource-overlay.collapsed{
  width:auto;
  max-width:calc(50vw - 30px);
  border-radius:999px;
}
.tile-resource-overlay.collapsed header{
  display:none;
}
.tile-resource-overlay.collapsed .tile-resource-overlay-body{
  padding:6px 8px;
}
.tile-resource-overlay.collapsed .resource-chip-grid{
  display:flex;
  gap:5px;
  align-items:center;
  overflow-x:auto;
  max-width:430px;
}
.tile-resource-overlay.collapsed .resource-chip{
  display:grid;
  grid-template-columns:24px;
  min-height:28px;
  width:28px;
  padding:2px;
  border-radius:9px;
  flex:0 0 auto;
}
.tile-resource-overlay.collapsed .resource-icon{
  width:24px;
  height:24px;
  border-radius:8px;
}
.tile-resource-overlay.collapsed .resource-glyph{
  font-size:13px;
}
.tile-resource-overlay.collapsed .resource-text,
.tile-resource-overlay.collapsed .resource-overlay-footer,
.tile-resource-overlay.collapsed .resource-expeditions{
  display:none;
}
.tile-dwarf-card.away{
  border-color:rgba(150,190,255,.32);
  background:rgba(70,100,160,.12);
}
.tile-dwarf-card.away .dwarf-badge{
  background:rgba(150,190,255,.92);
}
@media(max-width:1050px){
  .tile-resource-overlay{
    left:8px;
    bottom:338px;
    width:calc(100% - 16px);
    max-width:none;
  }
  .tile-resource-overlay.collapsed{
    max-width:calc(100% - 16px);
  }
  .resource-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
  .tile-resource-overlay{bottom:372px}
  .resource-chip-grid{grid-template-columns:1fr 1fr}
}
.tile-resource-overlay.collapsed header{
  display:flex;
  position:absolute;
  right:3px;
  top:3px;
  z-index:2;
  padding:0;
  border:0;
  background:transparent;
}
.tile-resource-overlay.collapsed header strong{display:none}
.tile-resource-overlay.collapsed .resource-toggle{
  width:22px;
  min-height:22px;
  padding:0;
  font-size:10px;
  opacity:.78;
}
.tile-resource-overlay.collapsed .tile-resource-overlay-body{padding-right:30px}

/* SOL FORTRESS STITCHED NEIGHBOUR REGIONS V17 */
.tc-void{
  opacity:.12;
  background:rgba(0,0,0,.18)!important;
  border-color:rgba(255,255,255,.02)!important;
  color:transparent!important;
  pointer-events:none;
}
.tc-region-remote{
  filter:saturate(.92) brightness(.88);
  position:relative;
}
.tc-region-remote::after{
  content:"";
  position:absolute;
  inset:-1px;
  border:1px solid rgba(216,181,95,.055);
  pointer-events:none;
}
.tc-region-edge{
  box-shadow:inset 0 0 0 1px rgba(216,181,95,.18);
}
.tc-region-remote.tc-trail{
  outline:1px solid rgba(111,255,210,.7);
  box-shadow:0 0 12px rgba(111,255,210,.32), inset 0 0 0 1px rgba(216,181,95,.22);
  z-index:2;
}
.tc-region-remote.tc-seen:not(.tc-trail){
  box-shadow:inset 0 0 0 1px rgba(111,255,210,.12);
}
.remote-summary{
  border-color:rgba(111,255,210,.26)!important;
  background:linear-gradient(135deg,rgba(111,255,210,.08),rgba(216,181,95,.045))!important;
}
.tile-map[data-composite-cols]{
  transition:filter .25s ease;
}

/* SOL FORTRESS RESOURCE MEMORY + ALLOCATION HUD V18 */
.tile-resource-overlay,
.tile-resource-overlay *{
  scrollbar-width:none;
}
.tile-resource-overlay::-webkit-scrollbar,
.tile-resource-overlay *::-webkit-scrollbar{
  display:none;
}
.tile-resource-overlay.collapsed{
  width:auto;
  max-width:none;
  overflow:visible;
}
.tile-resource-overlay.collapsed .tile-resource-overlay-body{
  overflow:visible;
}
.tile-resource-overlay.collapsed .resource-chip-grid{
  overflow:visible;
  max-width:none;
  white-space:nowrap;
}
.resource-allocation-panel{
  display:grid;
  gap:6px;
  padding:8px;
  border:1px solid rgba(255,255,255,.07);
  background:rgba(0,0,0,.18);
  border-radius:14px;
}
.resource-allocation-title{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:end;
  color:var(--muted);
  font:850 10px ui-monospace,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.resource-allocation-title strong{color:var(--a)}
.resource-allocation-row{
  display:grid;
  grid-template-columns:82px minmax(90px,1fr) 62px minmax(78px,.8fr);
  gap:7px;
  align-items:center;
  color:#dffaf1;
  font:850 10px ui-monospace,Consolas,monospace;
}
.resource-allocation-row span:first-child{
  display:flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.resource-allocation-row input{width:100%; accent-color:var(--a)}
.resource-allocation-row output{color:var(--b); white-space:nowrap}
.resource-allocation-row em{
  color:var(--muted);
  font-style:normal;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.resource-glyph.tiny{font-size:12px; min-width:15px; display:inline-block; text-align:center}
.tile-resource-overlay.collapsed .resource-allocation-panel{
  display:none;
}
.tile-resource-overlay.collapsed .resource-chip{
  overflow:hidden;
}
@media(max-width:720px){
  .resource-allocation-row{grid-template-columns:72px 1fr 52px;}
  .resource-allocation-row em{grid-column:1 / -1;}
}

/* SOL FORTRESS CONTINUOUS RUN + EXPLORER ALLOCATION V19 */
.resource-allocation-row.explorer{
  border:1px solid rgba(111,255,210,.14);
  background:linear-gradient(135deg,rgba(111,255,210,.08),rgba(216,181,95,.045));
  border-radius:11px;
  padding:5px 6px;
}
.resource-allocation-row.explorer output{
  color:var(--a);
}
.tile-dive-actions #tileDiveContinuous.running{
  border-color:var(--a);
  color:#eafff9;
  background:linear-gradient(135deg,rgba(111,255,210,.18),rgba(216,181,95,.10));
}

/* SOL FORTRESS TILE DIVE MEMORY CAP + COMPACT HEADER V20 */
.tile-dive-top h2#tileDiveTitle{
  display:none;
}
#tileDiveSubtitle{
  max-width:min(760px,calc(100vw - 520px));
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tile-resource-overlay.collapsed,
.tile-resource-overlay.collapsed .tile-resource-overlay-body,
.tile-resource-overlay.collapsed .resource-chip-grid{
  overflow:visible!important;
  max-width:none!important;
}
.tile-resource-overlay.collapsed{
  width:max-content!important;
}
.tile-resource-overlay.collapsed .resource-chip-grid{
  display:flex!important;
  flex-wrap:nowrap!important;
  width:max-content!important;
}
.tile-resource-overlay.collapsed .resource-chip{
  overflow:hidden!important;
}
@media(max-width:1050px){
  #tileDiveSubtitle{max-width:calc(100vw - 260px)}
}
@media(max-width:720px){
  #tileDiveSubtitle{max-width:calc(100vw - 32px);white-space:normal}
}

/* SOL FORTRESS HUNTING + JOURNEY PERFORMANCE V21 */
.resource-allocation-row.hunter,
.resource-allocation-row.builder,
.resource-allocation-row.stockpile{
  border:1px solid rgba(216,181,95,.13);
  background:linear-gradient(135deg,rgba(216,181,95,.07),rgba(111,255,210,.035));
  border-radius:11px;
  padding:5px 6px;
}
.resource-allocation-row.hunter output{color:#ffcf7b}
.resource-allocation-row.builder output,
.resource-allocation-row.stockpile output{color:#d8b55f}
.tile-radial-menu button[title*="hunt"],
.tile-radial-menu button[title*="Hunt"]{
  border-color:rgba(255,207,123,.32);
}
.tc-region-depth-2{filter:saturate(.84) brightness(.78)}
.tc-region-depth-3{filter:saturate(.72) brightness(.68)}
.tc-region-depth-4,
.tc-region-depth-5,
.tc-region-depth-6{filter:saturate(.60) brightness(.58);opacity:.88}
.tile-map[data-composite-cols]{contain:layout paint style;}
.tile-viewport{overscroll-behavior:none;}

/* SOL FORTRESS TILE DIVE EVENT CARDS V22 */
.tile-event-modal{
  position:absolute;
  inset:0;
  z-index:40;
  display:grid;
  place-items:center;
  padding:28px;
  background:radial-gradient(circle at 50% 42%,rgba(216,181,95,.13),rgba(0,0,0,.70) 46%,rgba(0,0,0,.84));
  backdrop-filter:blur(8px);
  pointer-events:auto;
}
.tile-event-card{
  width:min(680px,calc(100vw - 56px));
  display:grid;
  grid-template-columns:110px 1fr;
  gap:18px;
  padding:22px;
  border:1px solid rgba(216,181,95,.36);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(9,20,17,.96),rgba(20,13,7,.96));
  box-shadow:0 24px 110px rgba(0,0,0,.72), inset 0 0 0 1px rgba(255,255,255,.045);
}
.tile-event-symbol{
  height:110px;
  display:grid;
  place-items:center;
  border-radius:22px;
  border:1px solid rgba(111,255,210,.25);
  background:radial-gradient(circle,rgba(111,255,210,.16),rgba(111,255,210,.035));
  color:var(--a);
  font-size:58px;
  font-family:var(--mono);
  text-shadow:0 0 24px rgba(111,255,210,.22);
}
.tile-event-body .micro{margin:0 0 4px;color:var(--b);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em}
.tile-event-body h3{margin:0 0 6px;font-size:26px;color:var(--text)}
.tile-event-body strong{display:block;color:var(--a);margin-bottom:10px}
.tile-event-body p{margin:0 0 16px;color:var(--muted);line-height:1.55}
.tile-event-actions{display:flex;gap:10px;flex-wrap:wrap}
.tile-event-actions button{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.06);color:var(--text);border-radius:999px;padding:10px 14px;cursor:pointer}
.tile-event-actions button.primary{border-color:rgba(111,255,210,.46);background:rgba(111,255,210,.14);color:var(--a)}
.tile-event-actions button:hover{transform:translateY(-1px);border-color:rgba(216,181,95,.48)}
.tile-event-refugee .tile-event-symbol,.tile-event-migration .tile-event-symbol{color:#f5d78d;border-color:rgba(245,215,141,.32);background:radial-gradient(circle,rgba(245,215,141,.18),rgba(245,215,141,.04))}
.tile-event-raider .tile-event-symbol{color:#ff8f70;border-color:rgba(255,143,112,.38);background:radial-gradient(circle,rgba(255,143,112,.18),rgba(255,143,112,.035))}
@media(max-width:720px){.tile-event-card{grid-template-columns:1fr}.tile-event-symbol{height:78px;font-size:42px}.tile-event-body h3{font-size:21px}}

/* SOL FORTRESS RESOURCE HUD RESPONSIVE SAFETY V23 */
.tile-resource-overlay{
  width:clamp(260px,42vw,430px)!important;
  max-width:calc(100vw - 28px)!important;
  max-height:min(58vh,520px)!important;
  left:clamp(8px,1.4vw,18px)!important;
  bottom:clamp(96px,22vh,206px)!important;
  overflow:hidden!important;
}
.tile-resource-overlay-body{
  max-height:calc(min(58vh,520px) - 42px)!important;
  overflow:auto!important;
  padding:7px 8px 9px!important;
  gap:6px!important;
}
.tile-resource-overlay header{
  padding:6px 8px!important;
  font-size:10px!important;
}
.tile-resource-overlay header strong{
  font-size:9px!important;
  letter-spacing:.07em!important;
}
.resource-chip-grid{
  grid-template-columns:repeat(auto-fit,minmax(88px,1fr))!important;
  gap:5px!important;
}
.resource-chip{
  grid-template-columns:22px minmax(0,1fr)!important;
  min-height:34px!important;
  padding:4px 5px!important;
  border-radius:10px!important;
  gap:5px!important;
}
.resource-icon{
  width:22px!important;
  height:22px!important;
  border-radius:8px!important;
}
.resource-glyph{font-size:13px!important}
.resource-glyph.tiny{font-size:10px!important;min-width:12px!important}
.resource-text strong{font-size:9px!important}
.resource-text em{font-size:8px!important}
.resource-allocation-panel{
  gap:4px!important;
  padding:6px!important;
  border-radius:11px!important;
}
.resource-allocation-title{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:2px!important;
  font-size:8px!important;
  line-height:1.25!important;
}
.resource-allocation-row{
  grid-template-columns:64px minmax(72px,1fr) 42px!important;
  gap:5px!important;
  padding:4px 5px!important;
  font-size:8px!important;
}
.resource-allocation-row em{
  grid-column:1 / -1!important;
  font-size:7px!important;
  max-width:100%!important;
}
.resource-allocation-row output{font-size:8px!important}
.resource-allocation-row input{min-width:0!important}
.resource-overlay-footer{
  gap:4px!important;
  font-size:8px!important;
}
.resource-overlay-footer button{
  min-height:22px!important;
  min-width:24px!important;
  padding:3px 5px!important;
  font-size:9px!important;
}
.resource-expeditions{
  max-height:38px!important;
  font-size:8px!important;
}
.tile-resource-overlay.collapsed{
  width:auto!important;
  max-width:none!important;
  max-height:none!important;
  overflow:visible!important;
}
.tile-resource-overlay.collapsed .tile-resource-overlay-body{
  max-height:none!important;
  overflow:visible!important;
  padding:5px 28px 5px 6px!important;
}
.tile-resource-overlay.collapsed .resource-chip-grid{
  display:flex!important;
  flex-wrap:nowrap!important;
  width:max-content!important;
  max-width:none!important;
  overflow:visible!important;
  gap:4px!important;
}
.tile-resource-overlay.collapsed .resource-chip{
  width:24px!important;
  min-height:24px!important;
  grid-template-columns:20px!important;
  padding:2px!important;
  flex:0 0 auto!important;
}
.tile-resource-overlay.collapsed .resource-icon{
  width:20px!important;
  height:20px!important;
  border-radius:7px!important;
}
.tile-resource-overlay.collapsed .resource-glyph{font-size:11px!important}
.tile-event-card.tile-event-raider .tile-event-symbol{
  color:#ff9d7d;
  text-shadow:0 0 22px rgba(255,93,93,.45);
}
.tile-event-card.tile-event-raider .tile-event-actions button.primary{
  border-color:rgba(255,157,125,.62);
  background:linear-gradient(135deg,rgba(255,93,93,.24),rgba(216,181,95,.12));
}
@media(max-width:900px){
  .tile-resource-overlay{
    width:min(360px,calc(100vw - 18px))!important;
    bottom:clamp(86px,20vh,170px)!important;
  }
  .resource-chip-grid{grid-template-columns:repeat(auto-fit,minmax(78px,1fr))!important}
  .resource-allocation-row{grid-template-columns:58px minmax(66px,1fr) 38px!important}
}
@media(max-width:560px){
  .tile-resource-overlay{
    width:calc(100vw - 16px)!important;
    left:8px!important;
    bottom:82px!important;
    max-height:52vh!important;
  }
  .tile-resource-overlay-body{max-height:calc(52vh - 38px)!important}
  .resource-chip-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* SOL FORTRESS TRAVERSAL TOASTS V24 */
.tile-traversal-toasts{
  position:absolute;
  z-index:34;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  width:min(520px,calc(100% - 28px));
  display:grid;
  gap:8px;
  pointer-events:none;
}
.tile-traversal-toast{
  width:100%;
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto 24px;
  align-items:center;
  gap:8px;
  border:1px solid rgba(111,255,210,.25);
  border-radius:999px;
  padding:8px 8px 8px 10px;
  color:var(--text);
  background:linear-gradient(135deg,rgba(6,18,15,.93),rgba(19,13,7,.91));
  box-shadow:0 14px 50px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.04);
  backdrop-filter:blur(9px);
  cursor:pointer;
  pointer-events:auto;
  text-align:left;
}
.tile-traversal-toast:hover{border-color:rgba(216,181,95,.45);transform:translateY(-1px)}
.tile-traversal-toast .toast-glyph{
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:rgba(111,255,210,.12);
  color:var(--a);
  font:900 15px var(--mono);
}
.tile-traversal-toast .toast-copy{display:grid;gap:1px;min-width:0}
.tile-traversal-toast strong{font:900 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-traversal-toast em{font-style:normal;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-traversal-toast .toast-jump{font:900 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--b);opacity:.86}
.tile-traversal-toast .toast-close{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50%;
  color:var(--muted);
  background:rgba(255,255,255,.06);
  font:900 14px var(--mono);
}
.tile-traversal-toast .toast-close:hover{color:var(--text);background:rgba(255,255,255,.12)}
@media(max-width:640px){
  .tile-traversal-toasts{top:10px;width:calc(100% - 18px)}
  .tile-traversal-toast{grid-template-columns:28px minmax(0,1fr) 22px;padding:7px 7px 7px 8px;border-radius:16px}
  .tile-traversal-toast .toast-jump{display:none}
}

/* SOL FORTRESS DWARF KIT + BARTER SHOP V24 */
.tc-dropped-item{
  color:#f7d98e;
  background:radial-gradient(circle,rgba(247,217,142,.18),rgba(247,217,142,.035));
  text-shadow:0 0 14px rgba(247,217,142,.35);
}
.resource-kit-line{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:6px 10px;
  align-items:start;
  margin:6px 0 8px;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(0,0,0,.16);
  font-size:10px;
}
.resource-kit-line strong{
  color:var(--b);
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.12em;
  white-space:nowrap;
}
.resource-kit-line span{color:var(--muted);line-height:1.35;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.tile-event-card.tile-event-shop{
  width:min(840px,calc(100vw - 44px));
  grid-template-columns:96px 1fr;
}
.barter-shop{
  display:grid;
  gap:12px;
  margin:10px 0 16px;
  padding:12px;
  border:1px solid rgba(216,181,95,.22);
  border-radius:18px;
  background:rgba(0,0,0,.20);
}
.barter-ledgers{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.barter-ledgers div{
  padding:8px 9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.035);
}
.barter-ledgers span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-family:var(--mono)}
.barter-ledgers strong{margin:2px 0 0!important;color:var(--a)!important;font-size:18px}
.barter-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.barter-columns section{
  display:grid;
  gap:6px;
  align-content:start;
  min-width:0;
}
.barter-columns h4{
  margin:0 0 2px;
  color:var(--b);
  font-size:11px;
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.14em;
}
.barter-columns button{
  display:flex;
  justify-content:space-between;
  gap:10px;
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:rgba(255,255,255,.055);
  color:var(--text);
  padding:8px 10px;
  cursor:pointer;
  text-align:left;
}
.barter-columns button:hover{border-color:rgba(111,255,210,.38);background:rgba(111,255,210,.08)}
.barter-columns button em{color:var(--a);font-style:normal;white-space:nowrap}
@media(max-width:760px){
  .tile-event-card.tile-event-shop{grid-template-columns:1fr;width:calc(100vw - 24px);padding:16px;}
  .barter-columns{grid-template-columns:1fr}
  .barter-ledgers{grid-template-columns:1fr 1fr 1fr}
}

/* SOL FORTRESS EVENT AUTO-RESUME TOGGLE V26 */
.tile-auto-resume-toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  background:rgba(0,0,0,.22);
  color:var(--muted);
  font-size:11px;
  letter-spacing:.02em;
  user-select:none;
  cursor:pointer;
  white-space:nowrap;
}
.tile-auto-resume-toggle input{
  width:14px;
  height:14px;
  margin:0;
  accent-color:var(--a);
}
.tile-auto-resume-toggle.active{
  border-color:rgba(111,255,210,.34);
  color:#eafff9;
  background:linear-gradient(135deg,rgba(111,255,210,.12),rgba(216,181,95,.08));
  box-shadow:0 0 0 1px rgba(111,255,210,.08) inset;
}
@media (max-width: 780px){
  .tile-auto-resume-toggle{order:2;font-size:10px;min-height:30px;padding:0 8px}
}

/* SOL FORTRESS DWARF ROSTER CONTEXT MENU V1 */
.tile-dwarf-action-menu{
  position:fixed;
  z-index:9999;
  width:min(232px,calc(100vw - 24px));
  display:none;
  gap:6px;
  padding:8px;
  border:1px solid rgba(111,255,210,.24);
  border-radius:15px;
  background:rgba(5,13,12,.96);
  box-shadow:0 18px 60px rgba(0,0,0,.58),0 0 0 1px rgba(216,181,95,.08) inset;
  backdrop-filter:blur(14px);
}
.tile-dwarf-action-menu.open{display:grid}
.tile-dwarf-action-menu .dwarf-action-head{
  display:grid;
  gap:2px;
  padding:4px 5px 6px;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:2px;
}
.tile-dwarf-action-menu .dwarf-action-head strong{
  color:var(--b);
  font:1000 11px ui-monospace,Consolas,monospace;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tile-dwarf-action-menu .dwarf-action-head span{
  color:var(--muted);
  font:800 10px ui-monospace,Consolas,monospace;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.tile-dwarf-action-menu button{
  min-height:32px;
  width:100%;
  justify-content:flex-start;
  padding:7px 9px;
  border-radius:11px;
  font-size:11px;
}
.tile-dwarf-action-menu button:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.dwarf-inventory-grid{
  grid-template-columns:auto 1fr;
  align-items:start;
  gap:7px 10px;
}
.dwarf-inventory-grid span{
  color:var(--muted);
  font:900 10px ui-monospace,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.dwarf-inventory-grid strong{
  color:#fff;
  font:850 11px ui-monospace,Consolas,monospace;
  text-transform:none;
  letter-spacing:0;
  overflow-wrap:anywhere;
}

/* SOL FORTRESS RESOURCE TILE MEMORY OUTLINES V25 */
.tile-map{
  grid-template-rows:repeat(var(--tile-rows, 34), 1fr);
  grid-auto-flow:unset;
}
.tile-cell.tc-memory-outline,
.tile-cell.tc-memory-center{
  border:1px dashed rgba(111,255,210,.32);
  background:rgba(111,255,210,.035)!important;
  color:rgba(111,255,210,.82)!important;
  box-shadow:inset 0 0 0 1px rgba(216,181,95,.045);
  pointer-events:auto;
}
.tile-cell.tc-memory-outline{
  opacity:.58;
  font-size:8px;
}
.tile-cell.tc-memory-center{
  width:88px;
  min-width:88px;
  height:36px;
  display:flex;
  align-items:center;
  gap:4px;
  padding:2px 5px;
  border-radius:12px;
  z-index:5;
  opacity:.96;
  background:linear-gradient(135deg,rgba(111,255,210,.13),rgba(216,181,95,.07))!important;
  color:var(--a)!important;
  transform:translate(-35px,-9px);
}
.tile-cell.tc-memory-center span{
  font:1000 13px var(--mono);
}
.tile-cell.tc-memory-center em{
  display:block;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--b);
  font:900 8px/1.15 var(--mono);
  font-style:normal;
}
.tile-cell.tc-memory-outline:hover,
.tile-cell.tc-memory-center:hover{
  opacity:1;
  border-color:rgba(216,181,95,.6);
  box-shadow:0 0 14px rgba(111,255,210,.22), inset 0 0 0 1px rgba(216,181,95,.16);
}
.context-summary.remote-summary strong{
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:720px){
  .tile-cell.tc-memory-center{width:70px;min-width:70px;height:32px;transform:translate(-28px,-8px)}
  .tile-cell.tc-memory-center em{font-size:7px}
}

/* Keep memory centre labels from changing grid cell size */
.tile-cell.tc-memory-center{
  width:18px!important;
  min-width:18px!important;
  height:18px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:visible!important;
  transform:none!important;
  position:relative!important;
}
.tile-cell.tc-memory-center em{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,13px);
  width:86px;
  padding:2px 4px;
  border-radius:999px;
  background:rgba(6,16,14,.9);
  border:1px solid rgba(111,255,210,.18);
  box-shadow:0 8px 20px rgba(0,0,0,.35);
  pointer-events:none;
}
.tile-map[data-composite-cols]{
  grid-template-columns:repeat(var(--tile-cols), 18px)!important;
  grid-template-rows:repeat(var(--tile-rows,34), 18px)!important;
}
@media(max-width:1050px){.tile-map[data-composite-cols]{grid-template-columns:repeat(var(--tile-cols), 15px)!important;grid-template-rows:repeat(var(--tile-rows,34), 15px)!important}}

/* SOL FORTRESS IMMERSIVE SINGLE-RENDER ATLAS V30 */
body.tile-dive-active .landing-shell{
  display:none!important;
}
body.tile-dive-active:not(.tile-atlas-open) #solAtlasModal:not(.open),
body.tile-dive-active:not(.tile-atlas-open) #solAtlasMap,
body.tile-dive-active:not(.tile-atlas-open) #worldMap{
  display:none!important;
}
body.tile-atlas-open #tileDiveModal{
  visibility:hidden;
  pointer-events:none;
}
body.tile-atlas-open #solAtlasModal.open{
  z-index:4200;
}
.tile-map-button{
  position:absolute;
  z-index:13;
  top:104px;
  left:18px;
  min-width:92px;
  border:1px solid rgba(111,255,210,.28);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(111,255,210,.16),rgba(216,181,95,.08));
  color:#eafff8;
  box-shadow:0 12px 34px rgba(0,0,0,.34);
}
.tile-dive-left{
  top:152px!important;
}
.world-map[data-known-atlas="true"]{
  --world-rows:3;
  display:grid!important;
  grid-template-columns:repeat(var(--world-cols), 18px)!important;
  grid-template-rows:repeat(var(--world-rows), 18px)!important;
  align-content:start;
  justify-content:start;
  gap:5px!important;
  width:max-content!important;
  min-width:0!important;
  min-height:0!important;
  padding:16px!important;
  background:radial-gradient(circle at 50% 50%,rgba(111,255,210,.08),transparent 46%),rgba(3,7,6,.96)!important;
  border:1px solid rgba(111,255,210,.14)!important;
  border-radius:18px!important;
}
.world-map[data-known-atlas="true"] .world-tile{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  font-size:12px!important;
  border:1px solid rgba(255,255,255,.07);
}
.sol-atlas-map[data-known-atlas="true"]{
  grid-template-columns:repeat(var(--world-cols), 24px)!important;
  grid-template-rows:repeat(var(--world-rows), 24px)!important;
  gap:8px!important;
  padding:22px!important;
}
.sol-atlas-map[data-known-atlas="true"] .world-tile{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  font-size:14px!important;
}
.sol-atlas-top .eyebrow::after{
  content:" · known tiles only";
  color:var(--b);
}
@media(max-width:1050px){
  .tile-map-button{top:118px;left:8px;min-width:76px;padding:8px 9px;font-size:12px}
  .tile-dive-left{top:164px!important;left:8px!important}
}

/* SOL_FORTRESS_EDGE_PREVIEW_V25: a dwarf near a border reveals only a thin strip of the next atlas tile. */
.tc-region-preview{
  opacity:.78;
  filter:saturate(.75) brightness(.72);
}
.tc-region-preview::after{
  border-color:rgba(111,255,210,.16);
}

/* SOL FORTRESS REGION MEMORY / OUTPOST SUPPLY LINES V26 */
.tile-cell.tc-memory-outpost{
  border-style:solid;
  border-color:rgba(216,181,95,.74)!important;
  background:rgba(216,181,95,.105)!important;
  color:#ffe6a0!important;
  box-shadow:0 0 14px rgba(216,181,95,.22), inset 0 0 0 1px rgba(111,255,210,.12);
}
.tile-cell.tc-memory-road{
  border-color:rgba(111,255,210,.52)!important;
  background:linear-gradient(135deg,rgba(111,255,210,.10),rgba(216,181,95,.055))!important;
  color:#9fffe5!important;
}
.tile-cell.tc-memory-road:not(.tc-memory-center){
  opacity:.82;
}
.tile-cell.tc-memory-outpost.tc-memory-center em,
.tile-cell.tc-memory-road.tc-memory-center em{
  border-color:rgba(216,181,95,.32);
  color:#f7d890;
}

/* SOL FORTRESS TILE DIVE PANEL RESIZE + ATLAS OUTLINE V21 */
.tile-dwarf-roster{
  resize:both;
  min-width:320px;
  min-height:130px;
  max-width:min(920px, calc(100vw - 36px));
  max-height:min(62vh, 520px);
}
.tile-dwarf-roster::after{
  content:"↘";
  position:absolute;
  right:8px;
  bottom:5px;
  color:rgba(216,181,95,.55);
  font:900 12px ui-monospace,Consolas,monospace;
  pointer-events:none;
}
.tile-dwarf-roster-list{
  max-height:calc(100% - 76px);
}
.tile-cell.tc-memory-potential{
  opacity:.5;
  border-color:rgba(111,255,210,.18);
  background:rgba(111,255,210,.025);
}
.tile-cell.tc-memory-potential.tc-memory-center{
  opacity:.82;
  border-style:dashed;
  background:rgba(111,255,210,.06);
}
.tile-cell.tc-memory-potential.tc-memory-center em{
  color:rgba(214,246,233,.72);
}
@media(max-width:720px){
  .tile-dwarf-roster{
    resize:vertical;
    min-width:0;
    max-width:calc(100vw - 16px);
  }
}

/* SOL_FORTRESS_DISCOVERED_REGION_ROAD_DEBUG_V1 */
.tile-debug-toggle.active{
  border-color:rgba(111,255,210,.62)!important;
  background:linear-gradient(135deg,rgba(111,255,210,.20),rgba(216,181,95,.10))!important;
  color:#f2fff9!important;
  box-shadow:0 0 0 1px rgba(111,255,210,.18) inset,0 10px 28px rgba(0,0,0,.28);
}
.tile-debug-panel{
  position:absolute;
  z-index:18;
  top:104px;
  right:388px;
  width:min(430px,calc(100vw - 780px));
  max-height:calc(100% - 210px);
  overflow:auto;
  display:none;
  gap:10px;
  padding:12px;
  border:1px solid rgba(111,255,210,.24);
  border-radius:18px;
  background:rgba(5,14,12,.88);
  backdrop-filter:blur(14px);
  box-shadow:0 18px 60px rgba(0,0,0,.48);
  color:#eafff8;
}
.tile-debug-panel.open{display:grid}
.tile-debug-panel header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.tile-debug-panel header strong{
  color:var(--a);
  text-transform:uppercase;
  letter-spacing:.08em;
  font:1000 11px ui-monospace,Consolas,monospace;
}
.tile-debug-panel header button{
  min-height:28px;
  width:32px;
  padding:0;
  border-radius:10px;
}
.tile-debug-grid{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:5px 10px;
  font:850 11px/1.35 ui-monospace,Consolas,monospace;
}
.tile-debug-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.tile-debug-grid b{color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile-debug-actions{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
}
.tile-debug-actions button{
  min-height:31px;
  padding:6px 7px;
  font-size:10px;
}
.tile-debug-jobs{
  display:grid;
  gap:5px;
  padding:9px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.035);
  font:800 11px/1.35 ui-monospace,Consolas,monospace;
}
.tile-debug-jobs strong{color:var(--b);text-transform:uppercase;letter-spacing:.06em}
.tile-debug-jobs span{color:#dffaf1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile-debug-jobs b{color:var(--a)}
.tc-region-roaded{
  filter:saturate(1.08) brightness(.98);
  box-shadow:inset 0 0 0 1px rgba(111,255,210,.18);
}
.tc-region-roaded.tc-region-edge{
  box-shadow:inset 0 0 0 1px rgba(111,255,210,.28),0 0 10px rgba(111,255,210,.10);
}
@media(max-width:1320px){
  .tile-debug-panel{right:18px;top:calc(104px + min(360px, calc(100vh - 420px)));width:min(430px,calc(100vw - 36px));max-height:280px}
}
@media(max-width:720px){
  .tile-debug-panel{left:8px;right:8px;top:216px;width:auto;max-height:260px}
  .tile-debug-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* === SOL FORTRESS TILE ASSET HOOKUP V2 === */
#map .tile[data-asset],
.world-tile[data-asset],
.tile-cell[data-asset]{
  color:transparent !important;
  text-shadow:none !important;
  background-repeat:no-repeat;
  background-position:center;
  background-size:90% 90%;
  image-rendering:pixelated;
  overflow:hidden;
}
.world-tile[data-asset]{background-size:96% 96%}
.tile-cell[data-asset]{background-size:96% 96%}
#map .tile[data-asset="grass"], .world-tile[data-asset="grass"], .tile-cell[data-asset="grass"]{background-image:url("assets/pixel/grass.png")}
#map .tile[data-asset="deep_water"], .world-tile[data-asset="deep_water"], .tile-cell[data-asset="deep_water"]{background-image:url("assets/pixel/deep_water.png")}
#map .tile[data-asset="water"], .world-tile[data-asset="water"], .tile-cell[data-asset="water"]{background-image:url("assets/pixel/water.png")}
#map .tile[data-asset="coast"], .world-tile[data-asset="coast"], .tile-cell[data-asset="coast"]{background-image:url("assets/pixel/coast.png")}
#map .tile[data-asset="forest"], .world-tile[data-asset="forest"], .tile-cell[data-asset="forest"]{background-image:url("assets/pixel/forest.png")}
#map .tile[data-asset="hills"], .world-tile[data-asset="hills"], .tile-cell[data-asset="hills"]{background-image:url("assets/pixel/hills.png")}
#map .tile[data-asset="mountain"], .world-tile[data-asset="mountain"], .tile-cell[data-asset="mountain"]{background-image:url("assets/pixel/mountain.png")}
#map .tile[data-asset="snow"], .world-tile[data-asset="snow"], .tile-cell[data-asset="snow"]{background-image:url("assets/pixel/snow.png")}
#map .tile[data-asset="desert"], .world-tile[data-asset="desert"], .tile-cell[data-asset="desert"]{background-image:url("assets/pixel/desert.png")}
#map .tile[data-asset="swamp"], .world-tile[data-asset="swamp"], .tile-cell[data-asset="swamp"]{background-image:url("assets/pixel/swamp.png")}
#map .tile[data-asset="floor"], .world-tile[data-asset="floor"], .tile-cell[data-asset="floor"]{background-image:url("assets/pixel/floor.png")}
#map .tile[data-asset="road"], .world-tile[data-asset="road"], .tile-cell[data-asset="road"]{background-image:url("assets/pixel/road.png")}
#map .tile[data-asset="dwarf"], .world-tile[data-asset="dwarf"], .tile-cell[data-asset="dwarf"]{background-image:url("assets/pixel/dwarf.png")}
#map .tile[data-asset="dwarf_selected"], .world-tile[data-asset="dwarf_selected"], .tile-cell[data-asset="dwarf_selected"]{background-image:url("assets/pixel/dwarf_selected.png")}
#map .tile[data-asset="animal"], .world-tile[data-asset="animal"], .tile-cell[data-asset="animal"]{background-image:url("assets/pixel/animal.png")}
#map .tile[data-asset="predator"], .world-tile[data-asset="predator"], .tile-cell[data-asset="predator"]{background-image:url("assets/pixel/predator.png")}
#map .tile[data-asset="raider"], .world-tile[data-asset="raider"], .tile-cell[data-asset="raider"]{background-image:url("assets/pixel/raider.png")}
#map .tile[data-asset="trader"], .world-tile[data-asset="trader"], .tile-cell[data-asset="trader"]{background-image:url("assets/pixel/trader.png")}
#map .tile[data-asset="caravan"], .world-tile[data-asset="caravan"], .tile-cell[data-asset="caravan"]{background-image:url("assets/pixel/caravan.png")}
#map .tile[data-asset="food"], .world-tile[data-asset="food"], .tile-cell[data-asset="food"]{background-image:url("assets/pixel/food.png")}
#map .tile[data-asset="wood"], .world-tile[data-asset="wood"], .tile-cell[data-asset="wood"]{background-image:url("assets/pixel/wood.png")}
#map .tile[data-asset="ore"], .world-tile[data-asset="ore"], .tile-cell[data-asset="ore"]{background-image:url("assets/pixel/ore.png")}
#map .tile[data-asset="solsteel"], .world-tile[data-asset="solsteel"], .tile-cell[data-asset="solsteel"]{background-image:url("assets/pixel/solsteel.png")}
#map .tile[data-asset="salt"], .world-tile[data-asset="salt"], .tile-cell[data-asset="salt"]{background-image:url("assets/pixel/salt.png")}
#map .tile[data-asset="herbs"], .world-tile[data-asset="herbs"], .tile-cell[data-asset="herbs"]{background-image:url("assets/pixel/herbs.png")}
#map .tile[data-asset="shells"], .world-tile[data-asset="shells"], .tile-cell[data-asset="shells"]{background-image:url("assets/pixel/shells.png")}
#map .tile[data-asset="tree"], .world-tile[data-asset="tree"], .tile-cell[data-asset="tree"]{background-image:url("assets/pixel/tree.png")}
#map .tile[data-asset="flowers"], .world-tile[data-asset="flowers"], .tile-cell[data-asset="flowers"]{background-image:url("assets/pixel/flowers.png")}
#map .tile[data-asset="rubble"], .world-tile[data-asset="rubble"], .tile-cell[data-asset="rubble"]{background-image:url("assets/pixel/rubble.png")}
#map .tile[data-asset="keep"], .world-tile[data-asset="keep"], .tile-cell[data-asset="keep"]{background-image:url("assets/pixel/keep.png")}
#map .tile[data-asset="home"], .world-tile[data-asset="home"], .tile-cell[data-asset="home"]{background-image:url("assets/pixel/home.png")}
#map .tile[data-asset="settlement"], .world-tile[data-asset="settlement"], .tile-cell[data-asset="settlement"]{background-image:url("assets/pixel/settlement.png")}
#map .tile[data-asset="workshop"], .world-tile[data-asset="workshop"], .tile-cell[data-asset="workshop"]{background-image:url("assets/pixel/workshop.png")}
#map .tile[data-asset="forge"], .world-tile[data-asset="forge"], .tile-cell[data-asset="forge"]{background-image:url("assets/pixel/forge.png")}
#map .tile[data-asset="still"], .world-tile[data-asset="still"], .tile-cell[data-asset="still"]{background-image:url("assets/pixel/still.png")}
#map .tile[data-asset="stockpile"], .world-tile[data-asset="stockpile"], .tile-cell[data-asset="stockpile"]{background-image:url("assets/pixel/stockpile.png")}
#map .tile[data-asset="barracks"], .world-tile[data-asset="barracks"], .tile-cell[data-asset="barracks"]{background-image:url("assets/pixel/barracks.png")}
#map .tile[data-asset="wall"], .world-tile[data-asset="wall"], .tile-cell[data-asset="wall"]{background-image:url("assets/pixel/wall.png")}
#map .tile[data-asset="gate"], .world-tile[data-asset="gate"], .tile-cell[data-asset="gate"]{background-image:url("assets/pixel/gate.png")}
#map .tile[data-asset="watchpost"], .world-tile[data-asset="watchpost"], .tile-cell[data-asset="watchpost"]{background-image:url("assets/pixel/watchpost.png")}
#map .tile[data-asset="camp"], .world-tile[data-asset="camp"], .tile-cell[data-asset="camp"]{background-image:url("assets/pixel/camp.png")}
#map .tile[data-asset="trap"], .world-tile[data-asset="trap"], .tile-cell[data-asset="trap"]{background-image:url("assets/pixel/trap.png")}
#map .tile[data-asset="ruin"], .world-tile[data-asset="ruin"], .tile-cell[data-asset="ruin"]{background-image:url("assets/pixel/ruin.png")}
#map .tile[data-asset="marker"], .world-tile[data-asset="marker"], .tile-cell[data-asset="marker"]{background-image:url("assets/pixel/marker.png")}
#map .tile[data-asset="farm"], .world-tile[data-asset="farm"], .tile-cell[data-asset="farm"]{background-image:url("assets/pixel/farm.png")}
#map .tile[data-asset="worksite"], .world-tile[data-asset="worksite"], .tile-cell[data-asset="worksite"]{background-image:url("assets/pixel/worksite.png")}
#map .tile[data-asset="dropped_items"], .world-tile[data-asset="dropped_items"], .tile-cell[data-asset="dropped_items"]{background-image:url("assets/pixel/dropped_items.png")}
#map .tile[data-asset="raid"], .world-tile[data-asset="raid"], .tile-cell[data-asset="raid"]{background-image:url("assets/pixel/raid.png")}

.order-glyph-asset[data-asset]{color:transparent!important;text-shadow:none!important;background-repeat:no-repeat;background-position:center;background-size:22px 22px;image-rendering:pixelated;min-width:28px;min-height:28px;display:inline-flex;align-items:center;justify-content:center}

#map .tile[data-asset="kitchen"], .world-tile[data-asset="kitchen"], .tile-cell[data-asset="kitchen"], .order-glyph[data-asset="kitchen"]{background-image:url("assets/pixel/kitchen.png")}
#map .tile[data-asset="infirmary"], .world-tile[data-asset="infirmary"], .tile-cell[data-asset="infirmary"], .order-glyph[data-asset="infirmary"]{background-image:url("assets/pixel/infirmary.png")}
#map .tile[data-asset="granary"], .world-tile[data-asset="granary"], .tile-cell[data-asset="granary"], .order-glyph[data-asset="granary"]{background-image:url("assets/pixel/granary.png")}
#map .tile[data-asset="dormitory"], .world-tile[data-asset="dormitory"], .tile-cell[data-asset="dormitory"], .order-glyph[data-asset="dormitory"]{background-image:url("assets/pixel/dormitory.png")}
#map .tile[data-asset="shrine"], .world-tile[data-asset="shrine"], .tile-cell[data-asset="shrine"], .order-glyph[data-asset="shrine"]{background-image:url("assets/pixel/shrine.png")}
#map .tile[data-asset="sawmill"], .world-tile[data-asset="sawmill"], .tile-cell[data-asset="sawmill"], .order-glyph[data-asset="sawmill"]{background-image:url("assets/pixel/sawmill.png")}
#map .tile[data-asset="mason"], .world-tile[data-asset="mason"], .tile-cell[data-asset="mason"], .order-glyph[data-asset="mason"]{background-image:url("assets/pixel/mason.png")}
#map .tile[data-asset="market"], .world-tile[data-asset="market"], .tile-cell[data-asset="market"], .order-glyph[data-asset="market"]{background-image:url("assets/pixel/market.png")}
/* === SOL FORTRESS ORDER GLYPH ASSET HOOKUP V3 === */
.order-glyph[data-asset]{color:transparent!important;text-shadow:none!important;background-repeat:no-repeat;background-position:center;background-size:22px 22px;image-rendering:pixelated;min-width:28px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.order-glyph[data-asset="animal"]{background-image:url("assets/pixel/animal.png")}
.order-glyph[data-asset="barracks"]{background-image:url("assets/pixel/barracks.png")}
.order-glyph[data-asset="camp"]{background-image:url("assets/pixel/camp.png")}
.order-glyph[data-asset="caravan"]{background-image:url("assets/pixel/caravan.png")}
.order-glyph[data-asset="coast"]{background-image:url("assets/pixel/coast.png")}
.order-glyph[data-asset="deep_water"]{background-image:url("assets/pixel/deep_water.png")}
.order-glyph[data-asset="desert"]{background-image:url("assets/pixel/desert.png")}
.order-glyph[data-asset="dormitory"]{background-image:url("assets/pixel/dormitory.png")}
.order-glyph[data-asset="dropped_items"]{background-image:url("assets/pixel/dropped_items.png")}
.order-glyph[data-asset="dwarf"]{background-image:url("assets/pixel/dwarf.png")}
.order-glyph[data-asset="dwarf_selected"]{background-image:url("assets/pixel/dwarf_selected.png")}
.order-glyph[data-asset="farm"]{background-image:url("assets/pixel/farm.png")}
.order-glyph[data-asset="floor"]{background-image:url("assets/pixel/floor.png")}
.order-glyph[data-asset="flowers"]{background-image:url("assets/pixel/flowers.png")}
.order-glyph[data-asset="food"]{background-image:url("assets/pixel/food.png")}
.order-glyph[data-asset="forest"]{background-image:url("assets/pixel/forest.png")}
.order-glyph[data-asset="forge"]{background-image:url("assets/pixel/forge.png")}
.order-glyph[data-asset="gate"]{background-image:url("assets/pixel/gate.png")}
.order-glyph[data-asset="granary"]{background-image:url("assets/pixel/granary.png")}
.order-glyph[data-asset="grass"]{background-image:url("assets/pixel/grass.png")}
.order-glyph[data-asset="herbs"]{background-image:url("assets/pixel/herbs.png")}
.order-glyph[data-asset="hills"]{background-image:url("assets/pixel/hills.png")}
.order-glyph[data-asset="home"]{background-image:url("assets/pixel/home.png")}
.order-glyph[data-asset="infirmary"]{background-image:url("assets/pixel/infirmary.png")}
.order-glyph[data-asset="keep"]{background-image:url("assets/pixel/keep.png")}
.order-glyph[data-asset="kitchen"]{background-image:url("assets/pixel/kitchen.png")}
.order-glyph[data-asset="marker"]{background-image:url("assets/pixel/marker.png")}
.order-glyph[data-asset="marker_alt"]{background-image:url("assets/pixel/marker_alt.png")}
.order-glyph[data-asset="market"]{background-image:url("assets/pixel/market.png")}
.order-glyph[data-asset="mason"]{background-image:url("assets/pixel/mason.png")}
.order-glyph[data-asset="mountain"]{background-image:url("assets/pixel/mountain.png")}
.order-glyph[data-asset="ore"]{background-image:url("assets/pixel/ore.png")}
.order-glyph[data-asset="predator"]{background-image:url("assets/pixel/predator.png")}
.order-glyph[data-asset="raid"]{background-image:url("assets/pixel/raid.png")}
.order-glyph[data-asset="raider"]{background-image:url("assets/pixel/raider.png")}
.order-glyph[data-asset="resource_pile"]{background-image:url("assets/pixel/resource_pile.png")}
.order-glyph[data-asset="road"]{background-image:url("assets/pixel/road.png")}
.order-glyph[data-asset="road_alt"]{background-image:url("assets/pixel/road_alt.png")}
.order-glyph[data-asset="rubble"]{background-image:url("assets/pixel/rubble.png")}
.order-glyph[data-asset="ruin"]{background-image:url("assets/pixel/ruin.png")}
.order-glyph[data-asset="salt"]{background-image:url("assets/pixel/salt.png")}
.order-glyph[data-asset="satchel"]{background-image:url("assets/pixel/satchel.png")}
.order-glyph[data-asset="sawmill"]{background-image:url("assets/pixel/sawmill.png")}
.order-glyph[data-asset="settlement"]{background-image:url("assets/pixel/settlement.png")}
.order-glyph[data-asset="shells"]{background-image:url("assets/pixel/shells.png")}
.order-glyph[data-asset="shrine"]{background-image:url("assets/pixel/shrine.png")}
.order-glyph[data-asset="snow"]{background-image:url("assets/pixel/snow.png")}
.order-glyph[data-asset="solsteel"]{background-image:url("assets/pixel/solsteel.png")}
.order-glyph[data-asset="still"]{background-image:url("assets/pixel/still.png")}
.order-glyph[data-asset="stockpile"]{background-image:url("assets/pixel/stockpile.png")}
.order-glyph[data-asset="swamp"]{background-image:url("assets/pixel/swamp.png")}
.order-glyph[data-asset="trader"]{background-image:url("assets/pixel/trader.png")}
.order-glyph[data-asset="trap"]{background-image:url("assets/pixel/trap.png")}
.order-glyph[data-asset="tree"]{background-image:url("assets/pixel/tree.png")}
.order-glyph[data-asset="wall"]{background-image:url("assets/pixel/wall.png")}
.order-glyph[data-asset="watchpost"]{background-image:url("assets/pixel/watchpost.png")}
.order-glyph[data-asset="water"]{background-image:url("assets/pixel/water.png")}
.order-glyph[data-asset="wood"]{background-image:url("assets/pixel/wood.png")}
.order-glyph[data-asset="workshop"]{background-image:url("assets/pixel/workshop.png")}
.order-glyph[data-asset="worksite"]{background-image:url("assets/pixel/worksite.png")}

/* === SOL FORTRESS BUILD GHOST OUTLINES V1 === */
.tile-cell.tc-build-ghost{
  position:relative;
  outline:1px dashed rgba(255,222,122,.86);
  box-shadow:inset 0 0 0 2px rgba(255,222,122,.18),0 0 12px rgba(255,222,122,.16);
}
.tile-cell.tc-build-ghost::before{
  content:"";
  position:absolute;
  inset:2px;
  border:1px solid rgba(255,255,255,.46);
  border-radius:4px;
  pointer-events:none;
  opacity:.78;
}
.tile-cell.tc-build-ghost::after{
  content:"＋";
  position:absolute;
  right:-4px;
  top:-5px;
  min-width:11px;
  height:11px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:rgba(255,222,122,.94);
  color:#1b1203;
  font:1000 9px/1 ui-monospace,Consolas,monospace;
  box-shadow:0 0 8px rgba(255,222,122,.45);
  pointer-events:none;
}
.tile-cell.tc-build-ghost-working,
.tile-cell.tc-build-ghost-building,
.tile-cell.tc-build-ghost-building_outpost,
.tile-cell.tc-build-ghost-outpost_travel{
  outline-style:solid;
  animation:sf-build-ghost-pulse 1.25s ease-in-out infinite alternate;
}
.tile-cell.tc-build-ghost-remote{
  outline-color:rgba(111,255,210,.9);
  box-shadow:inset 0 0 0 2px rgba(111,255,210,.16),0 0 14px rgba(111,255,210,.16);
}
.tile-cell.tc-build-ghost-remote::after{
  content:"⌂";
  background:rgba(111,255,210,.96);
  color:#06110f;
}
@keyframes sf-build-ghost-pulse{
  from{filter:saturate(1) brightness(1)}
  to{filter:saturate(1.25) brightness(1.18)}
}

/* === SOL FORTRESS REMOTE OUTPOST PLAN V2 === */
.tile-cell.tc-planned-building{
  opacity:.76;
  filter:saturate(.85) brightness(1.18);
}
.tile-cell.tc-planned-building::before{
  content:"";
  position:absolute;
  inset:2px;
  border:1px dashed rgba(111,255,210,.74);
  border-radius:4px;
  pointer-events:none;
}

/* SOL_FORTRESS_DEBUG_INSPECTOR_V2 */
.tile-debug-panel{
  width:min(760px,calc(100vw - 420px));
  max-height:calc(100% - 160px);
  right:350px;
  background:linear-gradient(180deg,rgba(6,18,16,.94),rgba(3,9,8,.96));
}
.tile-debug-panel .tile-debug-layout{
  display:grid;
  grid-template-columns:minmax(260px,.85fr) minmax(300px,1.15fr);
  gap:10px;
  min-height:0;
}
.tile-debug-panel .tile-debug-column{
  display:grid;
  gap:10px;
  align-content:start;
  min-width:0;
}
.tile-debug-section{
  display:grid;
  gap:6px;
  min-width:0;
}
.tile-debug-section h4,
.tile-debug-detail h4{
  margin:0;
  color:var(--b);
  font:1000 11px/1.2 ui-monospace,Consolas,monospace;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.tile-debug-list{
  display:grid;
  gap:5px;
  max-height:170px;
  overflow:auto;
  padding-right:2px;
}
.tile-debug-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2px 8px;
  align-items:center;
  width:100%;
  min-height:42px;
  padding:7px 8px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:12px;
  background:rgba(255,255,255,.035);
  color:#eafff8;
  text-align:left;
  cursor:pointer;
}
.tile-debug-row:hover,
.tile-debug-row:focus-visible{
  border-color:rgba(111,255,210,.46);
  background:rgba(111,255,210,.075);
}
.tile-debug-row.needs-attention{
  border-color:rgba(255,210,120,.35);
  background:linear-gradient(135deg,rgba(255,210,120,.08),rgba(255,118,112,.055));
}
.tile-debug-row strong{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:#fff;
  font:950 11px/1.25 ui-monospace,Consolas,monospace;
}
.tile-debug-row span{
  grid-column:1/-1;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:rgba(223,250,241,.82);
  font:800 10.5px/1.25 ui-monospace,Consolas,monospace;
}
.tile-debug-row em{
  color:var(--a);
  font:900 10px/1.2 ui-monospace,Consolas,monospace;
  white-space:nowrap;
  font-style:normal;
}
.tile-debug-empty{
  display:block;
  padding:9px;
  border:1px dashed rgba(255,255,255,.12);
  border-radius:12px;
  color:var(--muted);
  font:800 11px/1.3 ui-monospace,Consolas,monospace;
}
.tile-debug-detail{
  display:grid;
  gap:7px;
  min-width:0;
  align-content:start;
  padding:9px;
  border:1px solid rgba(111,255,210,.16);
  border-radius:16px;
  background:rgba(0,0,0,.22);
}
.tile-debug-detail button{
  justify-self:start;
  min-height:28px;
  padding:5px 9px;
  font-size:10px;
}
.tile-debug-detail pre{
  margin:0;
  max-height:460px;
  overflow:auto;
  padding:10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.34);
  color:#dffaf1;
  font:800 10.5px/1.35 ui-monospace,Consolas,monospace;
  white-space:pre-wrap;
  word-break:break-word;
}
.tile-debug-export{
  width:100%;
  min-height:96px;
  resize:vertical;
  padding:9px;
  border:1px solid rgba(216,181,95,.28);
  border-radius:12px;
  background:rgba(0,0,0,.32);
  color:#fff6d7;
  font:800 10px/1.35 ui-monospace,Consolas,monospace;
}
.tile-debug-panel .tile-debug-actions{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.tile-debug-panel .tile-debug-actions button{
  white-space:nowrap;
}
@media(max-width:1320px){
  .tile-debug-panel{right:18px;width:min(760px,calc(100vw - 36px));max-height:calc(100% - 170px)}
}
@media(max-width:860px){
  .tile-debug-panel .tile-debug-layout{grid-template-columns:1fr}
  .tile-debug-panel .tile-debug-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile-debug-detail pre{max-height:260px}
}

/* SOL_FORTRESS_DEBUG_BUTTON_HARDENING_V1 */
.tile-debug-panel{
  z-index:80!important;
}
.tile-debug-toggle{
  position:relative;
  z-index:90;
}
.tile-debug-error{
  display:grid;
  gap:6px;
  padding:10px;
  border:1px solid rgba(255,118,112,.35);
  border-radius:14px;
  background:rgba(255,118,112,.10);
  color:#ffe6e4;
  font:800 11px/1.35 ui-monospace,Consolas,monospace;
}
.tile-debug-error strong{
  color:#ffaaa5;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.tile-debug-error span{
  white-space:pre-wrap;
  word-break:break-word;
}

/* SOL_FORTRESS_OUTPOST_ROAD_CART_V1 */
.tile-cell.tc-cart{color:#ffe3a0;background:rgba(216,181,95,.18);font-weight:900;text-shadow:0 0 8px rgba(216,181,95,.5)}
#map .tile[data-asset="cart"], .world-tile[data-asset="cart"], .tile-cell[data-asset="cart"], .order-glyph[data-asset="cart"]{background-image:url("assets/pixel/cart.png")}

/* === SOL FORTRESS INTERACTION PERFORMANCE PASS V1 === */
.tile-viewport{
  contain:layout paint style;
  overscroll-behavior:none;
}
.tile-map{
  transform:translate3d(0,0,0) scale(1);
  transform-origin:0 0;
  backface-visibility:hidden;
  will-change:transform;
  contain:layout paint style;
}
.tile-viewport.dragging .tile-map{
  cursor:grabbing;
  transition:none!important;
}
.tile-viewport.dragging .tile-cell{
  pointer-events:none;
  transition:none!important;
}
.tile-viewport.dragging .tile-cell:not(.selected){
  box-shadow:none!important;
  text-shadow:none!important;
}

/* SOL_FORTRESS_FISHING_HUT_V1 */
.tile-cell.tc-fishing-hut{color:#9be8ff;background:rgba(80,170,210,.16);font-weight:900;text-shadow:0 0 8px rgba(80,190,230,.55)}
#map .tile[data-asset="fish"], .world-tile[data-asset="fish"], .tile-cell[data-asset="fish"], .order-glyph[data-asset="fish"]{background-image:url("assets/pixel/fish.png")}
#map .tile[data-asset="fishing_hut"], .world-tile[data-asset="fishing_hut"], .tile-cell[data-asset="fishing_hut"], .order-glyph[data-asset="fishing_hut"]{background-image:url("assets/pixel/fishing_hut.png")}
.inventory-ledger{margin-top:10px;padding:9px;border:1px solid rgba(111,255,210,.14);border-radius:14px;background:rgba(255,255,255,.035)}
.inventory-ledger h4{margin:0 0 8px;color:var(--a);font:1000 11px/1.2 ui-monospace,Consolas,monospace;text-transform:uppercase;letter-spacing:.08em}
.inventory-ledger>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:6px}
.inventory-ledger-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center;padding:7px 8px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(0,0,0,.18);font:800 10.5px/1.25 ui-monospace,Consolas,monospace}
.inventory-ledger-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#eafff8}.inventory-ledger-row strong{color:#fff}.inventory-ledger-row em{grid-column:1/-1;color:var(--muted);font-style:normal}.inventory-ledger-row.empty-stock{opacity:.55}.inventory-ledger-row.has-stock{border-color:rgba(111,255,210,.2)}
.improved-barter-shop .barter-columns button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}.improved-barter-shop .barter-columns button b{color:#fff;font-weight:1000}.improved-barter-shop .barter-columns button:disabled{opacity:.48;cursor:not-allowed}


/* SOL FORTRESS BARTER COMPACT SCROLL V2 */
.tile-event-card.tile-event-shop{
  max-height:min(86vh,820px);
  overflow:hidden;
}
.tile-event-card.tile-event-shop .tile-event-body{
  min-height:0;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto auto auto minmax(0,1fr);
}
.tile-event-card.tile-event-shop .tile-event-body>p:last-of-type{
  margin-bottom:10px;
}
.tile-event-actions-top{
  margin:0 0 10px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.tile-event-actions-top button.primary{
  box-shadow:0 0 0 1px rgba(111,255,210,.12),0 8px 24px rgba(0,0,0,.20);
}
.tile-event-card.tile-event-shop .barter-shop{
  min-height:0;
  max-height:min(54vh,520px);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.tile-event-card.tile-event-shop .barter-columns{
  min-height:0;
}
.tile-event-card.tile-event-shop .barter-columns section{
  min-height:0;
}
@media(max-width:760px){
  .tile-event-card.tile-event-shop{max-height:calc(100vh - 24px)}
  .tile-event-card.tile-event-shop .barter-shop{max-height:50vh}
}
