:root{
  --bg:#ffffff;
  --chip:#efefef;
  --chip-hover:#e3e3e3;
  --text:#222;
  --muted:#8a8a8a;
  --radius:16px;
  --panel-w:420px;
  --header-h:52px;
  --accent:#4a6cf7;
  --brand:#4884d6;
}
*{box-sizing:border-box;margin:0;padding:0}
html{height:100%}
body{min-height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}

/* ---------- Top header bar ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  height:var(--header-h);
  background:linear-gradient(90deg,#4884d6 0%,#5a93e0 55%,#4884d6 100%);
  display:flex;align-items:center;gap:14px;
  padding:0 18px;color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.14);
}
.topbar .title{font-weight:700;font-size:17px;letter-spacing:.2px}
.topbar .spacer{flex:1}
.topbar .login-btn{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;
  height:36px;padding:0 18px;border-radius:999px;
  background:#fff;color:var(--brand);
  font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  transition:transform .12s, box-shadow .15s, background .15s;
}
.topbar .login-btn:hover{background:#f1f6ff;box-shadow:0 4px 14px rgba(0,0,0,.24)}
.topbar .login-btn:active{transform:scale(.96)}
.topbar .login-btn svg{flex:0 0 auto}

/* ---------- App shell ---------- */
.app{display:flex;align-items:flex-start}
.main{flex:1 1 auto;min-width:0;padding:0 14px 40px}

/* ---------- Top chips bar ---------- */
.chips{
  position:sticky;top:var(--header-h);z-index:30;
  display:flex;align-items:center;gap:10px;
  padding:14px 4px;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);
  /* на всю ширину; если категорий много — горизонтальный скролл,
     если мало (контент влезает) — overflow-x:auto скролл не покажет */
  width:100%;
  overflow-x:auto;
  scrollbar-width:thin;
}
.chips::-webkit-scrollbar{height:6px}
.chips::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:999px}
.chips::-webkit-scrollbar-track{background:transparent}
.icon-btn{
  flex:0 0 auto;
  width:44px;height:44px;border-radius:14px;border:none;
  background:var(--chip);cursor:pointer;
  display:grid;place-items:center;color:#333;
  transition:background .15s;
}
.icon-btn:hover{background:var(--chip-hover)}
.chip{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;
  height:44px;padding:4px 16px 4px 4px;border:none;cursor:pointer;
  background:var(--chip);border-radius:999px;
  font-size:14px;font-weight:600;color:#2b2b2b;white-space:nowrap;
  transition:transform .12s,background .15s,box-shadow .15s;
}
.chip:hover{background:var(--chip-hover)}
.chip:active{transform:scale(.97)}
.chip.is-active{box-shadow:inset 0 0 0 2px #1a1a1a}
.chip img{width:38px;height:38px;border-radius:999px;object-fit:cover;flex:0 0 auto}

/* ---------- Masonry ---------- */
.masonry{
  column-count:6;
  column-gap:14px;
  margin-top:6px;
}
@media(max-width:1200px){.masonry{column-count:5}}
@media(max-width:992px){.masonry{column-count:4}}
@media(max-width:760px){.masonry{column-count:3}}
@media(max-width:520px){.masonry{column-count:2}}

.card{
  position:relative;
  break-inside:avoid;
  margin-bottom:14px;
  border-radius:var(--radius);
  overflow:hidden;
  cursor:zoom-in;
  background:#eee;
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{transform:scale(1.03);z-index:5;box-shadow:0 12px 26px rgba(0,0,0,.18)}
.card img{display:block;width:100%;height:240px;object-fit:cover;transition:transform .4s ease}
.card:hover img{transform:scale(1.05)}
.card .card-title{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:18px 12px 10px;color:#fff;font-size:13px;font-weight:700;line-height:1.25;
  background:linear-gradient(transparent,rgba(0,0,0,.72));
  opacity:0;transition:opacity .2s;pointer-events:none;
}
.card:hover .card-title{opacity:1}
.card::after{
  content:"";position:absolute;inset:0;
  background:rgba(0,0,0,.10);opacity:0;transition:opacity .18s;
  pointer-events:none;
}
.card:hover::after{opacity:1}
.card .dots{
  position:absolute;bottom:10px;right:10px;z-index:3;
  width:30px;height:30px;border-radius:999px;border:none;cursor:pointer;
  background:rgba(255,255,255,.92);color:#222;
  display:grid;place-items:center;font-weight:700;
  opacity:0;transform:translateY(4px);transition:.18s;
}
.card:hover .dots{opacity:1;transform:none}
.card.is-selected{outline:3px solid var(--accent);outline-offset:-3px}

/* ---------- Right detail panel ---------- */
.panel{
  flex:0 0 0;width:0;
  align-self:stretch;
  display:flex;flex-direction:column;align-items:center;
  box-shadow:-8px 0 28px rgba(0,0,0,.10);
  overflow:hidden;
  position:sticky;top:var(--header-h);
  height:calc(100vh - var(--header-h));
  transition:width .35s cubic-bezier(.4,0,.2,1);
}
.panel.open{width:var(--panel-w);flex-basis:var(--panel-w)}
/* light fade + slide-in of the iframe while the panel expands */
.panel-frame{
  opacity:0;
  transform:translateX(26px);
  transition:opacity .35s ease .12s, transform .35s ease .12s;
}
.panel.open .panel-frame{
  opacity:1;
  transform:none;
}

/* iframe со страницей компании занимает всю панель */
.panel-frame{
  flex:1 1 auto;min-height:0;
  width:var(--panel-w);
  border:0;
  background:#fff;
}
.panel-close{
  position:absolute;top:12px;left:12px;z-index:5;
  width:34px;height:34px;border-radius:999px;border:none;cursor:pointer;
  background:rgba(0,0,0,.45);color:#fff;font-size:18px;
  display:grid;place-items:center;backdrop-filter:blur(4px);
}
.panel-close:hover{background:rgba(0,0,0,.65)}

.empty,.feed-status{padding:24px;color:var(--muted);font-size:14px}

/* hint shown before anything is selected */
.hint{
  position:fixed;right:18px;bottom:18px;z-index:40;
  background:#111;color:#fff;font-size:13px;padding:10px 16px;border-radius:999px;
  box-shadow:0 8px 20px rgba(0,0,0,.25);
  opacity:1;transition:opacity .3s;
}
.hint.hide{opacity:0;pointer-events:none}

/* ---------- Mobile: full-screen panel ---------- */
@media (max-width:600px){
  /* убираем любой горизонтальный сдвиг/свайп всей страницы */
  html,body{overflow-x:hidden}
  .app{overflow-x:hidden}
  /* фон под открытой панелью не скроллится и не дёргается */
  body.panel-open{overflow:hidden}

  .panel{
    position:fixed;
    inset:0;                 /* top/right/bottom/left = 0 — на весь экран */
    width:0;height:100%;
    max-width:100%;
    z-index:100;
    box-shadow:none;
    /* разрешаем только вертикальную прокрутку, запрещаем тянуть вправо-влево */
    touch-action:pan-y;
    overscroll-behavior:contain;
  }
  .panel.open{width:100%;flex-basis:auto}
  .panel-frame{width:100%}
}