:root{--navy:#111a39;--ink:#ecf1ff;--muted:#b9c6e4;--edge:#354879;--gold:#f7d27c;--sky:#86bbce;--mint:#76d8ae;--red:#f39a8d}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0a1128}body{font-family:Arial,Helvetica,sans-serif;color:var(--ink)}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.52}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.hidden{display:none!important}
.game{width:min(100%,580px);height:100dvh;min-height:715px;display:flex;flex-direction:column;margin:0 auto;overflow:hidden;background:var(--navy);box-shadow:0 0 80px #000a;border-inline:1px solid #35456e}
.topbar{height:61px;flex-shrink:0;background:#121d3e;display:flex;align-items:center;justify-content:space-between;padding:6px 10px;gap:10px;border-bottom:2px solid #3c5285}.brand{display:flex;gap:9px;align-items:center;min-width:0}.brand-logo{width:43px;height:43px;display:grid;place-items:center;background:#202d5b;border:2px solid #52699d;flex-shrink:0}.brand-logo img{width:33px;height:35px;object-fit:contain}.brand-text{display:flex;flex-direction:column;gap:4px;min-width:0}.brand-text b{font-size:14px;letter-spacing:.04em;line-height:1.02}.brand-text small{font-size:9px;letter-spacing:.03em;color:var(--muted);white-space:nowrap}.wallet{min-width:113px;background:#23335d;color:#fff;border:1px solid #8195c0;padding:5px 9px;display:grid;gap:1px;text-align:right;line-height:1.15;flex-shrink:0}.wallet span,.wallet small{font-size:10px;letter-spacing:.05em}.wallet strong{display:flex;align-items:center;justify-content:flex-end;gap:6px;font-size:22px;color:var(--gold)}.wallet small{color:#a6d6ef}.wallet .coin{width:15px;height:15px;border-radius:50%;background:var(--gold);box-shadow:inset 0 0 0 3px #c48a25;display:inline-block;flex:0 0 auto}
.dashboard{height:102px;flex-shrink:0;padding:9px 12px;background:#202e55;border-bottom:3px solid #435c8c}.dashboard-top{display:flex;justify-content:space-between;align-items:start;gap:10px}.dashboard-top .level{min-width:0;flex:1}.dashboard small{display:block;font-size:10px;font-weight:bold;letter-spacing:.07em;color:#c5d4f2}.level b{font-size:clamp(15px,3.75vw,19px);line-height:1.2;display:block;max-width:100%;overflow-wrap:normal}.shift{text-align:right;font-size:11px;font-weight:bold;color:#dae6fb;line-height:1.6;flex-shrink:0;min-width:112px}.shift span{display:block}.shift b{color:var(--gold)}.stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:8px}.stat>span{display:flex;justify-content:space-between;gap:2px;font-size:10px;font-weight:bold;white-space:nowrap}.stat b{color:white}.track{height:10px;background:#0e1834;border:2px solid #3c5080;overflow:hidden;margin-top:5px}.track i{display:block;height:100%;width:0%;transition:width .14s linear}.track .exp{background:var(--gold)}.track .energy{background:var(--mint)}.track .rep{background:#95bcfa}
.world{position:relative;flex:1;min-height:415px;background:linear-gradient(180deg,#aebcce,#aebcce 18%,#8697b8 19%,#8f9cb5 55%,#85778c 56%,#887b91 100%);overflow:hidden;display:flex;flex-direction:column;border-bottom:3px solid #29375b}.world:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 42px,#647b9c40 43px 45px)}
.world-header{height:39px;flex-shrink:0;position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:5px 11px;background:#263864d9;border-bottom:2px solid #526c95}.sign{display:flex;align-items:center;gap:8px;font-weight:bold;font-size:10px;max-width:78%}.sign img{width:28px;height:28px;object-fit:contain}.world-label{font-size:10px;font-weight:bold;color:#e7d5a2}
.boss-office{position:relative;flex-shrink:0;height:58px;background:linear-gradient(90deg,#879bb4 0%,#a9b5ca 45%,#94a7bc 100%);display:flex;justify-content:flex-end;align-items:center;padding-right:12px;border-bottom:5px solid #657594;gap:9px;overflow:hidden}.boss-office:before{content:"";position:absolute;left:11px;top:7px;height:37px;width:90px;background:#c6d7e2;border:4px solid #425271;box-shadow:inset 25px 0 #abc9dc,inset -25px 0 #abc9dc}.boss-sign{background:#1b2850;border:1px solid #5b6f98;padding:5px 8px;font-weight:900;font-size:10px;color:#ffe3a2;z-index:1}.boss-office a{background:#e3ebf2;color:#1e3156;font-size:9px;padding:6px 8px;text-decoration:none;font-weight:bold;border:1px solid #788ba7;z-index:1}.boss-portrait{height:45px;width:40px;position:relative;z-index:1}.boss-head{width:23px;height:20px;background:#e5b28a;border:3px solid #443447;position:absolute;left:8px;top:2px;box-shadow:4px 0 #443447}.boss-body{height:26px;width:36px;background:#40577d;position:absolute;bottom:0;left:2px;border:3px solid #2d3956}
.office-grid{position:relative;z-index:1;flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));column-gap:6px;row-gap:2px;padding:3px 7px 1px}
.desk{position:relative;isolation:isolate;border:1px solid #7182a1;background:#ffffff0a;min-width:0;min-height:0;color:#132749;outline:0}.desk::before{content:"";position:absolute;left:4%;right:4%;height:9px;bottom:19px;background:#4a4365;box-shadow:0 -3px #312f51}.desk::after{content:"";position:absolute;left:8%;right:8%;height:7px;bottom:26px;background:#d6ad85;box-shadow:0 16px #514263}.desk.owned{background:#3759781a}.desk.hero{background:#f1d07f21;border:2px solid var(--gold);box-shadow:inset 0 0 0 2px #18274b,0 0 0 1px #fac978}.desk.issuer{border-color:#fff0b0;box-shadow:inset 0 0 0 2px #fff0b0}.desk.sub-target{outline:3px dashed #fff1ab;outline-offset:-5px;background:#e7dba53f;z-index:4}.desk.sub-working{background:#a5eecb22}.desk .desk-label{position:absolute;top:4px;left:7px;right:4px;text-align:left;color:#273858;font-size:clamp(8px,2.3vw,10px);font-weight:900;text-shadow:0 1px #d6dde6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.desk.hero .desk-label{color:#fff;text-shadow:1px 1px #1a2447}.desk.owned .desk-label{color:#0f4059}
.portrait{position:absolute;left:50%;top:22%;width:45px;height:55px;transform:translateX(-50%);pointer-events:none}.hair,.face,.shirt{display:block;position:absolute}.hair{width:34px;height:16px;background:#363049;left:5px;top:0;box-shadow:3px -3px #332b41, -3px 5px #363049}.face{left:9px;top:12px;width:28px;height:23px;background:#e9b993;border:4px solid #bb886f;border-top:0}.face:after{content:"";position:absolute;top:8px;left:4px;width:4px;height:3px;background:#29374d;box-shadow:10px 0 #29374d}.shirt{width:42px;height:23px;left:1px;top:35px;background:#83abb6;border:4px solid #607b91}.desk[data-rank="1"] .hair,.desk[data-rank="3"] .hair{background:#644b48;box-shadow:2px -4px #644b48,-3px 4px #644b48}.desk[data-rank="1"] .shirt{background:#b4a4cc;border-color:#7c7c9e}.desk[data-rank="2"] .shirt{background:#d2969a;border-color:#986e8a}.desk[data-rank="3"] .shirt{background:#b0c58e;border-color:#77906f}.desk[data-rank="4"] .shirt{background:#82bbc2;border-color:#55818f}.desk[data-rank="5"] .shirt{background:#d5b881;border-color:#9e8359}.desk.hero .shirt{background:#f2c272;border-color:#b77f5c}.desk .worktop{position:absolute;bottom:29px;left:10%;width:80%;height:37px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.laptop{height:35px;width:65px;display:flex;align-items:center;justify-content:center;background:#1b2850;border:4px solid #243458;box-shadow:inset 0 0 0 2px #536ca3,0 5px #28344e}.laptop img{width:28px;height:28px;object-fit:contain;display:block}.mug{background:#f6ead0;width:10px;height:13px;position:absolute;left:calc(50% + 39px);bottom:0;border:2px solid #806d68}.mug:after{content:"";position:absolute;right:-6px;top:2px;width:4px;height:5px;border:2px solid #806d68}.name-tag{position:absolute;bottom:1px;right:5px;background:#263457;color:#ffe1a9;padding:3px 5px;font-size:9px;font-weight:900;pointer-events:none}.desk.hero .name-tag{background:var(--gold);color:#263452}.desk.owned .name-tag{background:#9edac7;color:#1b3a46}.desk.hero:active{filter:brightness(1.15)}.desk.owned:active{filter:brightness(1.1)}.desk .work-icon{position:absolute;top:27px;right:10px;font-size:10px;background:#ffe4ae;padding:3px 4px;color:#2a3454;font-weight:900}.desk.sub-working .work-icon{background:#9ee3c3}
.incoming{position:absolute;z-index:12;width:min(210px,56%);padding:10px;background:#fff2d4;color:#1d3056;border:3px solid #253358;box-shadow:5px 5px 0 #121a35}.incoming-title{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:9px;font-weight:900}.incoming-title b{font-size:12px;background:#263459;color:#fff6e5;padding:3px 5px}.incoming>b{font-size:15px;display:block;line-height:1.13;margin-top:6px}.incoming .track{border-color:#bcb3a8;background:#d8c5b1;height:8px}.incoming .track i{background:#ee8c7c}.incoming button{margin-top:7px;width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:#284e76;color:white;font-size:11px;font-weight:900;padding:9px 8px;min-height:34px}.incoming button:active{background:#326d99}
.shelf{flex-shrink:0;min-height:63px;background:#2a344f;border-top:3px solid #657693;display:flex;align-items:center;gap:8px;padding:5px 9px}.shelf-label{font-size:10px;font-weight:900;color:#ffe4aa;white-space:nowrap}.shelf-label b{color:white}.books{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;align-items:center;padding:4px}.book{position:relative;min-width:34px;width:34px;height:43px;border:3px solid #1d2742;background:#e4be8b;color:#3a2d32;box-shadow:3px 2px 0 #182241;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:900}.book:after{content:"";position:absolute;right:3px;top:5px;bottom:5px;border-right:3px solid #fff6e5}.book.working{background:#bce3cf}.book.selected{outline:3px solid #fff1ab;outline-offset:0;transform:translateY(-2px)}.book small{position:absolute;bottom:-3px;left:1px;font-size:7px;background:#1e3050;color:white;padding:1px 3px}.no-books{color:#c8d2e6;font-size:10px;font-style:italic}.shelf>small{font-size:10px;color:#dce4f5;max-width:115px;line-height:1.25}
.work-panel{flex-shrink:0;height:117px;padding:9px 12px 7px;background:#162344;border-top:2px solid #43577c}.work-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.work-header>div{min-width:0}.work-header small{display:block;font-size:9px;color:#bdc9e3;font-weight:bold;letter-spacing:.06em}.work-header b{display:block;font-size:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.work-header>span{font-size:13px;color:#fce0a5;font-weight:900}.work-track{height:12px}.work-track i{background:#8fdac0}#feedback{margin:6px 0 0;color:#e0e8f5;font-size:10px;line-height:1.3;min-height:16px}.delegate-info{font-size:10px;color:#f9d791;margin-top:4px;font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{height:43px;flex-shrink:0;display:grid;grid-template-columns:repeat(3,1fr);background:#141f3d;border-top:2px solid #364d7e}.nav button{color:#dce5f8;background:none;border:0;border-right:1px solid #2c4166;font-size:10px;font-weight:900}.nav button span{color:#f1c879}
.toast-layer{position:fixed;z-index:60;top:max(10px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(92vw,410px);display:flex;flex-direction:column;gap:9px;pointer-events:none}.achievement{background:#17274a;border:3px solid #f6ce7c;box-shadow:0 5px 0 #0b1230;padding:11px 13px;display:flex;align-items:center;gap:10px;animation:ach-pop 3.5s both}.achievement>span{font-size:28px}.achievement small{display:block;font-size:9px;color:#f7d27c;font-weight:900;letter-spacing:.06em}.achievement b{font-size:14px;display:block;margin-top:3px}.achievement em{display:block;color:#c8d9f3;font-size:10px;margin-top:3px;font-style:normal}@keyframes ach-pop{0%{opacity:0;transform:translateY(-100px)}15%,78%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-40px)}}
.promotion{position:fixed;inset:0;z-index:80;background:#03050a;display:grid;place-items:center;color:white;animation:prom-in .2s both}.promo-card{text-align:center;padding:20px}.promo-card>span{display:block;color:#aab4cf;font-size:13px;font-weight:bold;letter-spacing:.18em}.promo-card b{display:block;font-size:clamp(28px,8vw,42px);line-height:1.05;margin:20px 0;color:#fff}.promo-card #promoSub{letter-spacing:.06em;font-size:12px;color:#f6d68e}@keyframes prom-in{from{opacity:0}to{opacity:1}}
.overlay{position:fixed;inset:0;z-index:90;background:#090f24e8;display:grid;place-items:center;padding:14px}.dialog{max-width:455px;width:100%;background:#223153;border:3px solid #f1cf80;padding:21px;color:#fff;box-shadow:6px 7px #070c1c}.dialog-flag{font-size:10px;font-weight:900;color:#ffe096;letter-spacing:.14em}.dialog h2{font-size:26px;line-height:1.08;margin:10px 0}.dialog p{color:#e2ebfa;font-size:14px;line-height:1.55;white-space:pre-line}.dialog-choices{display:grid;gap:9px;margin-top:15px}.dialog-choices button{border:0;background:#f2ce8f;color:#1e2c51;padding:12px 10px;text-align:left;font-size:13px;font-weight:900}.dialog-choices button:nth-child(2){background:#c0dcf0}.dialog-choices button:nth-child(3){background:#c1e0d7}.dialog small{display:block;color:#c4d0e5;font-size:10px;line-height:1.4;margin-top:12px}
@media(max-width:420px){.brand-text b{font-size:12px}.brand-text small{font-size:8px}.wallet{min-width:97px}.wallet strong{font-size:17px}.dashboard{height:99px;padding:8px 9px}.world{min-height:408px}.office-grid{gap:2px;padding:2px 5px}.desk .desk-label{font-size:8px}.shelf>small{max-width:79px;font-size:9px}.incoming{width:205px;max-width:66%}.work-panel{height:119px}.work-header b{font-size:14px}}
@media(max-height:770px){.game{min-height:680px}.world{min-height:395px}.dashboard{height:95px}.work-panel{height:112px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001s!important;transition:none!important}}

/* v0.8: возвращаем атмосферу и цвета сцены v0.5, не трогая core mechanics. */
.world{
 background:#7882ad;
}
.world:before{display:none}
.world-header{background:#222951;border-bottom:3px solid #c7ad7f;}
.boss-office{
 position:relative;height:124px;flex:none;overflow:hidden;display:block;
 background:repeating-linear-gradient(180deg,#9caed0 0 35px,#90a4c8 35px 38px);
 border-bottom:6px solid #525981;
 padding:0;
}
.boss-office::before{display:none}
.office-window{
 position:absolute;top:11px;width:26%;height:93px;
 border:6px solid #282a57;background:#a8c3e2;
 box-shadow:inset 0 -32px #cad7e9;
 overflow:hidden;
}
.window-left{left:7px}
.window-right{right:7px}
.office-window:before{content:"";position:absolute;top:0;bottom:0;left:47%;width:5px;background:#2c305d;z-index:2}
.office-window:after{content:"";position:absolute;top:52%;left:0;right:0;height:5px;background:#2c305d;z-index:3}
.skyline{
 position:absolute;bottom:0;left:0;right:0;height:64%;
 background:linear-gradient(90deg,transparent 0 5%,#7286af 5% 18%,transparent 18% 23%,#7f95ba 23% 43%,transparent 43% 47%,#6a82ac 47% 59%,transparent 59% 64%,#738ab4 64% 82%,transparent 82% 87%,#687da3 87% 98%,transparent 98%);
}
.skyline:before{content:"";position:absolute;inset:10px 0 0 0;opacity:.9;background-image:radial-gradient(circle,#f6d58d 1.5px,transparent 2px);background-size:15px 14px}
.office-billboard{
 position:absolute;left:50%;top:9px;transform:translateX(-50%);
 height:98px;width:41%;z-index:1;
 background:#222452;border:6px solid #171a43;
 box-shadow:inset 0 0 0 3px #303668;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
}
.office-billboard img{display:block;width:clamp(50px,15vw,87px);height:58px;object-fit:contain}
.office-billboard i{display:block;width:65%;height:3px;background:#f0d18e}
.office-billboard span{font:bold clamp(5px,1.2vw,8px)/1 ui-monospace,monospace;color:#f5e9ce;text-align:center;white-space:nowrap}
.boss-office .boss-portrait{position:absolute;right:21px;top:49px;width:30px;height:39px;z-index:5}
.boss-office .boss-head{left:5px;top:0;width:21px;height:17px}
.boss-office .boss-body{left:0;bottom:0;width:29px;height:22px}
.boss-office .boss-sign{position:absolute;right:6px;bottom:4px;z-index:6;font-size:8px;padding:4px 5px;background:#1d2451;border-color:#6579a6}
.boss-office a{position:absolute;left:8px;bottom:5px;z-index:6;background:#1d2451;color:#f3e6ce;border:1px solid #acadd7;font-size:8px;padding:5px 6px}
.office-plant{position:absolute;bottom:1px;height:40px;width:27px;z-index:5;pointer-events:none}
.plant-left{left:2px}.plant-right{right:2px}
.office-plant:before{content:"";position:absolute;bottom:0;left:7px;width:18px;height:15px;background:#ac8aa0;border-top:5px solid #d0a38d}
.office-plant:after{content:"";position:absolute;bottom:14px;left:14px;width:4px;height:29px;background:#537c7c}
.office-plant i{position:absolute;left:4px;bottom:23px;width:12px;height:12px;background:#6dad98;transform:rotate(-35deg);box-shadow:12px -11px #5b9f8a,17px 6px #66b6a5,-3px -12px #7bc3b0}
.office-grid{
 background:linear-gradient(180deg,#767da4 0%,#777da5 32%,#6c729a 33%,#6d749b 64%,#655e85 65%,#67628a 100%);
 border:0;padding:3px 7px 2px;
 row-gap:0;column-gap:5px;
}
.office-grid:before{content:"";position:absolute;pointer-events:none;inset:0;background:repeating-linear-gradient(90deg,transparent 0 63px,#545b8644 64px 65px),linear-gradient(180deg,transparent 31%,#4e5178 32%,#4e5178 33%,transparent 34%,transparent 64%,#4e5178 65%,#4e5178 66%,transparent 67%)}
.desk{background:none!important;border:1px solid transparent!important;z-index:1}
.desk.hero{border:2px solid #f8da8c!important;box-shadow:inset 0 0 0 1px #21294f,0 0 0 1px #f8da8c;background:#ffe1a318!important}
.desk.owned{background:#9fe1c011!important}
.desk.issuer{border:2px solid #fff0b0!important;box-shadow:inset 0 0 0 1px #fff0b0}
.desk.sub-target{outline:3px dashed #fff1ab;outline-offset:-5px;background:#e7dba53f!important;z-index:4}
.desk.sub-working{background:#a5eecb20!important}
.desk::before{bottom:12px;height:8px;background:#363354;box-shadow:0 -3px #252544}
.desk::after{bottom:19px;height:7px;background:#d9ad82;box-shadow:0 16px #4c436c}
.desk .desk-label{top:4px;left:7px;right:7px;z-index:7;color:#1c2a50;text-shadow:none;font-size:clamp(8px,2.3vw,10px);background:#dfe6efbf;padding:2px 3px;max-width:calc(100% - 14px)}
.desk.hero .desk-label{color:#17234a;background:#ffdc93;text-shadow:none}
.desk.owned .desk-label{color:#1b4357;background:#afdfd3}
/* Номер больше не находится под столом: фиксируем внутри верхней зоны ячейки. */
.desk .name-tag{
 top:25px;bottom:auto;right:6px;left:auto;z-index:8;
 background:#242956;color:#ffe2aa;
 border:1px solid #62729e;
 padding:2px 5px;font:900 9px/1.25 Arial,sans-serif;
 white-space:nowrap;max-width:54%;overflow:hidden;text-overflow:ellipsis;
}
.desk.hero .name-tag{color:#202545;background:#f5d48d;border-color:#b59a6a}
.desk.owned .name-tag{color:#143d4b;background:#a8ded2;border-color:#4d8f86}
.desk .portrait{top:20%;}
.desk .worktop{bottom:26px;}
.laptop{height:39px;width:68px;background:#1a204b;border:4px solid #1f254f;box-shadow:inset 0 0 0 2px #6579a2,0 5px #262c4d}
.laptop img{width:74%;height:58%;object-fit:contain;display:block}
.mug{bottom:0}
.shelf{background:#262d53;border-top-color:#646c97}
/* Высота верхней декоративной стены компенсируется читаемыми ячейками. */
.world{min-height:460px}
@media(max-width:420px){
 .world{min-height:445px}
 .boss-office{height:108px}
 .office-window{height:79px;top:8px;border-width:5px}
 .office-billboard{height:85px;top:7px;border-width:5px}
 .office-billboard img{height:49px;width:65px}
 .office-billboard span{font-size:5px}
 .boss-office .boss-portrait{top:39px;right:18px;transform:scale(.83);transform-origin:bottom right}
 .boss-office .boss-sign{font-size:7px;right:3px;bottom:3px}
 .boss-office a{font-size:7px;left:4px;bottom:3px;padding:4px}
 .office-grid{padding:2px 5px 2px}
 .desk .name-tag{top:21px;right:4px;font-size:8px;padding:2px 3px}
 .desk .desk-label{font-size:8px;left:4px;right:4px}
 .desk .portrait{top:16%;transform:translateX(-50%) scale(.86);transform-origin:top center}
 .desk .worktop{bottom:22px}
 .laptop{height:34px;width:64px}.laptop img{height:28px;width:28px}
}
@media(max-height:770px){.world{min-height:435px}}

/* v0.9: сохранили атмосферу v0.5, вернули начальника в центр офиса. */
.boss-office{height:136px;isolation:isolate}
.office-window{width:27%;height:96px}
.office-billboard{left:13px;top:18px;transform:none;width:20%;height:76px;border-width:4px;opacity:.9}
.office-billboard img{width:46px;height:37px}
.office-billboard i{width:53%}
.office-billboard span{font-size:5px;max-width:100%;overflow:hidden}
.boss-office .boss-sign{left:50%;right:auto;top:4px;bottom:auto;transform:translateX(-50%);width:max-content;max-width:46%;text-align:center;font-size:9px;z-index:7}
.boss-office .boss-portrait{left:50%;right:auto;top:31px;transform:translateX(-50%);width:42px;height:54px;z-index:7}
.boss-office .boss-head{left:8px;top:0;width:26px;height:22px}
.boss-office .boss-body{left:2px;bottom:0;width:39px;height:30px}
.boss-desk{position:absolute;left:50%;transform:translateX(-50%);bottom:4px;width:130px;height:36px;background:#d4a984;border-bottom:8px solid #302f52;box-shadow:0 4px #342a49;z-index:8}
.boss-monitor{position:absolute;width:66px;height:48px;left:50%;transform:translateX(-50%);bottom:18px;background:#202b57;border:5px solid #131d42;display:grid;place-items:center;box-shadow:inset 0 0 0 2px #526994}
.boss-monitor img{width:70%;height:60%;object-fit:contain}
.desk-books{position:absolute;left:13%;bottom:47px;height:30px;display:flex;align-items:flex-end;gap:2px;z-index:3;pointer-events:none}
.tiny-book{display:block;width:8px;height:calc(13px + var(--i)*1.8px);background:#e9c17b;border:2px solid #725a66;box-shadow:1px 1px #413d5c}
.tiny-book:nth-child(even){background:#acc6d8}
.desk-books.full .tiny-book{background:#f8a7a6}
.sub-status{position:absolute;bottom:4px;left:3px;z-index:10;max-width:calc(100% - 6px);font-size:8px;font-weight:900;color:#133a51;background:#a7e0d0;padding:2px 4px;pointer-events:none;white-space:nowrap}
.desk .name-tag{top:24px;bottom:auto}
.desk .portrait{top:18%}
.desk .worktop{bottom:19px}
.office-grid{grid-auto-flow:row}
.boss-office .boss-billboard{position:absolute}
@media(max-width:420px){
 .boss-office{height:122px}
 .office-window{height:85px}
 .office-billboard{left:8px;top:17px;width:20%;height:67px;border-width:3px}
 .office-billboard img{width:36px;height:30px}
 .office-billboard span{font-size:4px}
 .boss-office .boss-sign{left:50%;top:2px;font-size:7px;max-width:51%;padding:3px 4px}
 .boss-office .boss-portrait{top:26px;left:50%;right:auto;transform:translateX(-50%) scale(.82);transform-origin:top center}
 .boss-desk{width:105px;height:29px}
 .boss-monitor{width:57px;height:39px;bottom:17px}
 .boss-monitor img{width:39px;height:34px}
 .desk-books{left:7%;bottom:38px;gap:1px}
 .tiny-book{width:6px;border-width:1px}
 .sub-status{font-size:7px}
}

/* v0.9 cleanup: no random RIR board crossing the left window. */
.boss-office .boss-portrait{isolation:isolate}
.desk .desk-label{font-size:clamp(9px,2.25vw,11px)}
@media(max-width:420px){.desk .desk-label{font-size:8px;letter-spacing:-.05px}.boss-office .boss-sign{font-size:7px}.wallet span,.wallet small{font-size:9px}.wallet strong{font-size:19px}.dashboard small{font-size:9px}.stat>span{font-size:9px}.sign{font-size:9px}.world-label{font-size:9px}}

/* v0.10: лицо начальника: глаза и рот находятся выше монитора. */
.boss-office .boss-head::after{
 content:"";position:absolute;left:4px;top:5px;width:3px;height:3px;
 background:#28334d;box-shadow:10px 0 #28334d,5px 8px #a56b64;
}
.boss-office .boss-portrait{top:22px;}
@media(max-width:420px){.boss-office .boss-portrait{top:19px;}}
/* События в самой игровой сцене: отдельная кликабельная подсказка, без автодиалога. */
.event-cue{position:absolute;z-index:21;width:115px;height:102px;display:block;pointer-events:none;filter:drop-shadow(2px 3px 0 #141d3c);}
.event-cue .event-button{position:absolute;right:3px;top:1px;width:80px;min-height:65px;border:2px solid #193458;background:#f4e9cf;color:#1e2b51;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;pointer-events:auto;border-radius:5px;box-shadow:2px 3px 0 #17213d;animation:event-wiggle 1s ease-in-out infinite alternate;padding:3px;}
.event-cue .event-button strong{font-size:27px;line-height:1;color:#c84e61;display:block}
.event-cue .event-button span{font:900 8px/1.2 Arial,sans-serif;display:block;text-align:center;white-space:normal}
.event-cue .event-button small{font:800 9px/1.2 Arial,sans-serif;color:#425477;display:block}
.event-cue:not(.with-visitor){width:92px}
.event-cue:not(.with-visitor) .event-button{left:8px;right:auto}
.event-visitor{position:absolute;bottom:0;left:2px;width:33px;height:50px;opacity:0;transform:translateX(-70px);transition:transform .45s ease-out,opacity .45s ease-out}
.event-cue.with-visitor .event-visitor{opacity:1;transform:translateX(0)}
.event-visitor span{display:block;position:absolute}
.visitor-hair{top:0;left:6px;width:23px;height:12px;background:#41374b;box-shadow:3px 4px #41374b}
.visitor-face{top:11px;left:8px;width:21px;height:19px;background:#e0aa87;border:2px solid #b47a69}
.visitor-face:after{content:"";position:absolute;left:3px;top:6px;width:2px;height:3px;background:#24334e;box-shadow:8px 0 #24334e,4px 7px #a06c62}
.visitor-body{top:30px;left:4px;width:29px;height:21px;background:#8fa6bc;border:3px solid #4c5d7c}
.event-cue.boss-visit .visitor-body{background:#34486e;border-color:#263456}
.event-cue.boss-visit .visitor-hair{background:#28263b;box-shadow:3px 4px #28263b}
.event-cue.boss-visit .event-button{border-color:#e1bd76;background:#fff1d6}
.event-cue.boss-visit .event-button strong{color:#b43f4f}
@keyframes event-wiggle{from{transform:translateY(0)}to{transform:translateY(-3px)}}
@media(max-width:420px){.event-cue{transform:scale(.88);transform-origin:top left}}
@media(prefers-reduced-motion:reduce){.event-cue .event-button{animation:none}}
/* Кликабельная область остаётся неподвижной: без промахов на смартфонах. */
.event-cue .event-button{animation:none}
.event-cue .event-button strong{animation:event-symbol 1.05s ease-in-out infinite alternate}
@keyframes event-symbol{from{opacity:1;text-shadow:none}to{opacity:.7;text-shadow:0 0 7px #e78a80}}
@media(prefers-reduced-motion:reduce){.event-cue .event-button strong{animation:none}}
/* Посетитель действительно входит в кадр, а не возникает статично. */
.event-cue.with-visitor .event-visitor{animation:visitor-approach .55s ease-out both}
@keyframes visitor-approach{from{opacity:0;transform:translate(-38px,-62px)}to{opacity:1;transform:translate(0,0)}}
@media(prefers-reduced-motion:reduce){.event-cue.with-visitor .event-visitor{animation:none}}



/* v0.12 — выделенные места для каждого предмета. */
.office-upgrades{position:absolute;inset:0;z-index:6;pointer-events:none}
.office-upgrades>span{display:none;position:absolute}
.game.up-coffee .item-coffee,.game.up-plant .item-plant{display:block}
/* Кофемашина на отдельной тумбе слева от директорского стола. */
.item-coffee{left:calc(50% - 99px);bottom:5px;width:22px;height:26px;background:#e5eaf0;border:3px solid #506387;box-shadow:0 4px #544763,0 7px #89758b}
.item-coffee:before{content:"";position:absolute;top:4px;left:3px;width:10px;height:7px;background:#80abc5;border:1px solid #4c6185}
.item-coffee:after{content:"";position:absolute;left:6px;bottom:2px;width:7px;height:3px;background:#bf8f66}
/* Фикус с собственным кашпо справа от директорского стола. */
.item-plant{left:calc(50% + 82px);bottom:6px;width:18px;height:13px;background:#ca9e83;border-top:4px solid #dfb390;box-shadow:0 4px #594864}
.item-plant:before{content:"";position:absolute;left:7px;bottom:9px;width:3px;height:18px;background:#4f806f}
.item-plant:after{content:"";position:absolute;left:1px;bottom:20px;width:11px;height:10px;background:#70b79f;box-shadow:9px -8px #539881,-3px -8px #83c2b1,12px 0 #78bda6}
/* Шкаф с кейсами стоит у стены личного рабочего места, с опорой на пол. */
.office-bookcase{display:none;position:absolute;z-index:4;left:4px;bottom:30px;width:29px;height:58px;background:#594a63;border:3px solid #34304e;box-shadow:inset 0 -5px #b58e72}
.office-bookcase:before,.office-bookcase:after{content:"";position:absolute;left:0;right:0;height:4px;background:#d7a77e}
.office-bookcase:before{top:23px}.office-bookcase:after{bottom:2px}
.office-bookcase i{position:absolute;top:5px;width:5px;height:16px;background:#91b9cb}
.office-bookcase i:nth-child(1){left:2px;background:#d4a06e}
.office-bookcase i:nth-child(2){left:9px;background:#8eb8c9}
.office-bookcase i:nth-child(3){left:16px;background:#d58eaa}
.game.up-shelf .desk.hero .office-bookcase{display:block}
/* Дополнительный монитор на той же столешнице. */
.game.up-monitor .desk.hero .worktop:after{content:"";position:absolute;left:calc(50% - 55px);bottom:3px;width:28px;height:20px;background:#202b56;border:3px solid #1a2247;box-shadow:inset 0 0 0 2px #6579a2,0 4px #2a3454}
/* Кресло: читаемые подлокотники вокруг персонажа. */
.game.up-chair .desk.hero .portrait:before{content:"";position:absolute;left:-8px;top:25px;width:61px;height:31px;background:#3b4a73;border:4px solid #273553;border-bottom:0;z-index:0}
.game.up-chair .desk.hero .portrait>*{z-index:2}
/* РИР на мониторах никогда не выходит за границы. */
.laptop{overflow:hidden}
.laptop img,.desk .laptop img{width:68%;height:55%;max-width:68%;max-height:55%;object-fit:contain}
.boss-monitor img{width:65%;height:55%;object-fit:contain}
.wallet strong{font-size:23px}
.game.burnout .stat:nth-child(2) .track{border-color:#f39489;box-shadow:0 0 0 2px #c25b59}
.game.burnout #feedback{color:#ffe0a6;font-weight:800}
.dialog-choices button{white-space:pre-line;line-height:1.35}
@media(max-width:420px){
 .item-coffee{left:calc(50% - 84px);transform:scale(.8);transform-origin:bottom left}
 .item-plant{left:calc(50% + 65px);transform:scale(.8);transform-origin:bottom left}
 .office-bookcase{left:2px;bottom:27px;width:24px;height:45px}
 .wallet strong{font-size:20px}
}

/* v0.13 — магазин с читаемыми товарными карточками */
.dialog.shop-dialog{max-width:530px;max-height:min(92dvh,790px);overflow:hidden;padding:16px;display:flex;flex-direction:column;border-radius:10px;border-color:#d9bf82}
.shop-dialog .dialog-flag{color:#e4c983;font-size:12px}
.shop-dialog h2{font-size:25px;margin:8px 0 5px}
.shop-dialog p{font-size:13px;margin:2px 0 6px;line-height:1.4}
.shop-dialog .dialog-choices{overflow-y:auto;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;padding:4px 4px 8px 0;margin-top:8px;scrollbar-color:#8090b1 #24304d}
.shop-dialog .dialog-choices .shop-item{border:1px solid #52678e!important;border-radius:7px;background:#2c3b61!important;color:#f2f5fc!important;min-height:128px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto 1fr auto;gap:4px 6px;padding:12px;text-align:left;align-content:space-between;box-shadow:none;line-height:1.35;cursor:pointer}
.shop-dialog .dialog-choices .shop-item:disabled{opacity:.52;cursor:default}
.shop-dialog .dialog-choices .shop-item:not(:disabled){border-color:#e4c27f!important;background:#35446a!important}
.shop-dialog .dialog-choices .shop-item-main{font-size:14px;font-weight:900;color:#fff;line-height:1.2}
.shop-dialog .dialog-choices .shop-item-price{font-size:13px;font-weight:900;color:#f5d37e;white-space:nowrap}
.shop-dialog .dialog-choices .shop-item-desc{font-size:12px;font-weight:500;color:#d5def1;grid-column:1/-1;line-height:1.4}
.shop-dialog .dialog-choices .shop-item-group{font-size:10px;grid-column:1/-1;color:#a6c8dd;letter-spacing:.07em;font-weight:800}
.shop-dialog .dialog-choices .shop-close{grid-column:1/-1;background:#f2d798!important;border:0;border-radius:5px;color:#172343;font-weight:900;text-align:center;padding:10px;min-height:42px}
.shop-dialog #dialogFoot{margin-top:8px;font-size:11px}
@media(max-width:460px){.dialog.shop-dialog{max-height:93dvh;padding:12px}.shop-dialog .dialog-choices{grid-template-columns:1fr}.shop-dialog .dialog-choices .shop-item{min-height:90px;padding:10px}.shop-dialog .dialog-choices .shop-item-main{font-size:14px}.shop-dialog .dialog-choices .shop-item-desc{font-size:12px}.shop-dialog h2{font-size:22px}}
/* work animation: hands and screen, no DOM movement of tap targets */
.desk.busy .portrait .shirt,.desk.sub-working .portrait .shirt{animation:worker-breathe .48s steps(2,end) infinite}
.desk.busy .worktop::before,.desk.sub-working .worktop::before{content:'⌨';position:absolute;z-index:6;bottom:-1px;right:6px;color:#e7dba6;font-size:14px;animation:type-flash .4s steps(2,end) infinite}
.desk.busy .laptop,.desk.sub-working .laptop{animation:screen-flash 1s steps(2,end) infinite}
@keyframes worker-breathe{0%{transform:translateY(0)}50%{transform:translateY(2px)}100%{transform:translateY(0)}}
@keyframes type-flash{from{opacity:.15;transform:translateX(-3px)}to{opacity:1;transform:translateX(1px)}}
@keyframes screen-flash{from{box-shadow:inset 0 0 0 2px #526994,0 5px #28344e}to{box-shadow:inset 0 0 0 2px #98bbc9,0 5px #28344e}}
.assist-walker{position:absolute;z-index:24;width:26px;height:44px;pointer-events:none;filter:drop-shadow(2px 2px #22294c)}
.assist-walker .walker-head{position:absolute;width:19px;height:18px;background:#edb489;top:2px;left:3px;border:3px solid #5d4051}
.assist-walker .walker-body{position:absolute;top:21px;left:0;width:26px;height:21px;background:#f1c879;border:3px solid #936d62}
.assist-walker.walking{animation:assist-approach .62s ease-in-out both}
@keyframes assist-approach{0%{transform:translate(0,0) scale(.85);opacity:.2}15%{opacity:1}90%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(.95);opacity:0}}
.fatigue-status{color:#ffe1a7;background:#6a3e50;padding:3px 6px;margin-top:4px;font:900 10px/1.35 Arial,sans-serif;border-left:3px solid #f2c47e}
.game.burnout .stat:nth-child(2) .track{animation:critical-energy 1s ease-in-out infinite}
@keyframes critical-energy{50%{box-shadow:0 0 0 3px #e3a07e}}
/* Items are in separate physical zones */
.item-teamboard{left:14px;top:38px;width:50px;height:39px;background:#344e73;border:3px solid #1b2d52;box-shadow:0 4px #596781}
.item-teamboard:before{content:'';position:absolute;inset:5px;background:repeating-linear-gradient(0deg,#b3d2dd 0 3px,transparent 3px 9px),linear-gradient(90deg,#2b5b7b 0 100%);opacity:.9}
.item-water{right:15px;bottom:5px;width:17px;height:25px;background:#8fc2d5;border:3px solid #435c7a;box-shadow:0 4px #596781}
.item-water:before{content:'';position:absolute;left:3px;top:-8px;width:6px;height:7px;background:#cee3ed;border:2px solid #8aa2b7}
.game.up-teamboard .item-teamboard,.game.up-water .item-water{display:block}
/* keep previous items at separate locations from windows & one another */
.game.up-training .desk.owned .desk-label:after{content:' ★';color:#b78d36}
@media(max-width:420px){.item-teamboard{left:8px;top:30px;width:36px;height:30px}.item-water{right:6px;width:14px;height:21px}}
@media(prefers-reduced-motion:reduce){.desk.busy .portrait .shirt,.desk.sub-working .portrait .shirt,.desk.busy .worktop::before,.desk.sub-working .worktop::before,.desk.busy .laptop,.desk.sub-working .laptop,.assist-walker.walking,.game.burnout .stat:nth-child(2) .track{animation:none!important}}

/* unaffordable goods stay readable; show state with price, not opacity */
.shop-dialog .dialog-choices .shop-item:disabled{opacity:1;background:#253353!important;border-color:#45577c!important}
.shop-dialog .dialog-choices .shop-item:disabled .shop-item-price{color:#c5cbd5}
.shop-dialog .dialog-choices .shop-item:not(:disabled){background:#354567!important}
.shop-dialog .dialog-choices .shop-item:not(:disabled) .shop-item-price{background:#efcf8a;color:#192342;padding:2px 5px;border-radius:4px}
.shop-dialog .dialog-choices .shop-item-group{font-size:9px}

/* dual monitor layout: screens separated, not drawn over each other */
.game.up-monitor .desk.hero .worktop .laptop{transform:translateX(13px) scale(.88);transform-origin:bottom center}
.game.up-monitor .desk.hero .worktop::after{left:calc(50% - 63px);width:35px;height:25px;bottom:5px;box-shadow:inset 0 0 0 2px #6579a2,0 4px #2a3454}
.dialog.boss-membership .dialog-choices button{font-size:14px;padding:15px;border-radius:7px}
.dialog.boss-membership .dialog-choices button:first-child{background:#9cc9db;color:#152a44}
.dialog.boss-membership .dialog-choices button:nth-child(2){background:#f1d18c;color:#182748}
.dialog.boss-membership #dialogFoot{font-size:11px;line-height:1.5}

/* v0.13 final layout pass: move upgrades out of existing windows/plant footprints */
.game.up-teamboard .item-teamboard{display:none!important}
.game.up-teamboard .world-label{background:#365b78;color:#f5e8bd;border:1px solid #7694a4;padding:4px 6px}
.item-coffee{left:calc(50% - 76px)}
.item-plant{left:calc(50% + 61px)}
.game.up-water .office-plant.plant-right{display:none}
.item-water{right:8px;bottom:7px}
@media(max-width:420px){
 .item-coffee{left:calc(50% - 75px);transform:scale(.85);transform-origin:bottom left}
 .item-plant{left:calc(50% + 55px);transform:scale(.8);transform-origin:bottom left}
 .item-water{right:8px;bottom:7px}
}

/* v0.14: точное размещение офисных улучшений в свободных нишах рядом с кабинетом босса */
.boss-office .office-upgrades{z-index:9;overflow:visible}
/* Отдельные напольные станции. Никаких предметов за столом директора и внутри рамки окна. */
.item-coffee,.game.up-coffee .item-coffee{
  left:12%;bottom:7px;right:auto;top:auto;transform:none;
  width:29px;height:37px;background:#dce7ec;border:3px solid #445a75;
  box-shadow:0 4px #79667a,0 7px #443a56;
}
.item-coffee:before{content:"";position:absolute;left:4px;top:5px;width:15px;height:10px;background:#81b4cc;border:2px solid #55758e}
.item-coffee:after{content:"";position:absolute;left:7px;bottom:3px;width:10px;height:5px;background:#b8875f}
.item-water,.game.up-water .item-water{
  right:12%;left:auto;bottom:6px;top:auto;transform:none;
  width:24px;height:39px;background:#89bdd6;border:3px solid #3d587a;
  box-shadow:0 4px #77667b,0 7px #443a56;
}
.item-water:before{content:"";position:absolute;left:4px;top:-12px;width:10px;height:10px;background:#d9f0f6;border:2px solid #668faa}
.item-water:after{content:"";position:absolute;left:5px;top:11px;width:10px;height:4px;background:#4c6e8f;box-shadow:0 9px #d2ddec}
.item-plant,.game.up-plant .item-plant{
  right:calc(12% + 44px);left:auto;bottom:7px;top:auto;transform:none;
  width:17px;height:14px;box-shadow:0 3px #594864;
}
@media(max-width:420px){
 .item-coffee,.game.up-coffee .item-coffee{left:11%;transform:none}
 .item-water,.game.up-water .item-water{right:11%;transform:none}
 .item-plant,.game.up-plant .item-plant{right:calc(11% + 42px);transform:none}
}

/* Задание директора отображается отдельно от обычной книги и от проверки подписки. */
.incoming.boss-task{background:#fff0c0;border-color:#c3884e;box-shadow:5px 5px 0 #2d2341}
.incoming.boss-task .incoming-title b{background:#903b47}
.incoming.boss-task button{background:#754c70}
.incoming.boss-task .track i{background:#c65c5a}

/* Помощь подчинённому: персонаж доходит до его стола и остаётся там на несколько мгновений. */
.assist-walker{z-index:25;width:29px;height:48px;will-change:transform,opacity}
.assist-walker.walking{animation:assist-stay 1.65s linear both}
.assist-walker .walker-message{
 position:absolute;bottom:48px;left:50%;transform:translateX(-50%);
 background:#fff0c3;color:#22304f;border:2px solid #2d3455;
 white-space:nowrap;padding:3px 5px;font:900 10px Arial,sans-serif;
 opacity:0;
}
.assist-walker.walking .walker-message{animation:assist-caption 1.65s steps(1,end) both}
@keyframes assist-stay{
 0%{transform:translate(0,0) scale(.85);opacity:0}
 12%{opacity:1}
 34%{transform:translate(var(--dx),var(--dy)) scale(1);opacity:1}
 79%{transform:translate(var(--dx),var(--dy)) scale(1);opacity:1}
 100%{transform:translate(0,0) scale(.9);opacity:0}
}
@keyframes assist-caption{0%,27%{opacity:0}30%,85%{opacity:1}100%{opacity:0}}
.desk.assisted{outline:3px solid #f8d98f!important;outline-offset:-4px;box-shadow:inset 0 0 0 3px #c6dfc5!important}
.desk.assisted .worktop{filter:brightness(1.25)}
@media(prefers-reduced-motion:reduce){
 .assist-walker.walking,.assist-walker.walking .walker-message{animation:none!important}
 .assist-walker.walking{transform:translate(var(--dx),var(--dy))}
 .assist-walker.walking .walker-message{opacity:1}
}

/* v0.15: посетитель действительно покидает рабочее место. */
.desk.on-visit .portrait{visibility:hidden!important}
.boss-office.boss-on-visit .boss-portrait{visibility:hidden!important}
/* Вызов коллеге: ускоряется его работа, а не перемещается наш герой. */
.desk.sub-pulse .portrait{animation:sub-hurry .3s steps(2,end) 2!important}
.desk.sub-pulse .worktop{filter:brightness(1.4)}
.desk.sub-assign .desk-books{animation:book-enter .45s ease-out}
.sub-float{position:absolute;left:50%;top:24%;transform:translate(-50%,-8px);z-index:24;
 background:#fff1c4;color:#213252;padding:5px 7px;border:2px solid #34446d;
 font:900 10px Arial,sans-serif;white-space:nowrap;pointer-events:none;animation:sub-float .7s ease-out forwards}
@keyframes sub-float{0%{opacity:0;transform:translate(-50%,2px)}20%{opacity:1}100%{opacity:0;transform:translate(-50%,-25px)}}
@keyframes sub-hurry{0%{transform:translateX(-50%)}50%{transform:translateX(-50%) translateY(-3px)}100%{transform:translateX(-50%)}}
@keyframes book-enter{from{opacity:.25;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
/* Фикус теперь опирается на поверхность пола и не парит над ним. */
.item-plant,.game.up-plant .item-plant{bottom:0!important}
/* Экран коллекции читается как список наград вместо примеров. */
.dialog.achievements-dialog #dialogBody{max-height:min(58dvh,500px);overflow-y:auto;white-space:pre-line;line-height:1.65}
@media(prefers-reduced-motion:reduce){.sub-float,.desk.sub-pulse .portrait,.desk.sub-assign .desk-books{animation:none!important}}

/* Индивидуальная шкала выполнения книги подчинённого — видимый результат тапов. */
.desk .sub-progress{position:absolute;left:7px;right:7px;bottom:16px;height:6px;background:#182749;
 border:1px solid #617da0;z-index:11;pointer-events:none;overflow:hidden}
.desk .sub-progress i{display:block;width:0;height:100%;background:#8be9bd;transition:width .10s linear}

/* Telegram safe areas and short/landscape screens: retain the full pixel office. */
body{padding-top:max(env(safe-area-inset-top,0px),var(--tg-inset-top,0px));padding-bottom:max(env(safe-area-inset-bottom,0px),var(--tg-inset-bottom,0px));padding-left:max(env(safe-area-inset-left,0px),var(--tg-inset-left,0px));padding-right:max(env(safe-area-inset-right,0px),var(--tg-inset-right,0px))}
.game{height:var(--app-height,100dvh)}
.overlay{padding-top:max(14px,env(safe-area-inset-top,0px),var(--tg-inset-top,0px));padding-bottom:max(14px,env(safe-area-inset-bottom,0px),var(--tg-inset-bottom,0px))}
.dialog{max-height:calc(var(--app-height,100dvh) - 28px - var(--tg-inset-top,0px) - var(--tg-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain}
.overlay{padding-left:max(14px,env(safe-area-inset-left,0px),var(--tg-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px),var(--tg-inset-right,0px))}
