/* ═══════════════════════════════════════════════════════════════
   addextra — Dzen-style homepage shell: search-centric top bar,
   persistent left icon sidebar, category tabs, compact list + promo.
   Scoped under "dzen-" so it layers on top of main.css without
   touching the existing dark "premium news" component styles.
   ═══════════════════════════════════════════════════════════════ */

.dzen-topbar-inner{
  display:flex;align-items:center;gap:1.25rem;
  height:62px;
}
.dzen-search-form{
  flex:1 1 auto;max-width:640px;margin:0 auto;
  display:flex;align-items:center;gap:0;
  background:var(--surface2);border:1px solid var(--border2);
  border-radius:999px;overflow:hidden;height:42px;
}
.dzen-search-form:focus-within{border-color:var(--accent)}
.dzen-search-input{
  flex:1;height:100%;background:transparent;border:none;color:var(--text);
  padding:0 .25rem 0 1.1rem;font-family:var(--font);font-size:.92rem;outline:none;
}
.dzen-search-input::placeholder{color:var(--muted)}
.dzen-search-btn{
  height:100%;padding:0 1.4rem;border-radius:999px;
  background:#ffce30;color:#1a1500;font-weight:700;font-size:.85rem;
  flex-shrink:0;
}
.dzen-search-btn:hover{background:#ffd84d}
[data-theme="light"] .dzen-search-btn{color:#332700}
.dzen-topbar-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}
.dzen-login-btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.5rem 1.1rem;border-radius:999px;
  background:var(--surface2);color:var(--text);font-weight:600;font-size:.85rem;
  border:1px solid var(--border2);white-space:nowrap;
}
.dzen-login-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ── Shell: sidebar + content ── */
.dzen-shell{display:flex;align-items:flex-start;width:100%;max-width:var(--max-w);margin:0 auto}
.dzen-sidebar{
  position:sticky;top:62px;flex-shrink:0;width:208px;
  height:calc(100vh - 62px);overflow-y:auto;
  padding:1.25rem .75rem;
  border-right:1px solid var(--border);
  display:none;
}
.dzen-side-link{
  display:flex;align-items:center;gap:.8rem;
  padding:.6rem .85rem;border-radius:999px;
  color:var(--text2);font-size:.88rem;font-weight:600;
  margin-bottom:.15rem;transition:all var(--t);width:100%;text-align:left;
}
.dzen-side-link svg{width:19px;height:19px;stroke-width:1.8;flex-shrink:0}
.dzen-side-link:hover{background:var(--surface2);color:var(--text)}
.dzen-side-link.active{background:var(--a10);color:var(--accent)}
.dzen-sidebar-divider{height:1px;background:var(--border);margin:.75rem .85rem}
.dzen-shell-content{flex:1;min-width:0;width:100%}

/* Tablet: narrow icon-only sidebar (no hamburger needed at this width) */
@media(min-width:768px){
  .dzen-sidebar{display:block;width:72px;padding:1.25rem .5rem}
  .dzen-side-link{justify-content:center;padding:.65rem}
  .dzen-side-label{display:none}
}
/* Desktop: full sidebar with labels */
@media(min-width:1024px){
  .dzen-sidebar{width:208px;padding:1.25rem .75rem}
  .dzen-side-link{justify-content:flex-start;padding:.6rem .85rem}
  .dzen-side-label{display:inline}
}
@media(max-width:767px){
  .dzen-search-form{display:none}
}

/* ── Ad row (two side-by-side slots under the topbar) ── */
.dzen-ad-row{
  display:flex;gap:1rem;flex-wrap:wrap;
  padding:1rem 0;
}
.dzen-ad-row .ad-outer{flex:1 1 280px;margin:0}
.dzen-ad-row .ad-block{border-radius:var(--r-lg);overflow:hidden}

/* ── Category tabs ── */
.dzen-tabs{
  display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;
  padding-bottom:.25rem;margin-bottom:1.25rem;
}
.dzen-tabs::-webkit-scrollbar{display:none}
.dzen-tab{
  flex-shrink:0;padding:.5rem 1.05rem;border-radius:999px;
  font-size:.85rem;font-weight:600;color:var(--text2);
  background:transparent;white-space:nowrap;transition:all var(--t);
}
.dzen-tab:hover{color:var(--text)}
.dzen-tab.active{background:var(--surface2);color:var(--text)}

