/* Проект «Вавилон» — стиль: камень, бронза, древняя башня. */
:root{
  --bg:#15110c; --bg2:#1f1813; --panel:#241c14; --panel2:#2c2218;
  --line:#3a2d1f; --gold:#d9a441; --gold2:#f0c469; --txt:#e9e0d0; --muted:#9c8c74;
  --hp:#b5403a; --mp:#3f6fb0; --xp:#6fa84f; --danger:#7a2b22;
}
*{box-sizing:border-box}
body{
  margin:0; font-family:"Segoe UI",system-ui,sans-serif; color:var(--txt);
  background:
    radial-gradient(1200px 500px at 50% -10%, #3a2c1c 0%, transparent 60%),
    linear-gradient(180deg,var(--bg2),var(--bg));
  min-height:100vh; padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px));
}
/* внутри Telegram тянемся на стабильную высоту вьюпорта */
html.in-telegram, html.in-telegram body{ min-height:var(--tg-vh, 100vh); }
h2{color:var(--gold2); margin:.2em 0 .4em; font-weight:700}
h3{color:var(--gold); margin:1em 0 .4em; border-bottom:1px solid var(--line); padding-bottom:.2em}
.muted{color:var(--muted); font-size:.9em}
.hint{color:var(--muted); font-size:.82em; font-style:italic; margin-top:1em}
button{font-family:inherit; cursor:pointer}
b{color:var(--gold2)}
i{color:var(--muted)}

