:root{--hub-max:1540px}
:focus-visible{outline:2px solid var(--accent,#ff8a3c);outline-offset:3px}
button,[role="button"],a{touch-action:manipulation}
.app{max-width:var(--hub-max);margin:0 auto}
.gate-card{max-width:460px}
@media (max-width:1020px){
  .app{grid-template-columns:72px minmax(0,1fr)}
  .sb-brand{justify-content:center;padding-inline:10px}.sb-brand>div:not(.lg),.sb-brand b,.sb-brand small,.sb-nav button span,.sb-bal .t,.sb-bal b,.sb-bal .u,.sb-bal .topup{display:none}
  .sb-nav{padding-inline:8px}.sb-nav button{justify-content:center;padding:12px 8px}.sb-nav button svg{width:20px;height:20px}.sb-bal{margin-inline:8px;padding:10px 6px}.sb-bal .bar{margin-top:0}
  #newChat{position:static;width:100%;box-shadow:none}
}
@media (max-width:640px){
  .app{display:block;min-height:100dvh;height:auto}.sb{position:sticky;top:0;z-index:40;display:flex;flex-direction:row;align-items:center;height:58px;border-right:0;border-bottom:1px solid var(--line2)}
  .sb-brand{padding:10px}.sb-nav{display:flex;flex-direction:row;overflow:auto;padding:6px;gap:2px}.sb-nav button{width:42px;flex:none}.sb-sp,.sb-bal{display:none}.main{min-height:calc(100dvh - 58px)}
  .gate{padding:16px}.gate-card{padding:28px 20px}.view{padding-inline:14px!important}.chat-layout{min-height:calc(100dvh - 130px)}
  .cat-grid,.home-grid,.img-grid{grid-template-columns:1fr!important}.mpick{max-width:calc(100vw - 28px)}
}
@media (max-width:360px){.view{padding-inline:10px!important}.btn{padding-inline:12px}.chat-composer{padding-inline:8px}}
/* ===== Настройки ===== */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:960px;align-items:start}
.settings-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r,16px);padding:22px;display:grid;gap:16px;align-content:start;box-shadow:0 1px 0 rgba(255,255,255,.02) inset}
.settings-card h3{font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--cream);margin:0;padding-bottom:14px;border-bottom:1px solid var(--line2)}
.settings-card label{display:grid;gap:8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--soft)}
.settings-card input:not([type=checkbox]),.settings-card select,.settings-card textarea{
  width:100%;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-sm,11px);
  padding:11px 12px;color:var(--text);font-family:var(--font,inherit);font-size:14px;font-weight:500;
  letter-spacing:normal;text-transform:none;line-height:1.5;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s}
.settings-card select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:36px;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B2A493' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;background-size:15px}
.settings-card select option{background:var(--card);color:var(--text)}
.settings-card textarea{min-height:112px;resize:vertical}
.settings-card textarea::placeholder,.settings-card input::placeholder{color:var(--soft);font-weight:400}
.settings-card input:not([type=checkbox]):hover,.settings-card select:hover,.settings-card textarea:hover{border-color:#3A2C20}
.settings-card input:not([type=checkbox]):focus,.settings-card select:focus,.settings-card textarea:focus{
  outline:0;border-color:rgba(255,138,60,.55);box-shadow:0 0 0 3px rgba(255,138,60,.14)}
.settings-card .check{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:normal;
  text-transform:none;color:var(--text);cursor:pointer;padding:2px 0}
.settings-card .check input[type=checkbox]{width:17px;height:17px;flex:none;accent-color:var(--accent);cursor:pointer;margin:0}
.settings-card .btn{justify-self:start}
.settings-card>.btn:last-child,.settings-card>a.btn:last-child{margin-top:2px}
.settings-muted{color:var(--muted);font-size:13px;line-height:1.65;margin:0}
.btn-danger{background:rgba(255,100,128,.08);border-color:rgba(255,100,128,.28);color:#ff9aac}
.btn-danger:hover:not(:disabled){background:rgba(255,100,128,.16);border-color:rgba(255,100,128,.5);color:#ffb3c1}
/* ===== Диалог пакетов ===== */
.hub-dialog{color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px;max-width:520px;width:calc(100% - 28px);box-shadow:0 24px 70px rgba(0,0,0,.55)}
.hub-dialog::backdrop{background:rgba(6,5,4,.72);backdrop-filter:blur(3px)}
.hub-dialog h2{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--cream);margin:0 0 6px}
.dialog-close{float:right;border:0;background:none;color:var(--soft);font-size:26px;line-height:1;cursor:pointer;padding:0 2px;transition:color .2s}
.dialog-close:hover{color:var(--cream)}
.package-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line2)}
.package-row:last-child{border-bottom:0}
.package-row b{display:block;color:var(--cream)}
.package-row small{color:var(--muted)}
/* ===== Изображения: не хватает токенов ===== */
.img-over{display:none;font-size:12px;line-height:1.55;color:#ff9aac;background:rgba(255,100,128,.07);
  border:1px solid rgba(255,100,128,.22);border-radius:var(--r-sm,11px);padding:9px 11px}
.img-price.over{border-color:rgba(255,100,128,.32)!important;background:rgba(255,100,128,.06)!important}
.img-price.over #imgPrice{color:#ff9aac}
.mobile-packages{display:none}
/* ===== Переключатель языка в сайдбаре (не должен растягиваться как nav-кнопка) ===== */
.sb-nav .lang-sw{align-self:flex-start;flex:none;width:auto;margin:14px 0 2px 1px}
.sb-nav .lang-sw button{display:inline-flex;width:auto;gap:0;padding:5px 9px;border-radius:999px;
  font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;background:none}
.sb-nav .lang-sw button:hover{background:none}
.sb-nav .lang-sw button.on:hover{color:var(--ink)}
.gate-card .lang-sw{margin:18px auto 0;display:flex;width:max-content}
@media(max-width:1020px){.sb-nav .lang-sw{align-self:center;margin:12px 0 2px}.sb-nav .lang-sw button{padding:5px 7px}}
@media(max-width:640px){
  .settings-grid{grid-template-columns:1fr;gap:14px}.settings-card{padding:18px}
  .sb-nav .lang-sw{align-self:center;margin:0 0 0 4px;order:99}
}
/* в сайдбаре Hub место есть — оставляем полноценный сегмент-контрол, а не мобильный чип-переключатель */
@media(max-width:560px){
  .sb-nav .lang-sw{padding:2px;border:1px solid var(--line);background:rgba(255,240,220,.035)}
  .sb-nav .lang-sw .lang-sw-pill{display:block}
  .sb-nav .lang-sw button{display:inline-flex;padding:5px 7px;border:0;background:none;color:var(--soft)}
  .sb-nav .lang-sw button.on{display:inline-flex;color:var(--ink)}
}
@media(max-width:1020px){.mobile-packages{display:grid;place-items:center;position:fixed;right:16px;bottom:72px;z-index:50;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,138,60,.35);background:var(--grad);color:var(--ink);box-shadow:0 10px 28px rgba(0,0,0,.35)}.mobile-packages svg{width:19px;height:19px}}