/* ── Compact news list + promo box ── */
.dzen-home-grid{
  display:grid;grid-template-columns:1fr;gap:1.5rem;
  margin-bottom:2rem;
}
@media(min-width:900px){
  .dzen-home-grid{grid-template-columns:1fr 320px}
}
.dzen-news-list{list-style:none}
.dzen-news-item{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:.65rem 0;border-bottom:1px solid var(--border);
}
.dzen-news-item:last-child{border-bottom:none}
.dzen-news-icon{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface2);font-size:.85rem;margin-top:.1rem;
}
.dzen-news-item a{color:var(--text);font-weight:500;font-size:.95rem;line-height:1.4}
.dzen-news-item a:hover{color:var(--accent)}
.dzen-news-more{
  display:inline-flex;align-items:center;gap:.3rem;
  margin-top:.6rem;color:var(--text2);font-size:.85rem;font-weight:600;
  background:none;border:none;cursor:pointer;
}
.dzen-news-more:hover{color:var(--accent)}
.dzen-news-item.dzen-news-hidden{display:none}

.dzen-promo-box{
  border-radius:var(--r-lg);overflow:hidden;position:relative;
  background:var(--surface2);border:1px solid var(--border);
  display:block;aspect-ratio:4/5;
}
.dzen-promo-box img{width:100%;height:100%;object-fit:cover}
.dzen-promo-label{
  position:absolute;top:.75rem;left:.75rem;
  background:rgba(0,0,0,.55);color:#fff;font-size:.68rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;padding:.25em .6em;border-radius:4px;
}
.dzen-promo-caption{
  position:absolute;left:0;right:0;bottom:0;padding:1rem .9rem;
  background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;
  font-weight:700;font-size:.95rem;line-height:1.35;
}

/* ── Public-page filter selects (search type/sort) — admin.css defines
   its own .filter-select but public pages don't load admin.css. ── */
.filter-select{
  background:var(--surface2);border:1px solid var(--border2);
  border-radius:var(--r);padding:.4rem .7rem;color:var(--text);
  font-size:.82rem;font-family:var(--font);transition:border-color var(--t);
}
.filter-select:focus{outline:none;border-color:var(--accent)}

/* ── Card "•••" menu ── */
.card-menu-wrap{position:relative}
.card-menu-btn{
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;color:var(--muted);
  transition:background var(--t),color var(--t);flex-shrink:0;
}
.card-menu-btn:hover{background:var(--surface2);color:var(--text)}
.card-menu-dropdown{
  display:none;position:absolute;right:0;top:calc(100% + 4px);z-index:20;
  min-width:190px;background:var(--surface2);border:1px solid var(--border2);
  border-radius:var(--r-lg);box-shadow:var(--shadow);padding:.35rem;
}
.card-menu-dropdown.open{display:block}
.card-menu-item{
  display:flex;align-items:center;gap:.6rem;width:100%;
  padding:.5rem .65rem;border-radius:var(--r);
  font-size:.85rem;color:var(--text2);text-align:left;
}
.card-menu-item:hover{background:var(--surface3);color:var(--text)}
.card-menu-item svg{width:16px;height:16px;flex-shrink:0}
.card-menu-item.is-active{color:var(--accent)}
.card-fading-out{opacity:0;transform:scale(.97);transition:opacity .25s var(--ease),transform .25s var(--ease);pointer-events:none}

/* ── Share modal ── */
.share-modal-backdrop{
  display:none;position:fixed;inset:0;z-index:400;
  background:rgba(0,0,0,.55);align-items:center;justify-content:center;
}
.share-modal-backdrop.open{display:flex}
.share-modal{
  background:var(--surface2);border-radius:var(--r-lg);padding:1.5rem;
  width:min(360px,90vw);box-shadow:var(--shadow-lg);
}
.share-modal h3{font-size:1.05rem;margin-bottom:1rem}
.share-modal-link-row{
  display:flex;gap:.5rem;margin-bottom:1rem;
}
.share-modal-link-row input{
  flex:1;background:var(--surface);border:1px solid var(--border2);
  border-radius:var(--r);padding:.5rem .7rem;color:var(--text2);font-size:.8rem;
}
.share-modal-socials{display:flex;gap:.6rem;flex-wrap:wrap}
.share-modal-socials a{
  display:flex;align-items:center;gap:.4rem;padding:.5rem .85rem;
  border-radius:999px;background:var(--surface);border:1px solid var(--border2);
  font-size:.8rem;color:var(--text2);
}
.share-modal-socials a:hover{border-color:var(--accent);color:var(--accent)}
.share-modal-close{display:flex;justify-content:flex-end;margin-top:1rem}