/* HUD */
.hud{
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  padding:.6rem 1rem; background:linear-gradient(180deg,#2c2117,#211910);
  border-bottom:2px solid var(--gold); position:sticky; top:0; z-index:5; flex-wrap:wrap;
}
.home-btn{font-size:1.5rem; line-height:1; background:#33271a; border:1px solid var(--gold);
  color:var(--gold2); border-radius:10px; padding:.2em; cursor:pointer; flex:0 0 auto; width:44px; height:44px; overflow:hidden}
.home-btn img{width:100%; height:100%; object-fit:cover; border-radius:8px; display:block}
.home-btn:hover{background:#3f2f1c}
.home-btn.on{border-color:var(--gold2); box-shadow:0 0 0 2px var(--gold)}
.hud-left{flex:1; min-width:200px}
.hero-name{font-size:1.05rem; font-weight:700; color:var(--gold2)}
.hero-name .lvl{font-size:.75rem; color:var(--muted); font-weight:400; margin-left:.4em}
.res-strip{display:flex; gap:.6rem; font-weight:700; flex:1 1 100%; min-width:0; overflow-x:auto; -webkit-overflow-scrolling:touch; padding-bottom:4px}
.res-strip span{background:#1c150e; padding:.3em .6em; border:1px solid var(--line); border-radius:6px; flex:0 0 auto; white-space:nowrap}

/* bars */
.bar{position:relative; height:16px; background:#120d08; border:1px solid var(--line);
  border-radius:8px; overflow:hidden; margin:3px 0}
.bar .fill{height:100%; transition:width .25s; background:linear-gradient(90deg,#9c7a2e,var(--gold))}
.bar.hp .fill{background:linear-gradient(90deg,#7a2b22,var(--hp))}
.bar.mp .fill{background:linear-gradient(90deg,#23477a,var(--mp))}
.bar.xp .fill{background:linear-gradient(90deg,#3c6b2e,var(--xp))}
.xpwrap{display:flex; align-items:center; gap:.4em}
.xplabel{font-size:.65rem; color:var(--xp); min-width:34px; text-transform:uppercase; letter-spacing:.04em}
.xplabel.l-hp{color:var(--hp)}
.xplabel.l-mp{color:var(--mp)}
.xpwrap .bar{flex:1}
#toast{position:fixed; top:64px; left:50%; transform:translateX(-50%) translateY(-24px); z-index:30;
  background:linear-gradient(180deg,#f0c469,#9c7a2e); color:#1a130c; font-weight:800; font-size:1.05rem;
  padding:.55em 1.4em; border-radius:12px; box-shadow:0 6px 24px rgba(0,0,0,.6); border:1px solid #fff3cf;
  opacity:0; pointer-events:none; transition:opacity .35s, transform .35s}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0)}
.bar span{position:absolute; inset:0; text-align:center; font-size:11px; line-height:16px; text-shadow:0 1px 2px #000}
.bar.tiny{height:13px} .bar.tiny span{line-height:13px; font-size:10px}

/* layout */
.content{max-width:1000px; margin:1rem auto; padding:0 1rem}
.log{position:fixed; right:8px; bottom:78px; width:280px; max-height:40vh; background:#1a130c;
  border:1px solid var(--line); border-radius:8px; overflow:hidden; z-index:4; display:flex; flex-direction:column}
.log-title{background:#241a10; padding:.3em .6em; color:var(--gold); font-size:.85em; border-bottom:1px solid var(--line)}
.logbox{overflow:auto; padding:.4em .6em; font-size:.8em; line-height:1.5}
.logbox div{border-bottom:1px dashed #2a2016; padding:.15em 0}

/* tabs */
.tabs{position:fixed; bottom:0; left:0; right:0; display:flex; overflow-x:auto;
  background:#1a130c; border-top:2px solid var(--gold); z-index:6;
  padding-bottom:env(safe-area-inset-bottom, 0px)}
.tab{flex:1; min-width:72px; background:none; border:none; color:var(--muted);
  padding:.4em .2em; font-size:1.3rem; display:flex; flex-direction:column; align-items:center; gap:2px}
.tab small{font-size:.6rem}
.tab.on{color:var(--gold2); background:#2a1f12}
.tab.home{color:var(--gold2); border-right:1px solid var(--line)}
.tabicon{display:block; width:30px; height:30px; margin:0 auto 1px}
.tabicon .artframe>img{object-fit:cover; border-radius:5px}
.tabicon .bemoji{font-size:1.3rem}
.page-banner{height:100px}

/* tower */
.build-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.7rem}
.build{background:linear-gradient(180deg,var(--panel2),var(--panel)); border:1px solid var(--line);
  border-radius:10px; padding:.8rem; text-align:left; color:var(--txt); transition:.15s}
.build:hover{border-color:var(--gold); transform:translateY(-2px)}
.bicon{font-size:1.8rem} .bname{font-weight:700; color:var(--gold2); margin:.2em 0}
.bdesc{font-size:.78rem; color:var(--muted)}

/* panels */
.panel{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:1rem}
.cols{display:flex; gap:1.2rem; flex-wrap:wrap}
.col{flex:1; min-width:280px}
.stat-row{margin-bottom:.5rem}
.sname{font-size:.95rem} .sdesc{font-size:.74rem; color:var(--muted)}
.stat-bonus{font-size:.8em; color:var(--muted)} .stat-bonus .plus{color:#6fa84f}
.kvgrid{display:grid; grid-template-columns:1fr 1fr; gap:.2rem .8rem}
.kv{display:flex; justify-content:space-between; border-bottom:1px dashed #2a2016; padding:.15em 0; font-size:.85rem}
.big-kv{font-size:1.1rem; margin:.5em 0}
.spell-list{padding-left:1.1em; font-size:.82rem; line-height:1.5}
.tag{background:#33271a; color:var(--gold); border-radius:4px; padding:0 .35em; font-size:.78em}

/* equipment grid */
.equip-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:.5rem; margin:.4em 0}
.equip-card{background:var(--panel2); border:1px solid var(--line); border-radius:10px; padding:.5rem; text-align:center; font-size:.75rem; display:flex; flex-direction:column; align-items:center; gap:.2em}
.equip-card.equipped{border-color:var(--gold)}
.equip-img{width:64px; height:64px; position:relative}
.equip-empty-icon{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:1.6rem; color:var(--line); background:var(--panel); border-radius:8px; border:1px dashed var(--line)}
.equip-label{color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.03em}
.equip-name{color:var(--gold2); font-weight:700; font-size:.78rem; line-height:1.2}
.equip-card .muted{color:var(--muted); font-size:.72rem}
.equip-stat{color:var(--muted); font-size:.7rem}
/* inventory */
.inv-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:.6rem}
.item-card{background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.5rem; font-size:.82rem}
.item-card.оружие{border-left:3px solid #b5403a}
.item-card.броня{border-left:3px solid #6f7fa8}
.item-card.бижутерия{border-left:3px solid var(--gold)}
.item-card.эликсир,.item-card.зелье,.item-card.мазь{border-left:3px solid #6fa84f}
.ic-type{color:var(--muted); font-size:.72rem} .ic-stats{margin:.2em 0}
.ic-act{display:flex; gap:.3em; margin-top:.3em}

/* buttons */
.mini{background:#33271a; border:1px solid var(--line); color:var(--txt); border-radius:6px; padding:.25em .6em; font-size:.78rem}
.mini:hover{border-color:var(--gold)}
.mini:disabled{opacity:.4; cursor:not-allowed}
.mini.danger{background:var(--danger)}
.big{background:linear-gradient(180deg,#caa14a,#9c7a2e); border:none; color:#1a130c; font-weight:700;
  border-radius:8px; padding:.6em 1.2em; font-size:.95rem; margin:.4em .4em .4em 0}
.big:hover{filter:brightness(1.1)}

/* forms */
.form-row{display:flex; align-items:center; gap:.6em; margin:.5em 0; flex-wrap:wrap}
.form-row label{width:160px; color:var(--muted)}
select{background:#1a130c; color:var(--txt); border:1px solid var(--line); border-radius:6px; padding:.4em; font-family:inherit}

/* resources / shop / recipes */
.res-inv{display:flex; flex-wrap:wrap; gap:.4em; margin:.6em 0}
.res-chip,.res-strip span{font-size:.82rem}
.res-chip{background:#1c150e; border:1px solid var(--line); border-radius:6px; padding:.2em .5em}
.gather-grid{display:flex; flex-wrap:wrap; gap:.4em}
.shop-row{display:grid; grid-template-columns:1fr auto auto auto auto; gap:.5em; align-items:center; padding:.25em 0; border-bottom:1px dashed #2a2016; font-size:.88rem}
.shop-row.gear{grid-template-columns:1fr auto auto}
.shop-sub{margin:.5em 0 .2em; color:var(--gold2); font-size:.92rem}
.recipe-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.6rem}
.recipe{background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.5rem; font-size:.82rem; display:flex; gap:.5rem}
.rc-art{width:60px; height:60px; flex-shrink:0}
.rc-res-icon{display:flex; align-items:center; justify-content:center; width:100%; height:100%; font-size:2rem; background:#241a10; border:1px solid var(--line); border-radius:8px}
.rc-body{flex:1; min-width:0}
.recipe.locked{opacity:.7}
.rc-out .ws{color:var(--muted); font-size:.78em} .rc-in{color:var(--muted); margin:.3em 0; display:flex; flex-wrap:wrap; gap:.25em}
.rc-chip{background:#241a10; border:1px solid var(--line); border-radius:5px; padding:.05em .35em; font-size:.92em}
.rc-chip i{color:var(--muted); font-style:normal; font-size:.9em}
.rc-chip.lack{border-color:var(--danger); color:#e6896f}
.rc-chip.lack i{color:#c56a52}

/* academy / quests */
.academy-row{padding:.4em 0; border-bottom:1px dashed #2a2016; font-size:.85rem; opacity:.6}
.academy-row.seen{opacity:1}

/* энциклопедия */
.enc-search{width:100%; box-sizing:border-box; margin:.4em 0 .8em; padding:.6em .8em; border-radius:8px;
  border:1px solid var(--line); background:#1a130c; color:var(--txt); font-family:inherit; font-size:.95rem}
.enc-list{display:flex; flex-direction:column; gap:.4em}
.enc{background:var(--panel2); border:1px solid var(--line); border-radius:8px; overflow:hidden}
.enc>summary{cursor:pointer; padding:.6em .8em; font-weight:700; color:var(--gold2); list-style:none}
.enc>summary::-webkit-details-marker{display:none}
.enc>summary::before{content:'▸ '; color:var(--gold)}
.enc[open]>summary::before{content:'▾ '}
.enc[open]>summary{border-bottom:1px solid var(--line)}
.enc-body{padding:.6em .9em; font-size:.86rem; line-height:1.55}
.enc-body p{margin:.4em 0}
.enc-ul{margin:.3em 0; padding-left:1.1em}
.enc-ul li{margin:.25em 0}
.enc-sub{margin:.5em 0; padding-left:.4em; border-left:2px solid var(--line)}
.quest{background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.6rem; margin:.5em 0}
.quest.done{border-color:var(--xp)}
.q-desc{font-size:.82rem; color:var(--muted); margin:.2em 0}
.q-reward{font-size:.8rem; color:var(--gold)}

/* combat */
.combat-overlay{position:fixed; inset:0; background:rgba(0,0,0,.8); display:none; z-index:20; align-items:center; justify-content:center; padding:1rem}
.combat-overlay.open{display:flex}
.combat-window{background:var(--panel); border:2px solid var(--gold); border-radius:12px; width:100%; max-width:680px; max-height:92vh; overflow:auto}
.combat-title{background:#241a10; padding:.5em 1em; color:var(--gold2); font-weight:700; border-bottom:1px solid var(--line)}
#combat-body{padding:1rem}
.combat-hero{margin-bottom:.6em}
.combat-mobs{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:.5em}
.mob{position:relative; min-width:0; background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.5em; cursor:pointer; text-align:center}
.mob.sel{border-color:var(--gold)} .mob.dead{opacity:.35}
.mob.boss{border-color:#c0392b; box-shadow:0 0 8px rgba(192,57,43,.5)}
.boss-badge{font-size:.62rem; font-weight:700; color:#fff; background:#c0392b; border-radius:4px; padding:.05em .35em; display:inline-block; margin-bottom:.2em; letter-spacing:.02em}
.mname{font-weight:700; color:var(--gold2); font-size:.9rem; overflow-wrap:anywhere; line-height:1.2}
.mtags{font-size:.72rem; color:var(--muted); margin-top:.2em; overflow-wrap:anywhere}
.combat-controls{margin:.6em 0; background:#1c150e; border:1px solid var(--line); border-radius:8px; padding:.5em}
.cc-zones{display:flex; align-items:flex-end; gap:.4em; margin-bottom:.4em}
.cc-field{display:flex; flex-direction:column; gap:2px; flex:1}
.cc-field label{color:var(--muted); font-size:.75rem}
.cc-field select{width:100%}
.cc-atk{margin:0 0 0 .3em; white-space:nowrap; flex-shrink:0}
.cc-row{display:flex; align-items:center; gap:.4em; flex-wrap:wrap; margin:.35em 0}
.cc-row select{flex:1; min-width:0}
.cc-spell-desc{font-size:.75rem; color:var(--muted); background:#1c150e; border:1px solid var(--line); border-radius:6px; padding:.3em .5em; margin:.1em 0 .35em}
.combat-log{background:#120d08; border:1px solid var(--line); border-radius:8px; padding:.4em .5em; font-size:.78rem; max-height:110px; overflow-y:auto; line-height:1.5; margin:.5em 0}
.combat-result{text-align:center; padding:1em}
.combat-result.win h3{color:var(--xp)} .combat-result.lose h3{color:var(--hp)}
.loot{margin:.6em 0; line-height:1.7}

/* процедурная графика (SVG) */
.banner{position:relative; border:1px solid var(--line); border-radius:10px; overflow:hidden; margin-bottom:.8rem; height:120px}
.banner .art-bg{display:block; width:100%; height:100%}
.banner-cap{position:absolute; left:8px; bottom:6px; color:#fff; font-weight:700; font-size:.85rem; text-shadow:0 1px 4px #000, 0 0 8px #000}
.art-mob{width:100%; height:100%; display:block}
.mob-art{width:64px; height:64px; margin:0 auto; background:radial-gradient(circle at 50% 40%, rgba(255,255,255,.06), transparent 70%)}
.ic-art{width:48px; height:48px; float:right; margin-left:.4em}
.art-item{width:100%; height:100%}
.combat-backdrop{position:relative; height:84px; border-radius:8px; overflow:hidden; margin-bottom:.6em; border:1px solid var(--line)}
.combat-backdrop .art-bg{width:100%; height:100%}

/* рамка: картинка сразу, SVG/emoji — только если картинка не нашлась (.no-img) */
.artframe{position:relative; display:block; width:100%; height:100%}
.artframe>svg,.artframe>img{position:absolute; inset:0; width:100%; height:100%}
.artframe>img{object-fit:cover}
.af-mob>img,.af-item>img{object-fit:contain}
.artframe>svg{display:none}
.bemoji{position:absolute; inset:0; display:none; align-items:center; justify-content:center; font-size:1.8rem}
.artframe.no-img>svg{display:block}
.artframe.no-img>.bemoji{display:flex}
.bicon{position:relative; width:48px; height:48px}

.turn-timer{font-size:.8rem;color:var(--muted);margin-top:3px}
.turn-timer.urgent{color:#f44336;font-weight:bold}

/* приветственное окно для новых игроков */
.welcome-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .3s ease}
.welcome-overlay.closing{animation:fadeOut .3s ease forwards}
.welcome-modal{background:linear-gradient(160deg,#2c2218,#1a140e);border:2px solid var(--gold);border-radius:16px;padding:2rem 1.8rem;max-width:380px;width:100%;text-align:center;box-shadow:0 0 40px rgba(217,164,65,.25)}
.welcome-icon{font-size:3.5rem;margin-bottom:.5rem}
.welcome-modal h2{color:var(--gold2);margin:.2em 0 .8em;font-size:1.25rem}
.welcome-modal p{color:var(--txt);margin-bottom:.7em;line-height:1.6;font-size:.93em}
.welcome-cta{width:100%;margin-top:.8rem;padding:.75em;font-size:1rem;letter-spacing:.02em}
@keyframes fadeIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes fadeOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}

/* PvP арена */
.pvp-stats{display:flex;gap:1rem;margin:.4em 0 .8em;flex-wrap:wrap}
.pvp-stats span{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:.3em .8em;font-size:.9em}
.pvp-card{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;margin-bottom:.5rem}
.pvp-card-info{display:flex;flex-direction:column;gap:.1rem;font-size:.85em}
.bot-tag{font-size:.85em;opacity:.7}
.pvp-result{position:relative;background:var(--panel);border:2px solid var(--line);border-radius:10px;padding:1rem;text-align:center;margin-bottom:.6em}
.pvp-result-close{position:absolute;top:.4em;right:.5em;background:none;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1}
.pvp-result-close:hover{color:var(--gold)}
.pvp-result.win{border-color:#6fa84f}
.pvp-result.lose{border-color:#b5403a}
.pvp-result-title{font-size:1.3rem;font-weight:700;margin-bottom:.3em}
.pvp-result.win .pvp-result-title{color:#6fa84f}
.pvp-result.lose .pvp-result-title{color:#b5403a}
.pvp-result-vs{margin-bottom:.5em;color:var(--muted);font-size:.9em}
.pvp-log{font-size:.75rem;color:var(--muted);margin:.5em 0;text-align:left;max-height:120px;overflow-y:auto}
.pvp-rewards{font-size:.85em;margin:.5em 0;color:var(--gold2)}

/* таблица лидеров */
.lb-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem;overflow-x:auto}
.lb-box h3{margin-top:0}

/* реферальная программа */
.ref-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
.ref-stats{display:flex;gap:.8rem;margin:.5em 0;flex-wrap:wrap}
.ref-stats span{background:var(--panel2);padding:.3em .7em;border-radius:6px;font-size:.9em}
.ref-link-row{display:flex;gap:.4em;align-items:center;flex-wrap:wrap;margin:.6em 0}
.ref-link-input{flex:1;min-width:0;background:#120d08;border:1px solid var(--line);color:var(--txt);padding:.35em .6em;border-radius:6px;font-size:.8em;outline:none}
.ref-table{width:100%;border-collapse:collapse;font-size:.82em;margin-top:.5em}
.ref-table th,.ref-table td{padding:.35em .4em;text-align:left;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.ref-table th{color:var(--muted);font-weight:600;font-size:.78em;text-transform:uppercase;white-space:nowrap}
.ref-table td:first-child,.ref-table th:first-child{width:1.6em;text-align:center}
.ref-table tr.self td{background:rgba(217,164,65,.08);color:var(--gold2)}
.lb-table .c-lvl{width:2.4em;text-align:center;white-space:nowrap}
.lb-table .c-xp{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.lb-table .c-kills{width:3em;text-align:right;white-space:nowrap;overflow-wrap:normal}

@media(max-width:640px){
  .log{display:none}
  .form-row label{width:auto}
  .kvgrid{grid-template-columns:1fr}
}

/* professions */
.prof-list{font-size:.85rem}
.prof-row{margin-bottom:.45rem}
.prof-row .pname{font-size:.9rem}
.prof-list .hint{margin-top:.4em}

/* tavern */
.tavern-stats{font-size:.82rem; margin:.3em 0 .6em}
.tavern-result{background:var(--panel2); border:1px solid var(--gold); border-radius:8px;
  padding:.5em .8em; margin:.5em 0; color:var(--gold2); font-weight:600}
.tavern-row{display:flex; gap:.4em; flex-wrap:wrap; margin:.3em 0}
.thimble-row{display:flex; align-items:center; gap:.4em; flex-wrap:wrap; margin:.3em 0}

/* marketplace */
.mk-list{display:flex; flex-direction:column; gap:.35em; margin:.3em 0 .6em}
.mk-lot{display:flex; align-items:center; gap:.5em; background:var(--panel2); border:1px solid var(--line);
  border-radius:8px; padding:.4em .6em; font-size:.85rem}
.mk-lot span:first-child{flex:1}
.mk-price{color:var(--gold); font-weight:700; white-space:nowrap}
.mk-sell{display:flex; flex-direction:column; gap:.3em; margin:.3em 0 .6em}
.mk-sell-row{display:flex; align-items:center; gap:.4em; flex-wrap:wrap; font-size:.82rem}
.mk-sell-row span:first-child{flex:1; min-width:140px}
.mk-input{width:90px; background:#1a130c; color:var(--txt); border:1px solid var(--line);
  border-radius:6px; padding:.3em .4em; font-family:inherit; font-size:.8rem}

/* clans */
.clan-buff{background:var(--panel2); border:1px solid var(--gold); border-radius:8px;
  padding:.5em .8em; margin:.5em 0; color:var(--gold2)}
.clan-list,.clan-roster{display:flex; flex-direction:column; gap:.35em; margin:.3em 0 .6em}
.clan-row,.clan-member{display:flex; align-items:center; gap:.5em; background:var(--panel2);
  border:1px solid var(--line); border-radius:8px; padding:.4em .6em; font-size:.85rem}
.clan-row span:first-child,.clan-member span:first-child{flex:1}

/* нижний мир */
.lw-collect{background:var(--panel2); border:1px solid var(--gold); border-radius:10px; padding:.7em .9em; margin:.5em 0 .8em; display:flex; flex-direction:column; gap:.5em}
.lw-collect.full{border-color:var(--danger)}
.lw-list{display:flex; flex-direction:column; gap:.5em}
.lw-row{display:flex; align-items:center; gap:.6em; background:var(--panel2); border:1px solid var(--line); border-radius:10px; padding:.5em .7em}
.lw-icon{font-size:1.9rem; width:1.6em; text-align:center; flex-shrink:0}
.lw-body{flex:1; min-width:0; font-size:.85rem}
.lw-desc{font-size:.74rem}
.lw-rate{color:var(--gold2); font-size:.8rem; margin-top:.15em}
.lw-note{color:#6fa84f; font-size:.74rem}

/* сборки экипировки (лоадауты) */
.loadouts{display:flex; flex-direction:column; gap:.3em; margin:.3em 0}
.loadout-row{display:flex; align-items:center; gap:.4em; background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.35em .6em; font-size:.85rem}
.loadout-row span:first-child{flex:1; min-width:0}
.loadout-save{margin-top:.4em}

/* рарность и сет-бонусы */
.item-card.rar{border-left-width:3px}
.rar-tag{font-size:.72rem; font-weight:700}
.ic-set{font-size:.74rem; color:var(--gold)}
.equip-set{font-size:.66rem; color:var(--gold)}
.set-block{background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.5em .7em; margin:.4em 0}
.set-title{color:var(--gold2); font-weight:700; font-size:.9rem; margin-bottom:.25em}
.set-bonus{font-size:.8rem; color:var(--muted); padding:.1em 0}
.set-bonus.on{color:var(--txt)}
.set-bonus.on b{color:#6fa84f}

/* кодекс коллекции сетов */
.codex-set{background:var(--panel2); border:1px solid var(--line); border-radius:10px; padding:.7em .8em; margin:.6em 0}
.codex-head{display:flex; justify-content:space-between; align-items:baseline; gap:.6em; flex-wrap:wrap; margin-bottom:.5em}
.codex-title{color:var(--gold2); font-weight:700; font-size:1rem}
.codex-pieces{display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:.4em; margin-bottom:.5em}
.codex-piece{background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:.4em; text-align:center; font-size:.72rem}
.codex-piece.locked{opacity:.5; filter:grayscale(1)}
.cp-icon{width:54px; height:72px; margin:0 auto .2em}
.cp-icon .artframe{width:100%; height:100%}
.cp-icon .artframe>img{width:100%; height:100%; object-fit:contain; border-radius:6px}
.cp-emoji{font-size:1.6rem; display:flex; align-items:center; justify-content:center; width:100%; height:100%}
.cp-name{font-weight:700; color:var(--gold2); line-height:1.15; min-height:2.3em; display:flex; align-items:center; justify-content:center}
.cp-rar{color:var(--muted); font-size:.66rem}
.codex-bonuses{border-top:1px dashed var(--line); padding-top:.4em}

/* кузница сетов */
.forge-sub{color:var(--gold2); font-weight:700; margin:.7em 0 .3em; font-size:.92rem}
.forge-row{display:flex; align-items:center; justify-content:space-between; gap:.5em; flex-wrap:wrap;
  background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.4em .7em; margin:.3em 0; font-size:.85rem}
.forge-slots{display:flex; gap:.25em}
.forge-slots .mini{padding:.2em .5em}

/* достижения */
.ach-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.5rem; margin:.4em 0}
.ach{display:flex; gap:.5em; align-items:flex-start; background:var(--panel2); border:1px solid var(--line);
  border-radius:8px; padding:.5em .6em}
.ach.got{border-color:var(--gold)}
.ach.locked{opacity:.55}
.ach-ic{font-size:1.6rem; line-height:1; flex:0 0 auto}
.ach-name{font-weight:700; color:var(--gold2); font-size:.88rem}
.ach.locked .ach-name{color:var(--muted)}
.ach-desc{font-size:.76rem; color:var(--muted)}
.ach-reward{font-size:.74rem; color:#6fa84f; margin-top:.15em}

/* заточка предметов */
.plus-tag{color:#f0c469; font-weight:800}
.equip-acts{display:flex; gap:.25em; justify-content:center; flex-wrap:wrap}

/* дары дня */
.daily-login{background:linear-gradient(180deg,#33271a,#241a10); border:1px solid var(--gold); border-radius:10px; padding:.8em 1em; margin:.5em 0}
.daily-login.done{border-color:var(--line); opacity:.85}
.dl-head{font-size:1rem; margin-bottom:.3em}
.dl-reward{color:var(--gold2); font-weight:700; margin:.3em 0}
.daily-all{background:var(--panel2); border:1px solid var(--gold); border-radius:8px; padding:.5em .8em; margin:.4em 0; font-size:.9rem}
.daily-all.done{opacity:.7; border-color:var(--line)}
.daily-q{background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.5em .7em; margin:.35em 0}
.daily-q.done{opacity:.65}
.dq-head{font-size:.9rem; margin-bottom:.25em}
.dq-foot{display:flex; justify-content:space-between; align-items:center; gap:.5em; margin-top:.25em}
.dq-reward{font-size:.78rem; color:#6fa84f}

/* барахолка: табы и карточки */
.mk-tabs{display:grid; grid-template-columns:repeat(4,1fr); gap:.4em; margin:.5em 0 .8em}
.mk-tab{background:#33271a; border:1px solid var(--line); color:var(--txt); border-radius:8px;
  padding:.45em .3em; font-size:.82rem; line-height:1.15; white-space:normal; word-break:break-word; text-align:center; min-height:2.8em}
.mk-tab.on{border-color:var(--gold); color:var(--gold2); background:#3f2f1c}
.mk-subtabs{display:flex; gap:.4em; margin:.2em 0 .6em; flex-wrap:wrap}
.mk-subtab{background:#2a2018; border:1px solid var(--line); color:var(--txt); border-radius:8px; padding:.3em .7em; font-size:.82rem}
.mk-subtab.on{border-color:var(--gold); color:var(--gold2)}
.mk-h4{color:var(--gold); margin:.7em 0 .3em; font-size:.9rem}
.mk-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.5rem}
.mk-card{display:flex; gap:.5em; background:var(--panel2); border:1px solid var(--line); border-left-width:3px; border-radius:8px; padding:.5em}
.mk-card-art{width:56px; height:56px; flex:0 0 auto}
.mk-card-body{flex:1; min-width:0; display:flex; flex-direction:column; gap:.15em}
.mk-card-name{font-size:.85rem}
.mk-card-stats{font-size:.76rem; color:var(--txt)}
.mk-card-foot{display:flex; align-items:center; gap:.4em; flex-wrap:wrap; margin-top:.2em}
.mk-card-foot .mk-input{width:5.5em}

/* табы покоев героя (3 колонки) */
.mk-tabs-3{grid-template-columns:repeat(3,1fr)}

/* кнопка сброса в Совете */
.council-reset{display:block; margin-top:1.2em}

/* табы покоев героя (5 штук, адаптивно) */
.mk-tabs-hero{grid-template-columns:repeat(5,1fr)}
@media(max-width:560px){ .mk-tabs-hero{grid-template-columns:repeat(3,1fr)} }

/* нижний мир: гейт и стройка */
.lw-gate{background:#2a1f12; border:1px solid var(--gold); border-radius:8px; padding:.6em .8em; margin:.5em 0; font-size:.9rem}
.lw-build{display:flex; align-items:center; gap:.5em; min-width:160px}
.lw-build .bar{flex:1; min-width:90px}

/* почасовые лимиты действий */
.limit-badge{display:inline-block; background:#241a10; border:1px solid var(--line); border-radius:8px;
  padding:.3em .7em; margin:.2em 0 .5em; font-size:.82rem; color:var(--muted)}
.limit-badge b{color:var(--gold2)}
.limit-badge.empty{border-color:var(--danger); color:#d98a82}
.limit-badge.empty b{color:#d98a82}

/* кнопка «одеть лучшее» в Кодексе */
.codex-actions{margin-top:.4em}

/* промокод */
.promo-mine{display:flex; align-items:center; gap:.5em; flex-wrap:wrap; margin:.4em 0; font-size:.9rem}
.promo-code{font-size:1.05rem; letter-spacing:.08em; color:var(--gold2); background:#1c150e;
  border:1px dashed var(--gold); border-radius:6px; padding:.1em .5em}

/* гнёзда и усилители */
.sockets{display:flex; gap:.3em; flex-wrap:wrap; justify-content:center; margin:.25em 0}
.sock{width:30px; height:26px; border:1px solid var(--line); border-radius:6px; background:#1c150e; font-size:.95rem; line-height:1; padding:0}
.sock.filled{border-color:var(--gold)}
.sock.add{color:var(--gold2); border-style:dashed}
.sock-sel{width:34px; height:26px; border:1px dashed var(--line); border-radius:6px; background:#1c150e; color:var(--muted); font-size:.85rem}
.gem-forge{display:flex; flex-direction:column; gap:.3em; margin:.3em 0}
.gem-row{display:flex; align-items:center; justify-content:space-between; gap:.5em; background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.3em .6em; font-size:.85rem}
.gem-btns{display:flex; gap:.25em}
.gem-btns .mini small{opacity:.8}

/* клановые улучшения */
.clan-ups{display:flex; flex-direction:column; gap:.35em; margin:.3em 0}
.clan-up{display:flex; align-items:center; justify-content:space-between; gap:.6em; background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.4em .7em}
.clan-up-info{font-size:.85rem}
.clan-up-info .muted{font-size:.78rem}

/* роли/управление кланом */
.clan-member-r{display:flex; align-items:center; gap:.3em}
.clan-member-r .mini{padding:.15em .4em; font-size:.72rem}
.clan-apps{display:flex; flex-direction:column; gap:.3em; margin:.3em 0}
.tag-ok{background:#1f5e2f; color:#a7f3b6}
.tag-no{background:#5e1f1f; color:#f3a7a7}

/* клановый рейд */
.raid-box{background:var(--panel2); border:1px solid var(--line); border-radius:10px; padding:.6em .7em; margin:.3em 0}
.raid-head{display:flex; align-items:center; gap:.5em; margin-bottom:.4em}
.raid-bar{position:relative; height:22px; background:#2a1414; border:1px solid var(--line); border-radius:11px; overflow:hidden; margin-bottom:.5em}
.raid-bar-fill{position:absolute; left:0; top:0; bottom:0; background:linear-gradient(90deg,#a31616,#e23b3b); transition:width .3s}
.raid-bar-txt{position:absolute; left:0; right:0; top:0; bottom:0; display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:600; text-shadow:0 1px 2px #000}
.raid-top{margin-top:.4em; font-size:.85rem}
.raid-reward{background:#1f5e2f; border:1px solid #2f8f47; border-radius:8px; padding:.45em .7em; margin:.3em 0; display:flex; align-items:center; justify-content:space-between; gap:.5em}

/* клан-доска: сообщение дня + лог */
.motd{background:var(--panel2); border:1px solid var(--line); border-left:3px solid #c8a13a; border-radius:8px; padding:.5em .7em; margin:.3em 0}
.motd-title{font-size:.8rem; margin-bottom:.2em}
.motd-text{font-size:.92rem; white-space:pre-wrap; word-break:break-word}
.clan-log{display:flex; flex-direction:column; gap:.15em; max-height:220px; overflow-y:auto}
.clan-log-row{display:flex; justify-content:space-between; gap:.6em; font-size:.82rem; padding:.2em .3em; border-bottom:1px solid rgba(255,255,255,.05)}

/* клан-арсенал (магазин с арендой) */
.clan-shop{display:flex; flex-direction:column; gap:.3em; margin:.3em 0}
.shop-row{display:flex; align-items:center; justify-content:space-between; gap:.6em; background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.4em .7em}
.shop-info{font-size:.85rem}
.shop-info .muted{font-size:.78rem}
.shop-act{display:flex; align-items:center; gap:.3em; white-space:nowrap}
.item-card.rented{border-left-color:#c8a13a !important; box-shadow:inset 0 0 0 1px rgba(200,161,58,.3)}
.rent-tag{font-size:.72rem; color:#e6c869; font-weight:600}

/* вкладки внутри клана */
.clan-tabs{display:flex; flex-wrap:wrap; gap:.3em; margin:.4em 0}
.clan-tab{flex:1 1 auto; min-width:max-content; padding:.4em .6em; font-size:.82rem; background:var(--panel2); border:1px solid var(--line); border-radius:8px; color:var(--fg); cursor:pointer}
.clan-tab.active{background:var(--accent,#c8a13a); color:#1a1208; border-color:var(--accent,#c8a13a); font-weight:600}
.clan-tab-body{margin-top:.3em}
