/* Shared RU/EN order: shelter, horizontal controls, equal chat columns, quests. */
.app .game-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.app .world-panel{grid-column:1;grid-row:1;width:100%;align-self:stretch}
.app .sidebar{grid-column:1;grid-row:2;contain:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,30%);align-items:start;overflow:visible;min-height:0;border-radius:10px;scrollbar-gutter:auto}
.app .sidebar .tabs{grid-column:1/-1;padding:4px 8px;gap:4px}.app .sidebar .tabs button{flex:0 1 160px;font-size:11px;padding:5px 10px;min-height:28px}
.app .sidebar .side-content{grid-column:1;grid-row:2;padding:10px 12px;min-width:0;max-height:224px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.app .sidebar .settings{grid-column:2;grid-row:2;display:flex;flex-wrap:wrap;align-content:flex-start;gap:5px;margin:0;padding:10px;border-left:1px solid var(--border);height:100%}.app .settings>button{flex:1 1 90px;font-size:10px;line-height:1.35;padding:5px 7px;min-height:27px;margin:0}.app .settings>.language-switch{flex:1 0 100%;justify-content:flex-end;margin:0}.app .settings>.language-switch button{padding:4px 7px;min-width:32px;min-height:26px;font-size:10px}
.app .side-content h2{font-size:16px;margin:0 0 4px}.app .side-content .eyebrow{font-size:9px;margin-bottom:3px}.app .side-content .description{font-size:11px;line-height:1.45;margin-bottom:5px}.app .side-content .detail-row{font-size:11px;margin:4px 0}.app .side-content .room-icon{float:left;width:28px;height:28px;font-size:17px;border-radius:6px;margin:0 8px 4px 0}.app .side-content .primary{padding:4px 10px;min-height:28px;font-size:11px;margin-top:5px;width:auto}.app .side-content .subcost{text-align:left;font-size:10px;margin-top:3px}
.app #room-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 14px;align-items:start}.app #room-panel>.room-icon{display:none}.app #room-panel>.eyebrow{grid-column:1}.app #room-panel>h2{grid-column:2/4}.app #room-panel>.description{grid-column:1/-1}.app #room-panel>.candidate-label{grid-column:1/3;margin:0;font-size:11px}.app #candidate{margin-top:3px;padding:4px;font-size:11px;min-width:0}.app #room-panel>.worker-controls{margin:0;padding:4px 0;gap:5px}.app #room-panel>.worker-controls button{height:27px;min-width:27px;width:27px;font-size:18px}.app #room-panel>.worker-controls span{font-size:11px}.app #room-panel>.demolition{margin-top:5px;padding-top:5px}.app #room-panel .demolition #demolish{width:auto;padding:5px 9px;font-size:11px}.app #room-panel .demolition .description{margin-top:4px}
.app #build-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 8px}.app #build-panel>h2,.app #build-panel>.description,.app #build-panel>.eyebrow{grid-column:1/-1}.app .build-card{padding:6px;margin:0;font-size:11px;min-width:0}.app .build-card strong{font-size:11px}.app .build-card small{font-size:10px}
.app .resident-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 10px;max-height:150px}.app .resident{margin:0;font-size:11px}.app .resident small{font-size:10px}.app .assignment-modes{width:min(280px,100%);margin:5px 0}.app .assignment-modes button{padding:5px;font-size:11px}.app .daily-reward{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.app .daily-reward>div{padding-bottom:6px}.app .daily-reward strong{font-size:14px}.app .daily-reward details{grid-column:1/-1}.app .shop-products{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.app .game-shop{margin-top:8px;padding-top:8px}.app .shop-product{padding:8px}.app .shop-product h3{font-size:13px}.app .shop-product p{font-size:11px}
.app .missions .section-title{margin:12px 0 7px;gap:8px}.app .missions .section-title h2{font-size:15px;margin-top:2px}.app .missions .section-title small{font-size:8px}.app .quest-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.app .quest{padding:8px;border-radius:7px;gap:3px 8px;min-width:0}.app .quest h3{font-size:12px}.app .quest p{font-size:10px}.app .quest .reward{font-size:12px}.app .quest progress{margin-top:3px}.app .quest button{padding:3px;font-size:10px;min-height:24px}.app footer{margin-top:12px}
/* Compact social controls override the full-width .primary game buttons. */
.social-panel{margin:12px 0;padding:10px;border-radius:10px;font-size:12px;line-height:1.35;scroll-margin-top:10px;overflow-anchor:none}.social-panel header{gap:8px;margin-bottom:7px}.social-panel h2{font-size:15px}.social-panel h3{font-size:12px;line-height:1.4;margin:0}.social-panel p{margin:3px 0}.social-panel>p:empty{display:none}
.social-panel button,.social-dialog:not(.social-viewer) button{font-size:11px;line-height:1.35;min-height:24px;padding:3px 8px;border-radius:5px;margin:0;width:auto;display:inline-block}.social-panel .primary{margin:0;width:auto;display:inline-block}.social-panel header button{flex:none}
.social-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:400px;gap:10px;align-items:stretch}.social-column{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0;height:100%;padding:8px;background:#10242b;border:1px solid #304a52;border-radius:7px;overflow:hidden}
.social-alliance{flex:none;max-height:65px;overflow:auto;scrollbar-width:thin;display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px}.social-alliance h3{font-weight:600}.social-alliance>p{margin:0;font-size:10px;color:#9bb5bb}.social-members{display:flex;flex-wrap:wrap;gap:3px;flex-basis:100%;max-height:30px;overflow:auto;scrollbar-width:thin}.social-members span{padding:1px 4px;border-radius:3px;font-size:10px}
.social-chat{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0;min-height:0}.social-chat>h3,.social-chat>button,.social-compose{flex:none}.social-chat>button{align-self:flex-start}.social-chat>p{margin:0;font-size:11px;max-height:30px;overflow:auto;flex:none}.social-chat>p:empty{display:none}
.social-messages{flex:1;height:auto;min-height:48px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:4px;border-radius:5px;overflow-anchor:none}.social-message{padding:5px;font-size:12px;line-height:1.4}.social-message small{font-size:10px;line-height:1.3}.social-message p{margin:3px 0}.social-message button{font-size:10px;min-height:22px;padding:2px 6px;margin-right:4px}.social-message audio{display:block;width:100%;max-width:280px;height:32px;margin:4px 0}.social-message textarea{display:block;width:100%;min-height:48px;max-height:80px}
.social-compose{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px}.social-compose textarea{grid-column:1/-1;display:block;width:100%;height:54px;min-height:54px;max-height:54px;resize:none;font:12px/16px system-ui,sans-serif}.social-emoji{display:flex;flex-wrap:wrap;gap:2px}.social-emoji button{font-size:12px;padding:2px 5px;min-width:24px}.social-compose>div:last-child{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:4px;max-height:68px;overflow:auto}.social-compose>div:last-child:empty{display:none}.social-compose audio{width:100%;height:30px;max-width:280px}
.social-panel textarea,.social-panel select,.social-panel input,.social-dialog input{min-width:0;max-width:100%;border-radius:5px;padding:3px 5px;font-size:12px}.social-panel select,.social-panel input{min-height:26px}.social-panel input[type=number]{width:82px}
.social-aid{flex:none;margin:0;border-top:1px solid #405b60;padding-top:4px;min-width:0;font-size:11px}.social-aid summary{cursor:pointer;font-size:12px;line-height:24px;color:#e4c587}.social-aid summary:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.social-aid-body{max-height:116px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}.social-aid-body>select,.social-aid-body>input,.social-aid-body>button{margin:2px 4px 2px 0}.social-aid-history{max-height:56px;overflow:auto;scrollbar-width:thin}.social-aid-history p{font-size:10px}
.social-dialog:not(.social-viewer){border-radius:9px;padding:12px;width:min(420px,calc(100vw - 20px));min-width:0;max-width:calc(100vw - 20px);max-height:90dvh;font-size:12px}.social-dialog:not(.social-viewer) h2{font-size:16px;margin:0 30px 8px 0}.social-dialog:not(.social-viewer) input{font:12px/1.4 system-ui;min-height:28px;margin-right:5px}.social-dialog p{margin:6px 0;overflow-wrap:anywhere}.social-dialog p button{margin-left:6px!important}.social-dialog:not(.social-viewer) .social-close{min-width:28px;min-height:28px;font-size:22px;padding:0 5px}
@media(max-width:760px){.app .sidebar{grid-template-columns:minmax(0,1fr)}.app .sidebar .settings{grid-column:1;grid-row:3;border-left:0;border-top:1px solid var(--border);padding:7px;gap:4px}.app .settings>button{flex:1 1 80px;min-height:30px}.app .settings>.language-switch{flex:0 0 auto}.app .sidebar .side-content{padding:8px;max-height:220px}.app #room-panel{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px}.app #room-panel>h2{grid-column:2}.app #room-panel>.candidate-label{grid-column:1/-1}.app .resident-list,.app .shop-products{grid-template-columns:repeat(2,minmax(0,1fr))}.app #build-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.app .floor-navigation{gap:4px;padding:5px;flex-wrap:wrap}.app .floor-navigation button{padding:4px;font-size:10px}.app .floor-navigation span{min-width:100px;font-size:10px}.app .missions .section-title h2{font-size:13px}.app .quest{padding:6px;display:flex;flex-direction:column;align-items:stretch}.app .quest h3{font-size:11px}.app .quest p{font-size:10px}.app .quest .reward{font-size:11px}.app .quest button{margin-top:auto;min-height:27px}.app .quest-grid{gap:5px}}
@media(max-width:600px){.social-columns{grid-template-columns:minmax(0,1fr);grid-auto-rows:400px;gap:8px}.social-panel{padding:8px;margin:8px 0}.social-panel header{flex-wrap:wrap}.social-column{padding:6px}.social-panel button{min-height:28px}.social-compose{grid-template-columns:minmax(0,1fr) auto}.social-emoji{grid-column:1/-1}.social-compose textarea{font-size:13px}.social-compose>div:last-child{max-height:66px}.social-panel header button{font-size:11px}}
/* Alliance actions and presence share one restrained toolbar. */
.social-panel header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 8px}.social-panel header>h2{grid-column:1/-1;font-size:13px;line-height:18px}.social-panel .social-alliance{grid-column:1;min-width:0;gap:4px;max-height:60px}.social-panel .social-alliance:not(:has(h3)){flex-wrap:nowrap}.social-panel .social-alliance>button{white-space:nowrap;font-size:10px;min-height:20px;padding:2px 7px;line-height:14px}.social-panel header .social-presence{grid-column:2;background:transparent;color:#c3d1cc;border-color:transparent;border-radius:3px;font-size:10px;line-height:14px;min-height:20px;padding:2px 5px;white-space:nowrap}.social-panel header .social-presence[aria-pressed=true]{color:#a7d7b8}.social-panel header .social-presence:hover{background:#213b40}.social-panel .social-compose>button,.social-panel .social-aid-body>button{min-height:20px;font-size:10px;line-height:14px;padding:2px 7px}.social-panel .social-compose textarea{height:40px;min-height:40px;max-height:40px;line-height:16px}.social-panel>.social-aid{margin-top:6px}.social-aid-body{max-height:116px}
@media(max-width:360px){.social-panel header{column-gap:3px}.social-panel .social-alliance>button{font-size:9px;padding:2px 3px}.social-panel header .social-presence{font-size:9px;padding:2px}.social-panel .social-alliance{gap:3px}}
.social-compose>div:last-child{order:-1}
/* Only alliance join/create regain prominence; chat controls stay compact. */
.social-panel header{align-items:center}.social-panel .social-alliance>button{font-size:15px;line-height:20px;min-height:40px;padding:8px 14px}.social-panel header .social-presence{align-self:center}
@media(max-width:600px){.social-panel header{grid-template-columns:minmax(0,1fr)}.social-panel .social-alliance{grid-column:1;max-height:80px}.social-panel .social-alliance>button{flex:1 1 0;min-width:0;font-size:12px;min-height:38px;padding:7px 5px}.social-panel header .social-presence{grid-column:1;justify-self:end}}
.social-panel .social-compose>div:last-child button{min-height:20px;font-size:10px;line-height:14px;padding:2px 7px}
/* The introductory quest line is readable without enlarging the quest cards. */
.app .missions .section-title small{display:block;font-size:15px;line-height:1.3;font-weight:600;letter-spacing:.7px;color:#b9c9c5}.app .missions .section-title>div{min-width:0}
@media(max-width:600px){.app .missions .section-title small{font-size:13px;letter-spacing:.3px}.app .missions .section-title>span{flex-shrink:0}}
/* Visual audit: one shared outer-panel height and usable internal viewports. */
.app{--utility-panel-height:336px}.app .sidebar{height:var(--utility-panel-height);grid-template-rows:auto minmax(0,1fr);overflow:hidden}.app .sidebar .side-content{height:100%;max-height:none;min-height:0;align-content:start}.app .sidebar .settings{height:100%;min-height:0;overflow:auto;scrollbar-width:thin}
.app .social-panel{height:var(--utility-panel-height);display:flex;flex-direction:column;overflow:hidden}.social-panel>header,.social-panel>p,.social-panel>.social-aid{flex:none}.social-panel>p{max-height:30px;overflow:auto}.social-columns{flex:1;min-height:0;grid-auto-rows:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.social-column{overflow:auto;scrollbar-width:thin}.social-chat{min-height:0}.social-messages{min-height:42px}
.app .resident-list{max-height:none;overflow:visible;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:start}.app .resident{min-width:0;align-items:flex-start;padding:6px;border:1px solid #2e4651;border-radius:6px;overflow-wrap:anywhere}.app .resident>div{min-width:0;flex:1}.app .avatar{flex:0 0 29px;width:29px;height:29px;min-width:29px;aspect-ratio:1;border-radius:50%}.app .live-dot{flex:0 0 6px;width:6px;height:6px;min-width:6px;aspect-ratio:1}.app .room-icon,.app .resource i,.app .balance-logo{flex-shrink:0}.app .build-card{align-items:flex-start}.app .build-card>i{flex:none}.app .build-card>div{min-width:0;overflow-wrap:anywhere}.app .detail-row{gap:8px}.app .detail-row>b{text-align:right}.app .daily-reward>div{min-width:0;overflow-wrap:anywhere}.app .shop-products{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.app .shop-product{min-width:0;overflow-wrap:anywhere}.app .side-content .demolition #demolish{white-space:normal}
.social-compose>.primary:not(:disabled),.social-compose>.social-record:not(:disabled),.social-compose>div:last-child>.primary:not(:disabled){background:#efc47d;border-color:#efc47d;color:#30291b;font-weight:650;box-shadow:0 1px 3px #0004}.social-compose>.primary:not(:disabled):hover,.social-compose>.social-record:not(:disabled):hover{background:#ffdda0;border-color:#ffdda0}.social-compose>.social-record[aria-pressed=true]:not(:disabled){background:#f4a590;border-color:#ffc3b3;color:#382018}.social-compose button:disabled{background:#243941;border-color:#3b525b;color:#9baeb5;opacity:.7;box-shadow:none}.social-compose textarea:disabled{background:#13282f;color:#9baeb5;opacity:.75}
.app .settings #sound{border-color:#d8ae68;color:#efd49f;font-weight:650;background:#263d43}.app .settings #sound::before{content:'♫';display:inline-block;margin-right:5px;font-size:13px}.app .settings #sound[aria-pressed=true]{background:#efc47d;border-color:#efc47d;color:#30291b}.app .settings #sound:hover{box-shadow:inset 0 0 0 1px #ffdda0}.app .settings button:focus-visible,.social-panel button:focus-visible{outline:2px solid #ffdda0;outline-offset:1px}
.social-panel .social-aid-open{font-size:11px;min-height:24px;padding:3px 7px;border-color:#6e755e;color:#efd49f}.social-aid-dialog .social-aid-body{max-height:min(420px,65dvh);overflow:auto;font-size:12px}.social-aid-dialog select,.social-aid-dialog input{min-width:0;max-width:100%;background:#173139;color:#e8ede5;border:1px solid #59756e;padding:5px;border-radius:5px;font-size:12px}.social-aid-dialog input{width:90px}.social-aid-dialog .social-aid-history{max-height:170px}.social-aid-dialog .social-aid-history p{font-size:11px}
@media(max-width:760px){.app{--utility-panel-height:432px}.app .sidebar{grid-template-rows:auto minmax(0,1fr) auto}.app .sidebar .side-content{height:100%;max-height:none}.app .sidebar .settings{height:auto;max-height:160px}.app .resident-list{grid-template-columns:minmax(0,1fr)}.app .shop-products{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
@media(max-width:600px){.app .social-panel{overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain}.social-columns{flex:none;grid-template-rows:repeat(2,240px);grid-auto-rows:240px}.social-column{height:240px}.app #build-panel{grid-template-columns:minmax(0,1fr)}.app .daily-reward{grid-template-columns:minmax(0,1fr)}.app .shop-products{grid-template-columns:minmax(0,1fr)}.social-emoji button{flex:0 0 26px;width:26px;min-width:26px;padding:2px}.app .side-content .description{overflow-wrap:anywhere}}
@media(max-width:760px){.app .sidebar .tabs{gap:2px;padding:4px}.app .sidebar .tabs button{font-size:10.5px;padding:5px 4px;min-height:30px}.app #room-panel>.worker-controls{grid-column:1/-1;justify-content:flex-start;gap:12px}}
@media(max-width:600px){.app .top .resources{grid-template-columns:repeat(3,minmax(0,1fr))}.app .top .resource.score{grid-column:span 2}.app .top .resource{min-width:0;justify-content:flex-start;padding:5px 7px}.app .top .resource>div{min-width:0}.app .top .resource strong{font-size:13px;overflow-wrap:anywhere}.app .top .resource .balance-logo{flex:none}}
@media(max-width:360px){.app .top .resource strong{font-size:12px}}
.social-panel:focus-visible,.social-messages:focus-visible,.app .side-content:focus-visible{outline:2px solid #efc47d;outline-offset:-2px}

/* Final compact alliance toolbar and two-line message editor. */
.social-panel .social-alliance:not(:has(h3)){width:100%}.social-panel .social-alliance>button{flex:1 1 0;min-width:0;font-size:15px;line-height:18px;height:22px;min-height:22px;padding:1px 5px}.social-message{font-size:11px}.social-panel .social-compose textarea{box-sizing:border-box;height:40px;min-height:40px;max-height:40px;line-height:16px;padding-top:3px;padding-bottom:3px;border-width:1px}
.social-emoji button:not(:disabled){background:#efc47d;border-color:#efc47d;color:#30291b;box-shadow:0 1px 3px #0004}.social-emoji button:not(:disabled):hover{background:#ffdda0}

.social-panel button:not(:disabled),.social-dialog button:not(:disabled),.app .settings button:not(:disabled){cursor:pointer}.social-panel button:disabled{cursor:not-allowed}
.social-panel .social-alliance>button{height:20px;min-height:20px;line-height:18px;padding:0 5px}.social-panel .social-alliance{max-width:calc((100% - 10px)/2)}
.social-compose>.primary:not(:disabled),.social-compose>.social-record:not(:disabled),.social-compose>div:last-child>.primary:not(:disabled){background:#196da1;border-color:#67caff;color:#fff}.social-compose>.primary:not(:disabled):hover,.social-compose>.social-record:not(:disabled):hover{background:#207eb8;border-color:#9edfff}.social-compose>.social-record[aria-pressed=true]:not(:disabled){background:#a73b32;color:#fff}
.social-panel .social-compose textarea{background:#203e4c;border-color:#90b8c9;color:#fff;cursor:text;opacity:1}.social-panel .social-compose textarea:focus{outline:2px solid #efc47d;outline-offset:1px;border-color:#ffdda0;background:#284b5b}.social-panel .social-compose textarea:disabled{background:#192e37;color:#9baeb5;cursor:wait}
@media(max-width:600px){.social-panel .social-alliance{max-width:none}.social-panel .social-alliance>button{white-space:normal;height:auto;min-height:20px}.social-panel .social-alliance{align-items:stretch}}

@media(min-width:601px){.social-panel header{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px}.social-panel .social-alliance{max-width:none}.social-panel header .social-presence{justify-self:end}}

/* Button colour refinement; geometry stays unchanged. */
.social-compose>.primary:not(:disabled),.social-compose>.social-record:not(:disabled),.social-compose>div:last-child>.primary:not(:disabled){background:#087ac1;border-color:#8edcff;color:#fff;box-shadow:0 0 0 1px #37b8ff55,0 2px 5px #0005}.social-compose>.primary:not(:disabled):hover,.social-compose>.social-record:not(:disabled):hover{background:#086bac;border-color:#d3f2ff}.social-compose>.social-record[aria-pressed=true]:not(:disabled){background:#c23f38;color:#fff}
.social-emoji button:not(:disabled),.social-emoji button:not(:disabled):hover{background:#fff;border-color:#ccdce3;color:#172c37}.social-emoji button:not(:disabled):hover{border-color:#138bd3;box-shadow:0 0 0 1px #138bd3}
.social-panel .social-alliance>button:not(:disabled){background:#087ac1;border-color:#8edcff;color:#fff;opacity:1;box-shadow:0 1px 4px #0004}.social-panel .social-alliance>button:not(:disabled):hover{background:#086bac;border-color:#d3f2ff}
