/* ══════════════════════════════════════════════════════════════════════
   LITH — Complete UI Redesign
   Philosophy: Silicon-age editorial. Dense information, zero noise.
   Inspired by Bloomberg Terminal × Linear × Vercel.
══════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&family=IBM+Plex+Sans+Condensed:wght@600;700&display=swap');

/* ── TOKENS ─────────────────────────────────────────────────────────── */
:root {
  --f-ui:   'IBM Plex Sans', system-ui, sans-serif;
  --f-head: 'IBM Plex Sans Condensed', sans-serif;
  --f-mono: 'IBM Plex Mono', monospace;

  /* Dark (default) */
  --bg:    #050608;
  --bg1:   #0b0d11;
  --bg2:   #111419;
  --bg3:   #181c23;
  --bg4:   #1e222c;
  --line:  rgba(255,255,255,.055);
  --line2: rgba(255,255,255,.09);
  --line3: rgba(255,255,255,.16);

  --txt:  #dde3ef;
  --txt2: #7a8599;
  --txt3: #3f4a5e;
  --inv:  #050608;

  --a:     #3b82f6;   /* accent: electric blue */
  --a-dim: rgba(59,130,246,.10);
  --a-glo: rgba(59,130,246,.22);
  --g:     #22c55e;   /* green */
  --r:     #ef4444;   /* red */
  --y:     #eab308;   /* yellow */
  --o:     #f97316;   /* orange */
  --p:     #a78bfa;   /* purple */
  --c:     #06b6d4;   /* cyan */

  /* Category colors — more distinct, less saturated */
  --cat-storage:  #38bdf8;
  --cat-compute:  #fb923c;
  --cat-network:  #34d399;
  --cat-virt:     #a78bfa;
  --cat-proc:     #fbbf24;
  --cat-cloud:    #60a5fa;
  --cat-ai:       #f472b6;
  --cat-power:    #4ade80;
  --cat-general:  #94a3b8;

  --grad-a: linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);
  --grad-h: radial-gradient(ellipse 100% 100% at 50% 0%,rgba(59,130,246,.06) 0%,transparent 70%);
  --grad-card: linear-gradient(160deg,#111419 0%,#0b0d11 100%);

  --sh1: 0 1px 3px rgba(0,0,0,.5);
  --sh2: 0 4px 16px rgba(0,0,0,.55);
  --sh3: 0 16px 48px rgba(0,0,0,.65);

  --r1:  3px;
  --r2:  6px;
  --r3:  10px;
  --r4:  14px;
  --r5:  20px;
  --rf:  9999px;

  --ease:    cubic-bezier(.4,0,.2,1);
  --spring:  cubic-bezier(.34,1.4,.64,1);
  --t:   .15s var(--ease);
  --t2:  .25s var(--ease);
  --t3:  .4s  var(--ease);

  --nav-h:  60px;
  --tab-h:  58px;
  --flt-h:  0px;   /* filter panel height, set by JS */

  --sat: env(safe-area-inset-top,0px);
  --sab: env(safe-area-inset-bottom,0px);
  --sal: env(safe-area-inset-left,0px);
  --sar: env(safe-area-inset-right,0px);
}

[data-theme="light"] {
  --bg:   #f8f9fc;
  --bg1:  #ffffff;
  --bg2:  #f3f4f8;
  --bg3:  #eaecf2;
  --bg4:  #e1e4ec;
  --line:  rgba(0,0,0,.06);
  --line2: rgba(0,0,0,.10);
  --line3: rgba(0,0,0,.18);

  --txt:  #0f1520;
  --txt2: #4a5468;
  --txt3: #8a95a8;
  --inv:  #ffffff;

  --a:     #1d4ed8;
  --a-dim: rgba(29,78,216,.07);
  --a-glo: rgba(29,78,216,.18);
  --g:     #16a34a;
  --r:     #dc2626;
  --y:     #ca8a04;
  --o:     #ea580c;
  --p:     #7c3aed;
  --c:     #0891b2;

  --cat-storage: #0284c7;
  --cat-compute: #c2410c;
  --cat-network: #047857;
  --cat-virt:    #6d28d9;
  --cat-proc:    #b45309;
  --cat-cloud:   #1d4ed8;
  --cat-ai:      #be185d;
  --cat-power:   #15803d;
  --cat-general: #64748b;

  --grad-h: radial-gradient(ellipse 100% 100% at 50% 0%,rgba(29,78,216,.05) 0%,transparent 70%);
  --grad-card: linear-gradient(160deg,#ffffff 0%,#f3f4f8 100%);
  --sh1: 0 1px 3px rgba(0,0,0,.07);
  --sh2: 0 4px 16px rgba(0,0,0,.09);
  --sh3: 0 16px 48px rgba(0,0,0,.11);
}

/* ── RESET ──────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:15px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  font-family:var(--f-ui);background:var(--bg);color:var(--txt);
  line-height:1.6;min-height:100dvh;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overscroll-behavior-y:none;
  transition:background var(--t2),color var(--t2);
}
*{-webkit-tap-highlight-color:transparent}
a{color:var(--a);text-decoration:none}
a:hover{opacity:.8}
img,svg{max-width:100%;display:block}
input,select,textarea,button{font-family:inherit}
button{cursor:pointer}
:focus-visible{outline:1.5px solid var(--a);outline-offset:2px;border-radius:var(--r1)}
:focus:not(:focus-visible){outline:none}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line3);border-radius:2px}
@media(max-width:768px){::-webkit-scrollbar{display:none}}

body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:.015;
}

/* ── NAV ────────────────────────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:400;
  height:calc(var(--nav-h) + var(--sat));
  padding-top:var(--sat);
  background:rgba(5,6,8,.9);
  backdrop-filter:blur(16px) saturate(200%);
  -webkit-backdrop-filter:blur(16px) saturate(200%);
  border-bottom:1px solid var(--line);
}
[data-theme="light"] .nav{background:rgba(248,249,252,.92)}
.nav-inner{
  max-width:1400px;margin:0 auto;
  height:var(--nav-h);
  padding:0 max(16px,var(--sar)) 0 max(16px,var(--sal));
  display:flex;align-items:center;gap:8px;
}
.nav-logo{
  display:flex;align-items:center;gap:9px;flex-shrink:0;
  text-decoration:none;
}
.nav-logo:hover{opacity:.85}
.nav-logo-img{
  width:28px;height:28px;border-radius:var(--r2);flex-shrink:0;
}
.nav-logo-text-block{
  display:flex;flex-direction:column;line-height:1;
}
.nav-logo-name{
  font-family:var(--f-mono);font-size:15px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--txt);
}
.nav-logo-name span{color:var(--a)}
.nav-logo-sub{
  font-size:9px;color:var(--txt3);letter-spacing:.03em;margin-top:2px;
  white-space:nowrap;
}
/* Mobile: hide subtitle, shrink logo */
@media(max-width:767px){
  .nav-logo-sub{display:none}
  .nav-logo-img{width:22px;height:22px}
  .nav-logo-name{font-size:13px}
  .nav-logo{gap:6px}
}
@media(max-width:359px){.nav-logo-text-block{display:none}}
@media(max-width:767px){
  .nav-user,.nav-btn.dng,.nav-btn.pri,.nav-btn[href*="help"]{display:none!important}
  .nav-lbl{display:none}
  /* Only show theme toggle and user avatar area on mobile - everything else in drawer */
  .nav-insights-btn,.nav-fav-wrap{display:none!important}
}
.nav-spacer{flex:1;min-width:0}
.nav-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}
.nav-lbl{display:none}
@media(min-width:600px){.nav-lbl{display:inline}}
.nav-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 10px;border-radius:var(--r2);
  font-size:12px;font-weight:500;
  border:1px solid var(--line2);background:transparent;color:var(--txt2);
  transition:all var(--t);white-space:nowrap;text-decoration:none;line-height:1;
  min-height:32px;
}
.nav-btn:hover{background:var(--bg3);color:var(--txt);border-color:var(--line3);opacity:1}
.nav-btn.pri{background:var(--a);color:#fff;border-color:transparent;font-weight:600}
.nav-btn.pri:hover{filter:brightness(1.12);opacity:1}
.nav-btn.dng{color:var(--r);border-color:var(--r)}
.nav-btn.dng:hover{background:rgba(239,68,68,.1);opacity:1}
.nav-icn{
  width:32px;height:32px;border-radius:var(--r2);
  border:1px solid var(--line2);background:transparent;
  color:var(--txt2);display:flex;align-items:center;justify-content:center;
  font-size:14px;transition:all var(--t);
}
.nav-icn:hover{background:var(--bg3);color:var(--txt)}
.nav-user{
  display:flex;align-items:center;gap:8px;
  padding:5px 12px 5px 5px;border-radius:var(--rf);
  background:var(--bg2);border:1px solid var(--line);flex-shrink:0;
}
.nav-av{
  width:24px;height:24px;border-radius:50%;
  background:var(--grad-a);display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:#fff;font-family:var(--f-mono);flex-shrink:0;
}
.nav-user-info{display:flex;flex-direction:column}
.nav-un{font-size:11px;font-weight:600;color:var(--txt);line-height:1.2}
.nav-ur{font-size:9px;color:var(--a);font-family:var(--f-mono);letter-spacing:.04em}

/* ── MAIN LAYOUT ─────────────────────────────────────────────────────── */
.main-wrapper{
  padding-top:calc(var(--nav-h) + var(--sat));
  min-height:100dvh;position:relative;z-index:1;
}
@media(max-width:767px){
  .main-wrapper{padding-bottom:max(24px,var(--sab))}
}
.container{
  max-width:1400px;margin:0 auto;
  padding-left:max(16px,var(--sal));
  padding-right:max(16px,var(--sar));
}

/* ── BOTTOM TAB BAR ──────────────────────────────────────────────────── */
.tab-bar{
  display:none;
  position:fixed;bottom:0;left:0;right:0;z-index:400;
  height:calc(var(--tab-h) + var(--sab));
  padding-bottom:var(--sab);
  background:rgba(5,6,8,.95);
  border-top:1px solid var(--line);
  backdrop-filter:blur(20px) saturate(200%);
  -webkit-backdrop-filter:blur(20px) saturate(200%);
  grid-template-columns:repeat(4,1fr);
}
[data-theme="light"] .tab-bar{background:rgba(248,249,252,.97)}
.tab-bar{display:none!important}
.tab-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;padding:8px 4px 4px;
  background:none;border:none;color:var(--txt3);
  transition:color var(--t);text-decoration:none;
  position:relative;min-height:var(--tab-h);
}
.tab-btn.active{color:var(--a)}
.tab-btn.active::after{
  content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:24px;height:2px;background:var(--a);border-radius:1px 1px 0 0;
}
.tab-btn:active .tab-icon{transform:scale(.84)}
.tab-icon{font-size:19px;line-height:1;transition:transform var(--spring)}
.tab-lbl{font-size:9px;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em}


/* ── HAMBURGER MENU (mobile) ─────────────────────────────────────────── */
.hamburger{
  display:none;
  width:38px;height:38px;border-radius:var(--r2);
  border:1px solid var(--line2);background:transparent;
  color:var(--txt2);flex-direction:column;
  align-items:center;justify-content:center;gap:5px;
  cursor:pointer;transition:all var(--t);flex-shrink:0;
  margin-right:2px;
}
.hamburger:hover{background:var(--bg3);color:var(--txt)}
.hamburger-line{
  width:16px;height:1.5px;background:currentColor;
  border-radius:1px;transition:all var(--t);
}
@media(max-width:1023px){.hamburger{display:flex}}

/* Slide-in mobile nav drawer */
.mob-drawer-backdrop{
  display:none;position:fixed;inset:0;z-index:800;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
}
.mob-drawer-backdrop.open{display:block;animation:fadeIn .2s var(--ease)}
.mob-drawer{
  position:fixed;top:0;left:0;bottom:0;z-index:900;
  width:min(280px,85vw);
  background:var(--bg1);border-right:1px solid var(--line3);
  transform:translateX(-100%);
  transition:transform .28s cubic-bezier(.32,.72,0,1);
  display:flex;flex-direction:column;
  overflow-y:auto;
}
[data-theme="light"] .mob-drawer{background:#fff}
.mob-drawer.open{transform:translateX(0)}
.mob-drawer-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:max(16px,var(--sat)) 16px 16px;
  border-bottom:1px solid var(--line);flex-shrink:0;
}
.mob-drawer-logo{
  display:flex;align-items:center;gap:9px;
}
.mob-drawer-logo img{width:28px;height:28px;border-radius:var(--r2);flex-shrink:0}
.mob-drawer-logo-text{display:flex;flex-direction:column}
.mob-drawer-logo-name{
  font-family:var(--f-mono);font-size:13px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--txt);line-height:1.1;
}
.mob-drawer-logo-name span{color:var(--a)}
.mob-drawer-logo-sub{
  font-size:9px;color:var(--txt3);letter-spacing:.04em;margin-top:1px;
}
.mob-drawer-close{
  width:30px;height:30px;border-radius:var(--r2);
  border:1px solid var(--line2);background:transparent;
  color:var(--txt3);font-size:16px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all var(--t);
}
.mob-drawer-close:hover{background:var(--bg3);color:var(--txt)}
.mob-drawer-user{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;border-bottom:1px solid var(--line);flex-shrink:0;
  background:var(--bg2);
}
.mob-drawer-av{
  width:36px;height:36px;border-radius:50%;
  background:var(--grad-a);display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;color:#fff;font-family:var(--f-mono);flex-shrink:0;
}
.mob-drawer-user-name{font-size:13px;font-weight:600;color:var(--txt);line-height:1.2}
.mob-drawer-user-role{font-size:10px;color:var(--a);font-family:var(--f-mono);margin-top:1px}
.mob-nav-section{padding:8px 0;border-bottom:1px solid var(--line);flex-shrink:0}
.mob-nav-section:last-child{border-bottom:none}
.mob-nav-lbl{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--txt3);padding:8px 16px 4px;
}
.mob-nav-link{
  display:flex;align-items:center;gap:10px;
  padding:11px 16px;color:var(--txt2);text-decoration:none;
  font-size:14px;transition:all var(--t);cursor:pointer;
  background:none;border:none;width:100%;text-align:left;
  font-family:var(--f-ui);
}
.mob-nav-link:hover{background:var(--bg2);color:var(--txt)}
.mob-nav-link.active{color:var(--a);font-weight:600}
.mob-nav-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}
.mob-nav-link.danger{color:var(--r)}
.mob-drawer-spacer{flex:1}

/* ── BRIEFING ────────────────────────────────────────────────────────── */
.briefing-section{
  position:relative;overflow:hidden;
  padding:24px 0 20px;
  background:var(--grad-h) var(--bg);
  border-bottom:1px solid var(--line);
}
.briefing-inner{position:relative;z-index:1}
.briefing-eyebrow{
  display:flex;align-items:center;gap:8px;
  flex-wrap:wrap;margin-bottom:12px;
}
.pill{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 9px;border-radius:var(--rf);
  font-family:var(--f-mono);font-size:10px;font-weight:500;
  letter-spacing:.07em;text-transform:uppercase;
}
.pill-a{background:var(--a-dim);color:var(--a);border:1px solid rgba(59,130,246,.2)}
.pill-m{background:var(--bg3);color:var(--txt3);border:1px solid var(--line2)}
.pill-dot{width:5px;height:5px;border-radius:50%;background:currentColor;animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.briefing-headline{
  font-family:var(--f-head);
  font-size:clamp(20px,4vw,36px);
  font-weight:700;line-height:1.12;
  letter-spacing:-.01em;color:var(--txt);
  margin-bottom:18px;max-width:800px;
}
.briefing-headline em{color:var(--a);font-style:normal}
.briefing-cards{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:8px;margin-bottom:16px;
}
@media(max-width:899px){.briefing-cards{grid-template-columns:1fr 1fr}}
@media(max-width:599px){.briefing-cards{grid-template-columns:1fr;gap:5px}}
.bc{
  background:var(--bg2);border:1px solid var(--line);
  border-radius:var(--r3);padding:12px 13px;
  transition:border-color var(--t);
}
.bc:hover{border-color:var(--line2)}
.bc-lbl{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--txt3);margin-bottom:7px;
}
.bc-txt{font-size:13px;color:var(--txt2);line-height:1.6;font-weight:300}
.topics{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.topic{
  font-size:10px;font-family:var(--f-mono);padding:3px 8px;
  border-radius:var(--rf);background:var(--bg4);
  border:1px solid var(--line2);color:var(--txt2);
}
.briefing-footer{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:wrap;
}
.bstats{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.bstat{display:flex;align-items:baseline;gap:4px}
.bstat-v{font-family:var(--f-mono);font-size:20px;font-weight:600;color:var(--txt)}
.bstat-l{font-family:var(--f-mono);font-size:9px;color:var(--txt3);letter-spacing:.06em;text-transform:uppercase}

/* ── BUTTONS ─────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;border-radius:var(--r2);
  font-size:13px;font-weight:500;
  border:1px solid transparent;
  transition:all var(--t);white-space:nowrap;line-height:1;
  text-decoration:none;font-family:var(--f-ui);
  min-height:34px;user-select:none;
}
.btn-pri{background:var(--a);color:#fff}
.btn-pri:hover{filter:brightness(1.14);transform:translateY(-1px);box-shadow:0 3px 12px var(--a-glo)}
.btn-pri:active{transform:none;filter:brightness(.95)}
.btn-sec{background:var(--bg3);color:var(--txt2);border-color:var(--line2)}
.btn-sec:hover{background:var(--bg4);color:var(--txt);border-color:var(--line3)}
.btn-ghost{background:transparent;color:var(--txt2);border-color:var(--line2)}
.btn-ghost:hover{background:var(--bg2);color:var(--txt)}
.btn-dng{color:var(--r);border-color:var(--r);background:transparent}
.btn-dng:hover{background:rgba(239,68,68,.1)}
.btn:disabled{opacity:.35;cursor:not-allowed;transform:none!important;filter:none!important}
.btn-sm{padding:5px 10px;font-size:11px;min-height:28px}
.btn-full{width:100%;justify-content:center}
.btn .spin{
  display:none;width:12px;height:12px;
  border:1.5px solid rgba(255,255,255,.3);border-top-color:currentColor;
  border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;
}
.btn.loading .spin{display:block}
.btn.loading .btn-text{display:none}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══════════════════════════════════════════════════════════════════════
   FILTER SYSTEM — completely rebuilt
   Desktop: persistent top bar with all controls visible
   Tablet:  compact bar + expandable row
   Mobile:  "Filters" button → full-screen slide-up panel
══════════════════════════════════════════════════════════════════════ */

/* ── Sticky wrapper ── */
.flt-wrap{
  position:sticky;
  top:calc(var(--nav-h) + var(--sat));
  z-index:300;
  background:var(--bg1);
  border-bottom:1px solid var(--line);
  overflow:visible;
}

/* ── Desktop: single row ── */
.flt-bar{
  display:flex;align-items:center;gap:6px;
  height:48px;min-height:48px;max-height:48px;
  padding:0 max(16px,var(--sal));
  max-width:1400px;margin:0 auto;
  position:relative;
  overflow:visible; /* allow dropdowns to escape */
}

/* Search input — has its own icon */
.flt-search-wrap{
  position:relative;flex-shrink:0;
  display:flex;align-items:center;
}
.flt-search-icon{
  position:absolute;left:9px;
  font-size:12px;color:var(--txt3);pointer-events:none;
  line-height:1;
}
.flt-search{
  width:180px;height:32px;
  padding:0 10px 0 28px;
  border-radius:var(--rf);
  border:1px solid var(--line2);
  background:var(--bg2);color:var(--txt);
  font-size:12px;font-family:var(--f-ui);
  transition:border-color var(--t),width var(--t2),box-shadow var(--t);
}
.flt-search:focus{
  outline:none;border-color:var(--a);
  box-shadow:0 0 0 2px var(--a-dim);
  width:240px;
}
.flt-search::placeholder{color:var(--txt3)}

/* Divider */
.flt-div{flex-shrink:0;width:1px;height:20px;background:var(--line2);margin:0 2px}

/* Custom select chips — NOT native <select> on desktop */
.flt-chip{
  position:relative;flex-shrink:0;
}
.flt-chip-btn{
  display:inline-flex;align-items:center;gap:5px;
  height:32px;padding:0 10px;
  border-radius:var(--rf);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt2);font-size:12px;font-family:var(--f-ui);
  cursor:pointer;transition:all var(--t);white-space:nowrap;
  user-select:none;
}
.flt-chip-btn:hover{background:var(--bg3);color:var(--txt);border-color:var(--line3)}
.flt-chip-btn.active{
  background:var(--a-dim);color:var(--a);
  border-color:rgba(59,130,246,.3);
}
.flt-chip-btn.active .flt-chip-arrow{color:var(--a)}
.flt-chip-lbl{font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--txt3);margin-right:2px}
.flt-chip-val{font-weight:500}
.flt-chip-arrow{font-size:8px;color:var(--txt3);transition:transform var(--t)}
.flt-chip-btn.open .flt-chip-arrow{transform:rotate(180deg)}
.flt-chip-clear{
  display:none;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;
  background:var(--a);color:#fff;font-size:9px;font-weight:700;
  cursor:pointer;flex-shrink:0;line-height:1;border:none;
  margin-left:-4px; /* visually tuck against the chip */
}
.flt-chip.active .flt-chip-clear{display:inline-flex}

/* Dropdown panel */
.flt-drop{
  position:absolute;top:calc(100% + 6px);left:0;
  background:var(--bg1);border:1px solid var(--line3);
  border-radius:var(--r3);box-shadow:var(--sh3);
  z-index:600;min-width:220px;max-width:280px;
  overflow:hidden;
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity var(--t),transform var(--t);
}
.flt-drop.open{
  opacity:1;transform:translateY(0);pointer-events:all;
}
.flt-drop-search{
  display:flex;align-items:center;gap:7px;
  padding:8px 10px;border-bottom:1px solid var(--line);
}
.flt-drop-search input{
  flex:1;background:none;border:none;color:var(--txt);
  font-size:12px;font-family:var(--f-ui);
}
.flt-drop-search input:focus{outline:none}
.flt-drop-search input::placeholder{color:var(--txt3)}
.flt-drop-search-icon{color:var(--txt3);font-size:11px;flex-shrink:0}
.flt-drop-list{
  max-height:240px;overflow-y:auto;
  padding:4px;scrollbar-width:thin;
}
.flt-drop-opt{
  display:flex;align-items:center;gap:8px;
  padding:7px 8px;border-radius:var(--r2);
  cursor:pointer;transition:background var(--t);
  font-size:12px;color:var(--txt2);
}
.flt-drop-opt:hover{background:var(--bg3);color:var(--txt)}
.flt-drop-opt.sel{color:var(--a)}
.flt-drop-opt-check{
  width:14px;height:14px;border-radius:var(--r1);
  border:1px solid var(--line3);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:8px;color:transparent;
  transition:all var(--t);background:transparent;
}
.flt-drop-opt.sel .flt-drop-opt-check{
  background:var(--a);border-color:var(--a);color:#fff;
}
.flt-drop-opt-badge{
  margin-left:auto;font-family:var(--f-mono);font-size:9px;
  color:var(--txt3);flex-shrink:0;
}

/* Date range row inside dropdown */
.flt-date-row{
  padding:8px 10px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
}
.flt-date-row label{
  display:flex;flex-direction:column;gap:3px;
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.07em;color:var(--txt3);
  margin:0; /* reset browser default label margin */
}
.flt-date-row input[type="date"]{
  width:100%;padding:5px 7px;
  border:1px solid var(--line2);border-radius:var(--r2);
  background:var(--bg2);color:var(--txt);
  font-size:11px;font-family:var(--f-mono);
  transition:border-color var(--t);
}
.flt-date-row input[type="date"]:focus{
  outline:none;border-color:var(--a);
}

/* ── Active filter pills (below bar) ── */
.flt-active-row{
  display:none;align-items:center;gap:5px;flex-wrap:wrap;
  padding:6px max(16px,var(--sal)) 7px;
  max-width:1400px;margin:0 auto;
  border-top:1px solid var(--line);
}
.flt-active-row.has-filters{display:flex}
.flt-active-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 8px;border-radius:var(--rf);
  background:var(--a-dim);border:1px solid rgba(59,130,246,.2);
  color:var(--a);font-size:11px;font-family:var(--f-mono);
  animation:pillIn .15s var(--spring);
}
@keyframes pillIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}
.flt-active-pill-x{
  cursor:pointer;opacity:.7;transition:opacity var(--t);
  background:none;border:none;color:inherit;font-size:11px;
  padding:0;line-height:1;display:flex;align-items:center;
}
.flt-active-pill-x:hover{opacity:1}
.flt-count{
  margin-left:auto;font-family:var(--f-mono);font-size:11px;color:var(--txt3);
  white-space:nowrap;
}
.flt-count strong{color:var(--a)}

/* Reset button */
.flt-reset-btn{
  display:inline-flex;align-items:center;gap:4px;
  padding:4px 8px;border-radius:var(--rf);
  border:1px solid var(--line);background:transparent;
  color:var(--txt3);font-size:10px;font-family:var(--f-mono);
  text-transform:uppercase;letter-spacing:.06em;
  cursor:pointer;transition:all var(--t);
}
.flt-reset-btn:hover{border-color:var(--r);color:var(--r)}

/* ── Mobile: filter button + slide-up panel ── */
.flt-mob-bar{
  display:none;
  align-items:center;gap:7px;
  padding:0 max(16px,var(--sal));
  height:48px;max-width:1400px;margin:0 auto;
}
@media(max-width:767px){
  .flt-bar{display:none}
  .flt-mob-bar{display:flex}
}
.flt-mob-search{
  flex:1;height:34px;padding:0 10px 0 10px;
  border-radius:var(--rf);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt);font-size:13px;font-family:var(--f-ui);
}
.flt-mob-search:focus{outline:none;border-color:var(--a)}
.flt-mob-search::placeholder{color:var(--txt3)}
.flt-mob-btn{
  flex-shrink:0;
  display:flex;align-items:center;gap:5px;
  height:34px;padding:0 12px;
  border-radius:var(--rf);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt2);font-size:12px;font-family:var(--f-ui);
  cursor:pointer;transition:all var(--t);white-space:nowrap;
}
.flt-mob-btn:hover{background:var(--bg3);color:var(--txt)}
.flt-mob-btn.has-active{
  background:var(--a-dim);color:var(--a);
  border-color:rgba(59,130,246,.3);
}
.flt-mob-count-badge{
  background:var(--a);color:#fff;
  font-size:9px;font-weight:700;font-family:var(--f-mono);
  min-width:16px;height:16px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  padding:0 4px;
}

/* ── Slide-up filter panel (mobile) ── */
.flt-panel-backdrop{
  display:none;position:fixed;
  top:calc(var(--nav-h) + var(--sat));
  left:0;right:0;bottom:0;
  z-index:800;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  animation:fadeIn .2s var(--ease);
}
.flt-panel-backdrop.open{display:block}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.flt-panel{
  position:fixed;
  top:calc(var(--nav-h) + var(--sat));
  bottom:0;left:0;right:0;z-index:900;
  background:var(--bg1);
  border-top:1px solid var(--line3);
  padding:0 0 max(24px,var(--sab));
  transform:translateY(100%);
  transition:transform .3s cubic-bezier(.32,.72,0,1);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.flt-panel-handle{display:none}
.flt-panel.open{transform:translateY(0)}
.flt-panel-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px 12px;
  border-bottom:1px solid var(--line);
}
.flt-panel-title{
  font-family:var(--f-mono);font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;color:var(--txt);
}
.flt-panel-done{
  padding:6px 14px;border-radius:var(--rf);
  background:var(--a);color:#fff;font-size:12px;font-weight:600;
  border:none;cursor:pointer;font-family:var(--f-ui);
}
.flt-section{padding:14px 20px;border-bottom:1px solid var(--line)}
.flt-section:last-child{border-bottom:none}
.flt-section-lbl{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--txt3);margin-bottom:9px;
}
.flt-panel-opts{display:flex;flex-wrap:wrap;gap:6px}
.flt-panel-opt{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 12px;border-radius:var(--rf);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt2);font-size:12px;cursor:pointer;
  transition:all var(--t);user-select:none;
}
.flt-panel-opt.sel{
  background:var(--a-dim);border-color:rgba(59,130,246,.3);color:var(--a);
}
.flt-panel-date{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.flt-panel-date label{
  display:flex;flex-direction:column;gap:5px;
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.07em;color:var(--txt3);
}
.flt-panel-date input[type="date"]{
  width:100%;padding:8px 10px;
  border:1px solid var(--line2);border-radius:var(--r2);
  background:var(--bg2);color:var(--txt);
  font-size:14px;font-family:var(--f-ui);
  -webkit-appearance:none;
}
.flt-panel-date input[type="date"]:focus{outline:none;border-color:var(--a)}
/* ── END FILTER SYSTEM ── */

/* ── FEED ────────────────────────────────────────────────────────────── */
.feed-section{padding:16px 0 24px}
.feed-layout{
  display:grid;grid-template-columns:1fr 256px;
  gap:18px;align-items:start;
}
@media(max-width:1023px){.feed-layout{grid-template-columns:1fr}}
@media(max-width:1023px){.sidebar{display:none}}
.feed-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:10px;gap:10px;
}
.feed-title{
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:.08em;color:var(--txt3);
}
.feed-grid{display:flex;flex-direction:column;gap:5px}

/* ── ARTICLE CARDS ───────────────────────────────────────────────────── */
.article-card{
  background:var(--grad-card);
  border:1px solid var(--line);
  border-radius:var(--r3);
  padding:13px 14px 11px;
  position:relative;overflow:hidden;
  transition:border-color var(--t),box-shadow var(--t);
  animation:fadeUp .18s var(--ease) both;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.article-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;
  width:2px;background:transparent;transition:background var(--t);
}
@media(hover:hover){
  .article-card:hover{border-color:var(--line2);box-shadow:var(--sh1)}
  .article-card:hover::before{background:var(--a)}
}
@media(hover:none){
  .article-card:active{background:var(--bg3)}
}
.card-title,.summary-body{user-select:text}
.card-top{display:flex;align-items:flex-start;gap:8px;margin-bottom:5px}
.card-title{
  font-size:14px;font-weight:500;color:var(--txt);
  line-height:1.42;flex:1;min-width:0;
}
.card-title a{color:inherit;transition:color var(--t)}
.card-title a:hover{color:var(--a);opacity:1}
.card-cat{
  font-family:var(--f-mono);font-size:8px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;
  padding:3px 6px;border-radius:var(--r1);
  white-space:nowrap;flex-shrink:0;
}
.cat-storage       {background:rgba(56,189,248,.1);  color:var(--cat-storage)}
.cat-compute       {background:rgba(251,146,60,.1);  color:var(--cat-compute)}
.cat-networking    {background:rgba(52,211,153,.1);  color:var(--cat-network)}
.cat-virtualization{background:rgba(167,139,250,.1); color:var(--cat-virt)}
.cat-processors    {background:rgba(251,191,36,.1);  color:var(--cat-proc)}
.cat-cloud         {background:rgba(96,165,250,.1);  color:var(--cat-cloud)}
.cat-ai_ml         {background:rgba(244,114,182,.1); color:var(--cat-ai)}
.cat-power_cooling {background:rgba(74,222,128,.1);  color:var(--cat-power)}
.cat-general       {background:rgba(148,163,184,.1); color:var(--cat-general)}
.card-meta{
  display:flex;align-items:center;gap:8px;
  margin-bottom:5px;flex-wrap:wrap;
}
.card-src{
  font-family:var(--f-mono);font-size:10px;font-weight:600;color:var(--a);
}
.card-dt{font-family:var(--f-mono);font-size:10px;color:var(--txt3)}
.vendor-tags{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:7px}
.vtag{
  font-family:var(--f-mono);font-size:9px;font-weight:400;
  padding:2px 6px;border-radius:var(--r1);
  background:var(--bg3);border:1px solid var(--line2);
  color:var(--txt3);letter-spacing:.04em;
}
.sum-toggle{
  display:inline-flex;align-items:center;gap:4px;
  background:none;border:none;padding:0;
  font-size:11px;color:var(--a);font-family:var(--f-ui);
  cursor:pointer;transition:opacity var(--t);
}
.sum-toggle:active{opacity:.6}
.sum-arrow{transition:transform var(--t);display:inline-block}
.sum-toggle.open .sum-arrow{transform:rotate(180deg)}
.sum-body{
  display:none;margin-top:9px;
  padding:10px 12px;border-radius:var(--r2);
  background:var(--bg3);border-left:2px solid var(--a);
  font-size:13px;color:var(--txt2);line-height:1.65;font-weight:300;
}
.sum-body.show{display:block;animation:fadeIn .15s ease}
.sum-body.pending{color:var(--txt3);font-style:italic}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.card-link{
  display:inline-flex;align-items:center;gap:3px;
  font-size:11px;color:var(--txt3);margin-top:7px;
  transition:color var(--t);
}
.card-link:hover{color:var(--a);opacity:1}

/* ── EMPTY STATE ─────────────────────────────────────────────────────── */
.empty-state{text-align:center;padding:60px 20px}
.empty-icon{font-size:36px;margin-bottom:12px;opacity:.3}
.empty-title{
  font-family:var(--f-mono);font-size:14px;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;color:var(--txt2);margin-bottom:5px;
}
.empty-desc{font-size:13px;color:var(--txt3);font-weight:300}

/* ── PAGINATION ──────────────────────────────────────────────────────── */
.pagination{
  display:flex;align-items:center;justify-content:center;
  gap:4px;margin-top:18px;flex-wrap:wrap;
}
.pg-btn{
  min-width:34px;height:34px;border-radius:var(--r2);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt2);font-size:12px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all var(--t);font-family:var(--f-mono);padding:0 7px;
}
.pg-btn:hover{background:var(--bg3);color:var(--txt);border-color:var(--line3)}
.pg-btn.active{background:var(--a);color:#fff;border-color:var(--a)}
.pg-btn:disabled{opacity:.3;cursor:not-allowed}

/* ── SIDEBAR ─────────────────────────────────────────────────────────── */
.sidebar{display:flex;flex-direction:column;gap:10px}
@media(min-width:1024px){
  .sidebar{
    position:sticky;
    top:calc(var(--nav-h) + var(--sat) + 48px + 12px);
    max-height:calc(100dvh - var(--nav-h) - var(--sat) - 80px);
    overflow-y:auto;
  }
}
.s-card{
  background:var(--bg1);border:1px solid var(--line);
  border-radius:var(--r3);padding:12px;overflow:hidden;
}
.s-title{
  font-family:var(--f-mono);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.1em;
  color:var(--txt3);margin-bottom:10px;
}
.src-item{
  display:flex;align-items:center;gap:7px;padding:5px 0;
  border-bottom:1px solid var(--line);cursor:pointer;
  transition:all var(--t);
}
.src-item:last-child{border-bottom:none}
.src-item:hover .src-name{color:var(--a)}
.src-check{
  width:14px;height:14px;border-radius:var(--r1);
  border:1px solid var(--line3);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:8px;color:transparent;font-weight:700;
  transition:all var(--t);
}
.src-check.on{background:var(--a);border-color:var(--a);color:#fff}
.src-name{
  font-size:11px;color:var(--txt2);flex:1;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:color var(--t);
}
.src-cnt{font-family:var(--f-mono);font-size:10px;color:var(--txt3);flex-shrink:0}
.cat-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 0;border-bottom:1px solid var(--line);
}
.cat-row:last-child{border-bottom:none}
.cat-cnt{font-family:var(--f-mono);font-size:10px;color:var(--txt3)}

/* ── TOASTS ──────────────────────────────────────────────────────────── */
.toast-wrap{
  position:fixed;z-index:9999;
  display:flex;flex-direction:column;gap:5px;pointer-events:none;
  bottom:max(18px,var(--sab));right:14px;
}
@media(max-width:767px){
  .toast-wrap{
    bottom:max(16px,var(--sab));
    left:12px;right:12px;
  }
}
.toast{
  pointer-events:all;
  display:flex;align-items:flex-start;gap:8px;
  padding:11px 13px;border-radius:var(--r3);
  font-size:13px;font-weight:400;
  background:var(--bg2);border:1px solid var(--line3);
  color:var(--txt);box-shadow:var(--sh3);
  max-width:320px;animation:toastIn .2s var(--ease);
  font-family:var(--f-ui);
}
@media(max-width:767px){.toast{max-width:100%}}
@keyframes toastIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.toast.success{border-color:var(--g)}
.toast.error{border-color:var(--r)}
.toast.warning{border-color:var(--y)}

/* ── AUTH ────────────────────────────────────────────────────────────── */
.auth-page{
  min-height:100dvh;display:flex;align-items:center;justify-content:center;
  background:var(--bg);
  padding:max(24px,var(--sat)) max(20px,var(--sar)) max(24px,var(--sab)) max(20px,var(--sal));
  position:relative;overflow:hidden;
}
.auth-page::before{
  content:'';position:absolute;inset:0;
  background:var(--grad-h);pointer-events:none;
}
.auth-card{
  background:var(--bg1);border:1px solid var(--line2);
  border-radius:var(--r5);
  padding:clamp(28px,6vw,44px);
  width:100%;max-width:400px;
  position:relative;z-index:1;box-shadow:var(--sh3);
  animation:fadeUp .3s ease;
}
.auth-logo-wrap{text-align:center;margin-bottom:24px}
.auth-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:14px;background:var(--grad-a);
  font-size:15px;font-weight:700;font-family:var(--f-mono);
  color:#fff;letter-spacing:.02em;margin-bottom:10px;
  box-shadow:0 6px 20px var(--a-glo);
}
.auth-app-name{
  font-family:var(--f-mono);font-size:22px;font-weight:600;
  text-transform:uppercase;letter-spacing:.06em;color:var(--txt);
}
.auth-app-name span{color:var(--a)}
.auth-tagline{font-size:12px;color:var(--txt3);margin-top:3px;font-weight:300}
.auth-title{
  font-family:var(--f-head);font-size:22px;font-weight:700;
  color:var(--txt);margin-bottom:4px;
}
.auth-sub{font-size:13px;color:var(--txt3);margin-bottom:20px;font-weight:300}
.form-group{margin-bottom:13px}
.form-label{
  display:block;font-family:var(--f-mono);font-size:10px;
  text-transform:uppercase;letter-spacing:.08em;
  color:var(--txt3);margin-bottom:5px;
}
.form-input{
  width:100%;padding:11px 13px;
  border-radius:var(--r2);border:1px solid var(--line2);
  background:var(--bg2);color:var(--txt);font-size:16px;
  transition:border-color var(--t),box-shadow var(--t);
  -webkit-appearance:none;font-family:var(--f-ui);
}
.form-input:focus{
  outline:none;border-color:var(--a);
  box-shadow:0 0 0 3px var(--a-dim);
}
.form-input::placeholder{color:var(--txt3)}
.form-input.err{border-color:var(--r)}
.auth-submit{
  width:100%;padding:12px;margin-top:6px;
  background:var(--a);color:#fff;font-size:14px;font-weight:600;
  border:none;border-radius:var(--r2);cursor:pointer;
  transition:all var(--t);font-family:var(--f-ui);
}
.auth-submit:hover{filter:brightness(1.12);box-shadow:0 4px 14px var(--a-glo)}
.auth-submit:active{filter:brightness(.94);transform:scale(.99)}
.auth-submit:disabled{opacity:.5;cursor:not-allowed;filter:none;box-shadow:none}
.auth-footer{text-align:center;margin-top:18px;font-size:13px;color:var(--txt3);font-weight:300}
.auth-footer a{color:var(--a);font-weight:500}
.alert{
  display:flex;align-items:flex-start;gap:8px;
  padding:10px 12px;border-radius:var(--r2);
  font-size:13px;margin-bottom:13px;line-height:1.5;font-weight:300;
}
.alert-error{background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.22);color:var(--r)}
.alert-success{background:rgba(34,197,94,.07);border:1px solid rgba(34,197,94,.22);color:var(--g)}
.alert-info{background:var(--a-dim);border:1px solid rgba(59,130,246,.18);color:var(--a)}
.alert-warning{background:rgba(234,179,8,.07);border:1px solid rgba(234,179,8,.22);color:var(--y)}

/* ── ADMIN ───────────────────────────────────────────────────────────── */
.admin-wrap{
  display:grid;grid-template-columns:200px 1fr;
  min-height:calc(100dvh - var(--nav-h) - var(--sat));
}
@media(max-width:768px){
  .admin-wrap{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
  }
}
.admin-nav{background:var(--bg1);border-right:1px solid var(--line);padding:16px 0}
@media(max-width:768px){
  .admin-nav{
    display:flex;flex-direction:row;flex-wrap:nowrap;
    border-right:none;border-bottom:1px solid var(--line);
    padding:0;overflow-x:auto;overflow-y:hidden;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
    width:100%;flex-shrink:0;
  }
  .admin-nav::-webkit-scrollbar{display:none}
  .admin-nav > div{display:none} /* hide the "Back to Feed" div */
}
.admin-nav-link{
  display:flex;align-items:center;gap:8px;padding:9px 18px;
  font-size:12px;color:var(--txt2);cursor:pointer;
  transition:all var(--t);border-left:2px solid transparent;
  text-decoration:none;min-height:38px;font-family:var(--f-ui);
}
.admin-nav-link:hover{background:var(--bg2);color:var(--txt);opacity:1}
.admin-nav-link.active{background:var(--bg2);color:var(--a);border-left-color:var(--a);font-weight:600}
@media(max-width:768px){
  .admin-nav-link{
    border-left:none;border-bottom:2px solid transparent;
    padding:11px 14px;font-size:11px;flex-shrink:0;
    justify-content:center;white-space:nowrap;
  }
  .admin-nav-link.active{
    border-left:none;border-bottom-color:var(--a);background:var(--bg2);
  }
}
.admin-body{padding:22px;overflow:auto}
@media(max-width:640px){.admin-body{padding:14px 12px}}
.admin-h1{
  font-family:var(--f-head);font-size:22px;font-weight:700;
  color:var(--txt);margin-bottom:18px;letter-spacing:.01em;
}
.stats-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
  gap:8px;margin-bottom:18px;
}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr 1fr}}
.stat-card{
  background:var(--bg2);border:1px solid var(--line);
  border-radius:var(--r3);padding:14px 16px;
}
.stat-val{
  font-family:var(--f-mono);font-size:28px;font-weight:600;
  color:var(--txt);line-height:1;margin-bottom:3px;
}
.stat-lbl{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.07em;color:var(--txt3);
}
.tbl-wrap{overflow-x:auto;border-radius:var(--r3);border:1px solid var(--line);-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:12px}
th{
  text-align:left;padding:9px 13px;
  background:var(--bg2);border-bottom:1px solid var(--line2);
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.08em;color:var(--txt3);white-space:nowrap;
}
td{padding:10px 13px;border-bottom:1px solid var(--line);color:var(--txt2);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--bg2)}
.badge{
  display:inline-flex;align-items:center;padding:2px 7px;border-radius:3px;
  font-family:var(--f-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;
}
.badge-admin{background:rgba(167,139,250,.12);color:var(--p)}
.badge-viewer{background:var(--a-dim);color:var(--a)}
.badge-active{background:rgba(34,197,94,.1);color:var(--g)}
.badge-pending{background:rgba(234,179,8,.1);color:var(--y)}
.admin-tab{display:none}
.fetch-log{
  display:none;background:var(--bg2);border:1px solid var(--line);
  border-radius:var(--r2);padding:9px 12px;margin-top:10px;
  font-family:var(--f-mono);font-size:11px;
}
.fetch-row{display:flex;align-items:center;gap:6px;padding:2px 0;color:var(--txt2)}
.fdot{width:5px;height:5px;border-radius:50%;flex-shrink:0}
.fdot-ok{background:var(--g)}
.fdot-err{background:var(--r)}

/* ── PWA BANNER ──────────────────────────────────────────────────────── */
.pwa-banner{
  position:fixed;left:50%;z-index:500;transform:translateX(-50%);
  bottom:max(20px,var(--sab));
  background:var(--bg1);border:1px solid var(--line3);
  border-radius:var(--r4);padding:12px 15px;
  box-shadow:var(--sh3);
  display:flex;align-items:center;gap:12px;
  max-width:min(340px,calc(100vw - 28px));
  animation:slideUp .28s ease;
}
@media(min-width:768px){.pwa-banner{bottom:20px}}
@keyframes slideUp{from{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
.pwa-banner.hidden{display:none}
.pwa-icon-img{width:36px;height:36px;border-radius:9px;flex-shrink:0}
.pwa-text{flex:1;min-width:0}
.pwa-title{font-size:13px;font-weight:600;color:var(--txt)}
.pwa-sub{font-size:11px;color:var(--txt3);margin-top:1px;font-weight:300}
.pwa-actions{display:flex;gap:5px;align-items:center;flex-shrink:0}
.pwa-dismiss{background:none;border:none;color:var(--txt3);cursor:pointer;font-size:16px;padding:4px;line-height:1}

/* ── MISC ────────────────────────────────────────────────────────────── */
.skel{
  background:linear-gradient(90deg,var(--bg2) 25%,var(--bg3) 50%,var(--bg2) 75%);
  background-size:200% 100%;border-radius:var(--r1);
  animation:shimmer 1.4s infinite;
}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.spin{
  display:none;width:12px;height:12px;
  border:1.5px solid rgba(255,255,255,.3);border-top-color:currentColor;
  border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;
}
.btn.loading .spin{display:inline-block}
.btn.loading .btn-text{display:none}

/* ── RESPONSIVE FINE-TUNING ──────────────────────────────────────────── */
@media(min-width:600px) and (max-width:1023px){
  .briefing-section{padding:22px 0 18px}
  .sidebar{display:none}
}
@media(max-width:599px){
  .briefing-section{padding:16px 0 13px}
  .briefing-headline{font-size:18px;margin-bottom:12px}
  .briefing-footer{flex-direction:column;align-items:flex-start;gap:9px}
  .feed-section{padding:12px 0 14px}
  .article-card{padding:12px 12px 10px;border-radius:var(--r3)}
  .card-title{font-size:13px}
  .auth-page{padding:max(12px,var(--sat)) 10px max(12px,var(--sab)) 10px;align-items:flex-end}
  .auth-card{border-radius:var(--r5) var(--r5) 0 0;max-width:100%;padding:26px 18px 28px}
  .admin-body{padding:12px 10px}
  .admin-h1{font-size:18px}
  .stats-grid{grid-template-columns:1fr 1fr}
}
@media(hover:none){
  .article-card:hover{box-shadow:none}
  .btn-pri:hover{transform:none;box-shadow:none}
  .nav-btn:hover{background:transparent;border-color:var(--line2)}
}

/* ══════════════════════════════════════════════════════════════
   INSIGHTS PANEL
══════════════════════════════════════════════════════════════ */

/* ── Layout: feed becomes 3 columns on wide screens ── */
.feed-layout.insights-open {
  grid-template-columns: 1fr 320px;
}
@media(min-width:1280px){
  .feed-layout.insights-open {
    grid-template-columns: 1fr 260px 320px;
  }
  .feed-layout.insights-open .sidebar { display:flex; }
}
@media(max-width:1279px){
  .feed-layout.insights-open .sidebar { display:none; }
}

/* ── Insights toggle in nav ── */
.nav-insights-btn{display:none}                          /* hidden by default */
@media(min-width:768px){.nav-insights-btn{display:inline-flex}} /* show on desktop */
#insightsToggleBtn.active{
  background:var(--a-dim);color:var(--a);border-color:rgba(59,130,246,.3);
}

/* ── Legacy insights toggle button ── */
.insights-toggle-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 11px;border-radius:var(--r2);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt2);font-size:12px;cursor:pointer;
  transition:all var(--t);font-family:var(--f-ui);
}
.insights-toggle-btn:hover{background:var(--bg3);color:var(--txt)}
.insights-toggle-btn.active{
  background:var(--a-dim);color:var(--a);border-color:rgba(59,130,246,.3);
}
.insights-pending-badge{
  background:var(--r);color:#fff;
  font-size:9px;font-weight:700;font-family:var(--f-mono);
  min-width:15px;height:15px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 3px;
  border:1.5px solid var(--bg1);
}

/* ── Panel shell ── */
/* Insights panel — fixed modal, same behaviour as favourites panel */
.insights-panel{
  position:fixed;z-index:900;
  background:var(--bg1);
  display:flex;flex-direction:column;
  transition:transform .3s cubic-bezier(.32,.72,0,1);
}
/* Mobile: slide up from bottom */
@media(max-width:1023px){
  .insights-panel{
    top:calc(var(--nav-h) + var(--sat));
    left:0;right:0;bottom:0;
    border-top:1px solid var(--line3);
    transform:translateY(100%);
  }
  .insights-panel.open{transform:translateY(0)}
}
/* Desktop: slide in from right (left of favourites when both open) */
@media(min-width:1024px){
  .insights-panel{
    top:calc(var(--nav-h) + var(--sat));
    right:0;bottom:0;
    width:420px;max-width:90vw;
    border-left:1px solid var(--line3);
    box-shadow:var(--sh3);
    transform:translateX(100%);
  }
  .insights-panel.open{transform:translateX(0)}
}

/* ── Panel tabs (Mine / Colleagues) ── */
.ipl-tabs{
  display:flex;border-bottom:1px solid var(--line);flex-shrink:0;
}
.ipl-tab{
  flex:1;padding:9px 0;text-align:center;
  font-family:var(--f-mono);font-size:10px;font-weight:600;
  text-transform:uppercase;letter-spacing:.07em;
  color:var(--txt3);cursor:pointer;transition:all var(--t);
  border-bottom:2px solid transparent;position:relative;
  background:none;border-top:none;border-left:none;border-right:none;
  margin-bottom:-1px;
}
.ipl-tab:hover{color:var(--txt2)}
.ipl-tab.active{color:var(--a);border-bottom-color:var(--a)}
.ipl-tab-badge{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--a);color:#fff;
  font-size:8px;font-weight:700;min-width:14px;height:14px;
  border-radius:7px;padding:0 3px;margin-left:4px;
}

/* ── Thread list ── */
.ipl-threads{
  overflow-y:auto;flex-shrink:0;
  max-height:200px;border-bottom:1px solid var(--line);
  scrollbar-width:thin;
}
.ipl-thread{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;cursor:pointer;
  transition:background var(--t);border-bottom:1px solid var(--line);
  min-height:44px;
}
.ipl-thread:last-child{border-bottom:none}
.ipl-thread:hover{background:var(--bg2)}
.ipl-thread.active{background:var(--a-dim)}
.ipl-thread-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--line3);flex-shrink:0;transition:background var(--t);
}
.ipl-thread.active .ipl-thread-dot{background:var(--a)}
.ipl-thread-info{flex:1;min-width:0}
.ipl-thread-title{
  font-size:12px;font-weight:500;color:var(--txt);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  line-height:1.3;
}
.ipl-thread.active .ipl-thread-title{color:var(--a)}
.ipl-thread-meta{
  font-family:var(--f-mono);font-size:9px;color:var(--txt3);
  margin-top:2px;display:flex;align-items:center;gap:6px;
}
.ipl-thread-vis{
  display:inline-flex;align-items:center;gap:2px;
  font-size:8px;padding:1px 5px;border-radius:3px;
  font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.06em;
}
.ipl-thread-vis.shared{background:rgba(34,197,94,.1);color:var(--g)}
.ipl-thread-vis.private{background:var(--bg3);color:var(--txt3)}
.ipl-thread-del{
  flex-shrink:0;background:none;border:none;
  color:var(--txt3);cursor:pointer;font-size:13px;
  padding:2px 4px;border-radius:3px;opacity:0;
  transition:all var(--t);line-height:1;
}
.ipl-thread:hover .ipl-thread-del{opacity:.6}
.ipl-thread-del:hover{opacity:1!important;color:var(--r)}

/* ── Thread new button ── */
.ipl-new-btn{
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:8px;border-bottom:1px solid var(--line);flex-shrink:0;
  background:none;border-top:none;border-left:none;border-right:none;
  cursor:pointer;color:var(--a);font-size:12px;font-family:var(--f-ui);
  transition:background var(--t);width:100%;
}
.ipl-new-btn:hover{background:var(--a-dim)}

/* ── Chat messages area ── */
.ipl-messages{
  flex:1;overflow-y:auto;padding:12px;
  display:flex;flex-direction:column;gap:10px;
  scrollbar-width:thin;min-height:0;
}
.ipl-empty{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:24px 16px;text-align:center;
}
.ipl-empty-icon{font-size:28px;opacity:.3;margin-bottom:8px}
.ipl-empty-title{
  font-family:var(--f-mono);font-size:11px;text-transform:uppercase;
  letter-spacing:.08em;color:var(--txt3);margin-bottom:4px;
}
.ipl-empty-sub{font-size:12px;color:var(--txt3);font-weight:300}

/* ── Message bubbles ── */
.ipl-msg{display:flex;flex-direction:column;gap:3px}
.ipl-msg-user .ipl-bubble{
  align-self:flex-end;max-width:92%;
  background:var(--a-dim);border:1px solid rgba(59,130,246,.2);
  color:var(--txt);border-radius:var(--r3) var(--r3) var(--r1) var(--r3);
}
.ipl-msg-ai .ipl-bubble{
  align-self:flex-start;max-width:100%;
  background:var(--bg2);border:1px solid var(--line);
  color:var(--txt);border-radius:var(--r1) var(--r3) var(--r3) var(--r3);
}
.ipl-bubble{
  padding:9px 12px;font-size:13px;line-height:1.6;font-weight:300;
}
.ipl-bubble p{margin:0 0 8px}
.ipl-bubble p:last-child{margin-bottom:0}
.ipl-msg-ts{
  font-family:var(--f-mono);font-size:9px;color:var(--txt3);
  padding:0 4px;
}
.ipl-msg-user .ipl-msg-ts{text-align:right}

/* Source chips below AI message */
.ipl-sources{
  display:flex;flex-wrap:wrap;gap:4px;padding:4px 0 0;
}
.ipl-src-chip{
  font-family:var(--f-mono);font-size:9px;font-weight:500;
  padding:2px 7px;border-radius:var(--r1);
  background:var(--bg3);border:1px solid var(--line2);
  color:var(--txt3);letter-spacing:.04em;
}
.ipl-src-chip-count{color:var(--a)}

/* Reactions */
.ipl-reactions{
  display:flex;gap:4px;padding:4px 0 0;
  flex-wrap:wrap;
}
.ipl-react-btn{
  background:var(--bg3);border:1px solid var(--line2);
  border-radius:var(--r1);padding:2px 7px;cursor:pointer;
  font-size:12px;transition:all var(--t);color:var(--txt2);
  line-height:1.4;
}
.ipl-react-btn:hover{background:var(--bg4);border-color:var(--line3)}
.ipl-react-btn.mine{background:var(--a-dim);border-color:rgba(59,130,246,.3)}
.ipl-react-display{
  display:inline-flex;align-items:center;gap:3px;
  padding:3px 8px;border-radius:var(--r1);
  background:var(--bg3);border:1px solid var(--line2);
  font-size:13px;color:var(--txt2);
}
.ipl-react-display span{font-size:11px;font-family:var(--f-mono);color:var(--txt3)}

/* Typing / loading indicator */
.ipl-thinking{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;
  background:var(--bg2);border:1px solid var(--line);
  border-radius:var(--r1) var(--r3) var(--r3) var(--r3);
  font-size:12px;color:var(--txt3);font-style:italic;
  align-self:flex-start;
}
.ipl-thinking-dots{display:flex;gap:3px}
.ipl-thinking-dots span{
  width:5px;height:5px;border-radius:50%;background:var(--a);
  animation:iplDot 1.2s infinite;
}
.ipl-thinking-dots span:nth-child(2){animation-delay:.2s}
.ipl-thinking-dots span:nth-child(3){animation-delay:.4s}
@keyframes iplDot{0%,80%,100%{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}

/* Chat area — flex column filling remaining space */
.ipl-chat-area{
  display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;
}

/* Thread visibility + rename controls */
.ipl-thread-ctrl{
  display:flex;align-items:center;gap:6px;
  padding:7px 12px;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);flex-shrink:0;
  background:var(--bg);
}
.ipl-vis-btn{
  display:inline-flex;align-items:center;gap:4px;
  padding:3px 8px;border-radius:var(--rf);
  border:1px solid var(--line2);background:transparent;
  font-size:10px;font-family:var(--f-mono);color:var(--txt3);
  cursor:pointer;transition:all var(--t);text-transform:uppercase;letter-spacing:.06em;
}
.ipl-vis-btn:hover{border-color:var(--g);color:var(--g)}
.ipl-vis-btn.shared{background:rgba(34,197,94,.08);border-color:rgba(34,197,94,.3);color:var(--g)}
.ipl-rename-btn{
  margin-left:auto;background:none;border:none;
  color:var(--txt3);font-size:11px;cursor:pointer;
  padding:2px 6px;border-radius:var(--r1);transition:all var(--t);
  font-family:var(--f-ui);
}
.ipl-rename-btn:hover{background:var(--bg2);color:var(--txt)}

/* ── Input area ── */
.ipl-input-area{
  display:flex;align-items:flex-end;gap:6px;
  padding:10px 10px 10px;border-top:1px solid var(--line);flex-shrink:0;
  background:var(--bg1);
}
.ipl-textarea{
  flex:1;min-height:36px;max-height:100px;
  padding:8px 10px;border-radius:var(--r2);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt);font-size:13px;font-family:var(--f-ui);
  resize:none;line-height:1.45;overflow-y:auto;
  transition:border-color var(--t),box-shadow var(--t);
  scrollbar-width:thin;
}
.ipl-textarea:focus{
  outline:none;border-color:var(--a);
  box-shadow:0 0 0 2px var(--a-dim);
}
.ipl-textarea::placeholder{color:var(--txt3)}
.ipl-textarea:disabled{opacity:.5}
.ipl-send-btn{
  flex-shrink:0;width:34px;height:34px;border-radius:var(--r2);
  background:var(--a);color:#fff;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;transition:all var(--t);
}
.ipl-send-btn:hover{filter:brightness(1.12)}
.ipl-send-btn:disabled{opacity:.4;cursor:not-allowed;filter:none}

/* ── Collab / People panel ── */
.ipl-people{
  padding:12px;overflow-y:auto;flex:1;min-height:0;
}
.ipl-people-section{margin-bottom:16px}
.ipl-people-lbl{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--txt3);margin-bottom:8px;
}
.ipl-person{
  display:flex;align-items:center;gap:8px;
  padding:7px 0;border-bottom:1px solid var(--line);
}
.ipl-person:last-child{border-bottom:none}
.ipl-person-av{
  width:28px;height:28px;border-radius:50%;
  background:var(--grad-a);display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:#fff;font-family:var(--f-mono);flex-shrink:0;
}
.ipl-person-info{flex:1;min-width:0}
.ipl-person-name{font-size:12px;font-weight:500;color:var(--txt);line-height:1.2}
.ipl-person-email{font-size:10px;color:var(--txt3);font-family:var(--f-mono)}
.ipl-person-action{flex-shrink:0}

/* People search */
.ipl-search-wrap{
  display:flex;gap:6px;margin-bottom:12px;
}
.ipl-search-input{
  flex:1;height:32px;padding:0 10px;
  border:1px solid var(--line2);border-radius:var(--r2);
  background:var(--bg2);color:var(--txt);font-size:12px;font-family:var(--f-ui);
}
.ipl-search-input:focus{outline:none;border-color:var(--a)}
.ipl-search-input::placeholder{color:var(--txt3)}
.ipl-search-btn{
  flex-shrink:0;padding:0 12px;height:32px;border-radius:var(--r2);
  background:var(--a);color:#fff;border:none;cursor:pointer;font-size:12px;font-family:var(--f-ui);
}

/* insights-panel mobile handled in main rule above */

/* ══════════════════════════════════════════════════════════════
   FAVOURITES PANEL
══════════════════════════════════════════════════════════════ */

/* ── Star button on article cards ── */
.card-star {
  /* Inline in card-top: between title and category badge */
  flex-shrink:0;
  background:none; border:none; cursor:pointer;
  font-size:15px; line-height:1; padding:2px 3px;
  color:var(--txt3); transition:color var(--t), transform var(--t-spring);
  margin-right:2px;
}
.card-star:hover   { color:var(--y); transform:scale(1.2); }
.card-star.starred { color:var(--y); }
.card-star:active  { transform:scale(.88); }

/* Nudge badge on star button in nav */
.nav-fav-badge {
  position:absolute; top:-4px; right:-4px;
  background:var(--r); color:#fff;
  font-size:8px; font-weight:700; font-family:var(--f-mono);
  min-width:14px; height:14px; border-radius:7px;
  display:flex; align-items:center; justify-content:center; padding:0 3px;
}
.nav-fav-wrap { position:relative; display:none; }
@media(min-width:768px){.nav-fav-wrap{display:inline-flex}}

/* ── Panel shell — full-screen slide-up on mobile, fixed on desktop ── */
.fav-panel-backdrop {
  display:none; position:fixed;
  top:calc(var(--nav-h) + var(--sat));
  left:0; right:0; bottom:0;
  z-index:800; background:rgba(0,0,0,.55);
  backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px);
}
.fav-panel-backdrop.open { display:block; animation:fadeIn .2s var(--ease); }

.fav-panel {
  position:fixed; z-index:900;
  background:var(--bg1);
  display:flex; flex-direction:column;
  transition:transform .3s cubic-bezier(.32,.72,0,1);
}

/* Mobile: slide up from bottom */
@media(max-width:1023px) {
  .fav-panel {
    top:calc(var(--nav-h) + var(--sat));
    left:0; right:0; bottom:0;
    border-top:1px solid var(--line3);
    transform:translateY(100%);
  }
  .fav-panel.open { transform:translateY(0); }
}

/* Desktop: side panel from right */
@media(min-width:1024px) {
  .fav-panel {
    top:calc(var(--nav-h) + var(--sat));
    right:0; bottom:0;
    width:400px; max-width:90vw;
    border-left:1px solid var(--line3);
    box-shadow:var(--sh3);
    transform:translateX(100%);
  }
  .fav-panel.open { transform:translateX(0); }
}

/* ── Panel header ── */
.fav-header {
  display:flex; align-items:center; gap:8px;
  padding:14px 16px 12px;
  border-bottom:1px solid var(--line); flex-shrink:0;
  background:var(--bg1);
}
.fav-header-title {
  font-family:var(--f-mono); font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em; color:var(--txt);
  flex:1;
}
.fav-close-btn {
  width:28px; height:28px; border-radius:var(--r2);
  border:1px solid var(--line2); background:transparent;
  color:var(--txt3); font-size:14px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all var(--t);
}
.fav-close-btn:hover { background:var(--bg3); color:var(--txt); }

/* ── Tabs ── */
.fav-tabs {
  display:flex; border-bottom:1px solid var(--line); flex-shrink:0;
}
.fav-tab {
  flex:1; padding:9px 0; text-align:center;
  font-family:var(--f-mono); font-size:10px; font-weight:600;
  text-transform:uppercase; letter-spacing:.07em;
  color:var(--txt3); cursor:pointer; transition:all var(--t);
  border-bottom:2px solid transparent; margin-bottom:-1px;
  background:none; border-top:none; border-left:none; border-right:none;
}
.fav-tab:hover { color:var(--txt2); }
.fav-tab.active { color:var(--a); border-bottom-color:var(--a); }
.fav-tab-badge {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--r); color:#fff;
  font-size:8px; font-weight:700; min-width:14px; height:14px;
  border-radius:7px; padding:0 3px; margin-left:4px;
}

/* ── Search bar ── */
.fav-search-bar {
  padding:8px 12px; border-bottom:1px solid var(--line); flex-shrink:0;
}
.fav-search-input {
  width:100%; height:32px; padding:0 10px;
  border:1px solid var(--line2); border-radius:var(--r2);
  background:var(--bg2); color:var(--txt);
  font-size:12px; font-family:var(--f-ui);
}
.fav-search-input:focus { outline:none; border-color:var(--a); }
.fav-search-input::placeholder { color:var(--txt3); }

/* ── Article list ── */
.fav-list {
  flex:1; overflow-y:auto; padding:8px 0;
  scrollbar-width:thin; min-height:0;
}

/* ── Article item ── */
.fav-item {
  padding:11px 14px;
  border-bottom:1px solid var(--line);
  transition:background var(--t);
}
.fav-item:last-child { border-bottom:none; }
.fav-item:hover { background:var(--bg2); }

.fav-item-top { display:flex; align-items:flex-start; gap:8px; margin-bottom:4px; }
.fav-item-title {
  font-size:13px; font-weight:500; color:var(--txt);
  line-height:1.4; flex:1; min-width:0;
}
.fav-item-title a { color:inherit; }
.fav-item-title a:hover { color:var(--a); }
.fav-item-cat {
  font-family:var(--f-mono); font-size:8px; font-weight:600;
  text-transform:uppercase; padding:2px 5px; border-radius:var(--r1);
  white-space:nowrap; flex-shrink:0;
}
.fav-item-meta {
  font-family:var(--f-mono); font-size:10px; color:var(--txt3);
  margin-bottom:6px; display:flex; align-items:center; gap:8px;
}
.fav-item-source { color:var(--a); font-weight:600; }

/* Note area */
.fav-note-wrap { margin-bottom:7px; }
.fav-note-display {
  display:flex; align-items:flex-start; gap:6px;
  font-size:12px; color:var(--txt2); line-height:1.5;
  cursor:pointer; padding:5px 7px; border-radius:var(--r2);
  border:1px solid transparent; transition:all var(--t); font-style:italic;
}
.fav-note-display:hover { border-color:var(--line2); background:var(--bg2); font-style:normal; }
.fav-note-display.empty { color:var(--txt3); font-style:normal; }
.fav-note-edit {
  display:none; flex-direction:column; gap:5px;
}
.fav-note-edit.show { display:flex; }
.fav-note-input {
  width:100%; padding:6px 8px;
  border:1px solid var(--a); border-radius:var(--r2);
  background:var(--bg2); color:var(--txt);
  font-size:12px; font-family:var(--f-ui);
  resize:none; min-height:52px;
}
.fav-note-input:focus { outline:none; }
.fav-note-actions { display:flex; gap:5px; }

/* Recommend badge on colleague items */
.fav-rec-badge {
  display:inline-flex; align-items:center; gap:4px;
  font-size:11px; color:var(--a); font-style:italic;
  margin-bottom:5px;
}

/* Item action row */
.fav-item-actions {
  display:flex; align-items:center; gap:5px; flex-wrap:wrap;
  margin-top:5px;
}
.fav-action-btn {
  display:inline-flex; align-items:center; gap:3px;
  padding:3px 8px; border-radius:var(--rf);
  border:1px solid var(--line2); background:transparent;
  color:var(--txt3); font-size:10px; font-family:var(--f-mono);
  text-transform:uppercase; letter-spacing:.05em;
  cursor:pointer; transition:all var(--t); white-space:nowrap;
}
.fav-action-btn:hover { border-color:var(--line3); color:var(--txt); }
.fav-action-btn.vis-shared { border-color:rgba(34,197,94,.3); color:var(--g); background:rgba(34,197,94,.07); }
.fav-action-btn.recommend { border-color:rgba(59,130,246,.3); color:var(--a); }
.fav-action-btn.del:hover  { border-color:var(--r); color:var(--r); }

/* Recommend dropdown */
.fav-rec-drop {
  display:none; margin-top:7px; padding:10px 12px;
  background:var(--bg2); border:1px solid var(--line2);
  border-radius:var(--r2);
}
.fav-rec-drop.open { display:block; animation:fadeIn .15s ease; }
.fav-rec-drop-title {
  font-family:var(--f-mono); font-size:9px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--txt3); margin-bottom:7px;
}
.fav-rec-colleague {
  display:flex; align-items:center; gap:7px;
  padding:4px 0; font-size:12px; color:var(--txt2); cursor:pointer;
}
.fav-rec-colleague input[type="checkbox"] { flex-shrink:0; }
.fav-rec-msg {
  width:100%; margin-top:7px; padding:6px 8px;
  border:1px solid var(--line2); border-radius:var(--r2);
  background:var(--bg3); color:var(--txt);
  font-size:12px; font-family:var(--f-ui); resize:none;
}
.fav-rec-msg:focus { outline:none; border-color:var(--a); }
.fav-rec-send {
  margin-top:7px; width:100%; padding:7px;
  background:var(--a); color:#fff; border:none; border-radius:var(--r2);
  font-size:12px; font-family:var(--f-ui); font-weight:600; cursor:pointer;
}
.fav-rec-send:hover { filter:brightness(1.12); }

/* Empty state */
.fav-empty {
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  padding:48px 20px; text-align:center; flex:1;
}
.fav-empty-icon { font-size:32px; opacity:.3; margin-bottom:10px; }
.fav-empty-title {
  font-family:var(--f-mono); font-size:11px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--txt3); margin-bottom:4px;
}
.fav-empty-sub { font-size:12px; color:var(--txt3); font-weight:300; }

/* ── Insights v2 UI elements ── */
.ipl-msg-footer{display:flex;flex-direction:column;gap:4px;padding:4px 0 0}

.ipl-web-badge{
  font-family:var(--f-mono);font-size:9px;font-weight:600;
  padding:2px 6px;border-radius:var(--r1);
  background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.25);
  color:var(--g);letter-spacing:.04em;
}
.ipl-model-badge{
  font-family:var(--f-mono);font-size:9px;font-weight:700;
  padding:2px 6px;border-radius:var(--r1);
  background:rgba(167,139,250,.1);border:1px solid rgba(167,139,250,.25);
  color:var(--p);letter-spacing:.04em;
}
.ipl-coverage-note{
  font-size:11px;color:var(--y);font-style:italic;
  padding:3px 6px;background:rgba(234,179,8,.07);
  border-radius:var(--r1);border:1px solid rgba(234,179,8,.2);
  margin-top:4px;
}

/* Follow-up suggestion chips */
.ipl-followups{
  display:flex;flex-wrap:wrap;gap:5px;padding:6px 0 2px;
}
.ipl-followup-chip{
  font-size:11px;font-family:var(--f-ui);
  padding:4px 10px;border-radius:var(--rf);
  border:1px solid var(--a);color:var(--a);
  background:var(--a-dim);cursor:pointer;
  transition:all var(--t);text-align:left;line-height:1.4;
}
.ipl-followup-chip:hover{background:var(--a);color:#fff}

/* ══════════════════════════════════════════════════════════════
   MOBILE QUICK ACTION BUTTONS (nav bar)
══════════════════════════════════════════════════════════════ */
.mob-quick-actions{
  display:none; /* hidden on desktop */
  align-items:center;gap:4px;margin-left:4px;
}
@media(max-width:767px){
  .mob-quick-actions{display:flex}
}
.mob-qa-wrap{position:relative}
.mob-qa-btn{
  width:38px;height:38px;border-radius:var(--r2);
  background:none;border:none;cursor:pointer;
  font-size:18px;display:flex;align-items:center;justify-content:center;
  color:var(--txt2);transition:background var(--t);position:relative;
}
.mob-qa-btn:hover,.mob-qa-btn:active{background:var(--bg3)}
.mob-qa-badge{
  position:absolute;top:3px;right:3px;
  min-width:15px;height:15px;border-radius:8px;
  background:var(--r);color:#fff;
  font-size:9px;font-weight:700;font-family:var(--f-mono);
  display:flex;align-items:center;justify-content:center;padding:0 3px;
  pointer-events:none;
  border:1.5px solid var(--bg);  /* border creates separation from icon */
}

/* ══════════════════════════════════════════════════════════════
   STATS PANEL (collapsible, replaces sidebar)
══════════════════════════════════════════════════════════════ */
.stats-toggle-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 10px;border-radius:var(--r2);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt2);font-size:12px;font-family:var(--f-ui);
  cursor:pointer;transition:all var(--t);
}
.stats-toggle-btn:hover{background:var(--bg3);color:var(--txt)}
.stats-toggle-btn.active{
  background:var(--a-dim);color:var(--a);border-color:rgba(59,130,246,.25);
}

.stats-panel{
  background:var(--bg1);border:1px solid var(--line);
  border-radius:var(--r3);margin-bottom:12px;
  animation:fadeIn .15s ease;overflow:hidden;
}
.stats-panel-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
}
@media(max-width:599px){
  .stats-panel-inner{grid-template-columns:1fr}
}
.stats-col{padding:14px 16px}
.stats-col:first-child{border-right:1px solid var(--line)}
@media(max-width:599px){
  .stats-col:first-child{border-right:none;border-bottom:1px solid var(--line)}
}
.stats-col-title{
  font-family:var(--f-mono);font-size:10px;text-transform:uppercase;
  letter-spacing:.08em;color:var(--txt3);margin-bottom:10px;
}
.stats-src-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 0;border-bottom:1px solid var(--line);
  font-size:12px;color:var(--txt2);
}
.stats-src-row:last-child{border-bottom:none}
.stats-src-name{color:var(--txt2);font-size:12px}
.stats-src-cnt{
  font-family:var(--f-mono);font-size:10px;color:var(--txt3);
  flex-shrink:0;margin-left:8px;
}

/* Hide old sidebar entirely */
.sidebar{display:none!important}

/* Feed layout — no sidebar needed, full width */
.feed-layout{
  display:block!important;
}
/* feed layout no longer changes when insights open */

@media(max-width:768px){.mob-admin-back{display:block!important;margin-bottom:12px}}

/* Insights panel backdrop */
.ipl-backdrop{
  display:none;position:fixed;
  top:calc(var(--nav-h) + var(--sat));
  left:0;right:0;bottom:0;
  z-index:899;background:rgba(0,0,0,.55);
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  animation:fadeIn .2s var(--ease);
}
.ipl-backdrop.open{display:block}

/* ── Favourites: AI Summary button ── */
.fav-sum-wrap{margin:6px 0}
.fav-sum-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px;border-radius:var(--r2);
  border:1px solid var(--line2);background:var(--bg2);
  color:var(--txt3);font-size:11px;font-family:var(--f-ui);
  cursor:pointer;transition:all var(--t);
}
.fav-sum-btn:hover{border-color:var(--a);color:var(--a)}
.fav-sum-btn.open{color:var(--a);border-color:rgba(59,130,246,.3);background:var(--a-dim)}
.fav-sum-btn .sum-arrow{font-size:8px;transition:transform var(--t)}
.fav-sum-btn.open .sum-arrow{transform:rotate(180deg)}
.fav-sum-body{
  font-size:13px;color:var(--txt2);line-height:1.65;font-weight:300;
  padding:8px 10px;margin-top:5px;
  background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r2);
}

/* When both panels open on desktop, stack them */
@media(min-width:1024px){
  .insights-panel.open.shift-left{right:400px}
}

/* ── Insights panel header with new thread button ── */
.ipl-panel-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px 10px;border-bottom:1px solid var(--line);
  flex-shrink:0;background:var(--bg1);
}
.ipl-panel-title{
  font-family:var(--f-mono);font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;color:var(--txt);
}
.ipl-new-thread-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;border-radius:var(--r2);
  background:var(--a);color:#fff;border:none;
  font-size:12px;font-weight:600;font-family:var(--f-ui);
  cursor:pointer;transition:all var(--t);
  letter-spacing:.02em;
}
.ipl-new-thread-btn:hover{filter:brightness(1.12)}
.ipl-new-thread-btn:active{transform:scale(.96)}

/* ══════════════════════════════════════════════════════════════
   INSIGHTS PANEL — TWO-VIEW LAYOUT
══════════════════════════════════════════════════════════════ */

/* Views fill the panel */
.ipl-view{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}

/* ── LIST VIEW ── */
.ipl-list-search{
  padding:8px 12px;border-bottom:1px solid var(--line);flex-shrink:0;
}
.ipl-list-search-input{
  width:100%;height:32px;padding:0 10px;
  border:1px solid var(--line2);border-radius:var(--r2);
  background:var(--bg2);color:var(--txt);
  font-size:12px;font-family:var(--f-ui);
}
.ipl-list-search-input:focus{outline:none;border-color:var(--a)}
.ipl-list-search-input::placeholder{color:var(--txt3)}

.ipl-thread-list{
  flex:1;overflow-y:auto;min-height:0;
  scrollbar-width:thin;
}

/* Thread card in list view — more spacious */
.ipl-thread-card{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 14px;border-bottom:1px solid var(--line);
  cursor:pointer;transition:background var(--t);
}
.ipl-thread-card:hover{background:var(--bg2)}
.ipl-thread-card:last-child{border-bottom:none}
.ipl-thread-card-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--line3);flex-shrink:0;margin-top:5px;
}
.ipl-thread-card.unread .ipl-thread-card-dot{background:var(--a)}
.ipl-thread-card-body{flex:1;min-width:0}
.ipl-thread-card-title{
  font-size:13px;font-weight:500;color:var(--txt);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  margin-bottom:3px;line-height:1.3;
}
.ipl-thread-card-preview{
  font-size:11px;color:var(--txt3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  line-height:1.4;
}
.ipl-thread-card-meta{
  font-family:var(--f-mono);font-size:9px;color:var(--txt3);
  margin-top:4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.ipl-thread-card-actions{flex-shrink:0;display:flex;gap:2px;opacity:0;transition:opacity var(--t)}
.ipl-thread-card:hover .ipl-thread-card-actions{opacity:1}
.ipl-thread-card-del{
  background:none;border:none;color:var(--txt3);
  cursor:pointer;padding:3px 5px;border-radius:3px;font-size:12px;
}
.ipl-thread-card-del:hover{color:var(--r);background:rgba(239,68,68,.08)}

/* ── CHAT VIEW ── */
.ipl-chat-header{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;border-bottom:1px solid var(--line);
  flex-shrink:0;background:var(--bg1);min-height:48px;
}
.ipl-back-btn{
  width:30px;height:30px;border-radius:var(--r2);
  border:1px solid var(--line2);background:transparent;
  color:var(--txt2);font-size:16px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all var(--t);flex-shrink:0;
}
.ipl-back-btn:hover{background:var(--bg3);color:var(--txt)}
.ipl-chat-title{
  font-size:13px;font-weight:500;color:var(--txt);
  flex:1;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;
}
.ipl-chat-actions{
  display:flex;align-items:center;gap:4px;flex-shrink:0;
}

/* ── Fetch button wrapper + last refresh time ── */
.fetch-btn-wrap{display:flex;align-items:center;gap:8px}
.fetch-last-time{
  font-family:var(--f-mono);font-size:10px;color:var(--txt3);
  white-space:nowrap;letter-spacing:.03em;
}
#fetchBtn:disabled{
  opacity:.5;cursor:not-allowed;
  filter:none;
}
#fetchBtn:disabled:hover{filter:none;background:var(--a)}

/* ══════════════════════════════════════════════════════════════
   NEW FEATURES CSS
══════════════════════════════════════════════════════════════ */

/* ── Fetch button wrapper ── */
.fetch-btn-wrap{display:flex;align-items:center;gap:8px}
.fetch-last-time{font-family:var(--f-mono);font-size:10px;color:var(--txt3);white-space:nowrap}
#fetchBtn:disabled{opacity:.5;cursor:not-allowed}

/* ── Read / Unread ── */
.article-card.art-read{opacity:.5}
.article-card.art-watched{border-left:2px solid var(--a)!important;background:linear-gradient(90deg,rgba(59,130,246,.04),transparent 60%)!important}
.read-toggle-btn{background:none;border:none;cursor:pointer;color:var(--txt3);font-size:12px;padding:0 4px 0 0;flex-shrink:0;margin-top:2px;transition:color var(--t)}
.read-toggle-btn:hover,.article-card.art-read .read-toggle-btn{color:var(--a)}
.card-top{display:flex;align-items:flex-start;gap:6px}
.card-comm-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:3px 6px;color:var(--txt3);border-radius:var(--r1);transition:all var(--t)}
.card-comm-btn:hover{background:var(--bg3);color:var(--txt)}

/* ── Alerts panel — slides from LEFT ── */
.alerts-panel-left{right:auto!important;left:0!important;border-left:none!important;border-right:1px solid var(--line3)!important}
@media(min-width:1024px){
  .alerts-panel-left{transform:translateX(-100%)!important}
  .alerts-panel-left.open{transform:translateX(0)!important}
}
.alerts-create-form{padding:14px;border-bottom:1px solid var(--line);background:var(--bg2);flex-shrink:0}
.alerts-form-title{font-family:var(--f-mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--txt3);margin-bottom:10px}
.alerts-input{width:100%;height:34px;padding:0 10px;margin-bottom:6px;border:1px solid var(--line2);border-radius:var(--r2);background:var(--bg);color:var(--txt);font-size:13px;font-family:var(--f-ui)}
.alerts-input:focus{outline:none;border-color:var(--a)}
.alerts-notify-label{font-size:12px;color:var(--txt2);display:flex;align-items:center;gap:6px;cursor:pointer;margin-top:4px}
.alerts-create-btn{width:100%;margin-top:10px;padding:8px;background:var(--a);color:#fff;border:none;border-radius:var(--r2);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--f-ui);transition:filter var(--t)}
.alerts-create-btn:hover{filter:brightness(1.1)}
.alerts-list{flex:1;overflow-y:auto;padding:8px}
.alerts-empty{padding:40px 16px;text-align:center}
.alerts-empty-title{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--txt3);margin-bottom:6px}
.alerts-empty-sub{font-size:12px;color:var(--txt3)}
.alert-card{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);padding:12px;margin-bottom:8px}
.alert-inactive{opacity:.5}
.alert-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.alert-card-name{font-size:13px;font-weight:500;color:var(--txt)}
.alert-toggle-btn,.alert-del-btn{background:none;border:1px solid var(--line2);border-radius:var(--r1);padding:2px 7px;font-size:11px;cursor:pointer;color:var(--txt3);transition:all var(--t);margin-left:4px}
.alert-toggle-btn:hover{color:var(--a);border-color:var(--a)}
.alert-del-btn:hover{color:var(--r);border-color:var(--r)}
.alert-card-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:5px}
.alert-tag{font-size:10px;font-family:var(--f-mono);padding:2px 7px;border-radius:var(--r1);background:var(--bg3);border:1px solid var(--line2);color:var(--txt3)}
.alert-card-stats{font-size:11px;color:var(--txt3);font-family:var(--f-mono)}

/* ── Communities ── */
.comm-list{flex:1;overflow-y:auto;padding:8px}
.comm-empty{padding:40px 16px;text-align:center}
.comm-empty-title{font-family:var(--f-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--txt3);margin-bottom:6px}
.comm-empty-sub{font-size:12px;color:var(--txt3)}
.comm-card{display:flex;align-items:flex-start;gap:12px;padding:14px;border-radius:var(--r2);border:1px solid var(--line);background:var(--bg2);cursor:pointer;transition:all var(--t);margin-bottom:8px}
.comm-card:hover{background:var(--bg3);border-color:var(--line3)}
.comm-card-icon{width:40px;height:40px;border-radius:var(--r2);background:linear-gradient(135deg,var(--a),var(--a2));display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}
.comm-card-body{flex:1;min-width:0}
.comm-card-name{font-size:14px;font-weight:600;color:var(--txt);margin-bottom:3px}
.comm-card-desc{font-size:12px;color:var(--txt3);margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comm-card-meta{font-size:11px;color:var(--txt3);font-family:var(--f-mono);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.comm-member-badge{font-size:9px;padding:1px 6px;border-radius:var(--r1);background:rgba(34,197,94,.1);color:var(--g);border:1px solid rgba(34,197,94,.2);font-family:var(--f-mono);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.comm-join-btn{padding:5px 12px;border-radius:var(--r2);background:var(--a);color:#fff;border:none;font-size:11px;font-weight:600;cursor:pointer;transition:filter var(--t);flex-shrink:0}
.comm-join-btn.joined{background:var(--bg3);color:var(--g);border:1px solid rgba(34,197,94,.3)}
.comm-join-btn:hover{filter:brightness(1.1)}
.comm-post{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r3);padding:14px}
.comm-post-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.comm-post-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--a),var(--a2));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}
.comm-post-meta{flex:1;display:flex;align-items:baseline;gap:6px}
.comm-post-author{font-size:12px;font-weight:600;color:var(--txt)}
.comm-post-ts{font-size:10px;color:var(--txt3);font-family:var(--f-mono)}
.comm-del-btn{background:none;border:none;color:var(--txt3);cursor:pointer;font-size:12px;padding:2px 4px;border-radius:3px;opacity:0;transition:all var(--t)}
.comm-post:hover .comm-del-btn{opacity:.6}
.comm-del-btn:hover{opacity:1!important;color:var(--r)}
.comm-post-text{font-size:13px;color:var(--txt2);line-height:1.65;margin-bottom:8px;white-space:pre-wrap}
.comm-post-article{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--a);text-decoration:none;padding:4px 8px;border-radius:var(--r1);background:var(--a-dim);border:1px solid rgba(59,130,246,.2);margin-bottom:8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.comm-post-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}
.comm-react-btn{background:var(--bg3);border:1px solid var(--line2);border-radius:var(--r1);padding:3px 8px;font-size:12px;cursor:pointer;transition:all var(--t);display:inline-flex;align-items:center;gap:3px;color:var(--txt2)}
.comm-react-btn span{font-size:10px;font-family:var(--f-mono)}
.comm-react-btn.active{background:var(--a-dim);border-color:rgba(59,130,246,.3);color:var(--a)}
.comm-replies{padding:8px 0 4px;border-top:1px solid var(--line);margin-top:4px}
.comm-reply{display:flex;align-items:baseline;gap:6px;padding:4px 0;font-size:12px}
.comm-reply-author{font-weight:600;color:var(--txt);flex-shrink:0}
.comm-reply-text{color:var(--txt2);flex:1}
.comm-reply-ts{font-size:10px;color:var(--txt3);font-family:var(--f-mono);flex-shrink:0}
.comm-reply-toggle{background:none;border:none;font-size:11px;color:var(--txt3);cursor:pointer;padding:2px 0;font-family:var(--f-ui)}
.comm-reply-toggle:hover{color:var(--a)}
.comm-reply-input{margin-top:6px;display:flex;flex-direction:column;gap:6px}
.comm-reply-ta{width:100%;padding:6px 8px;border:1px solid var(--line2);border-radius:var(--r2);background:var(--bg);color:var(--txt);font-size:13px;font-family:var(--f-ui);resize:none}
.comm-reply-input button{align-self:flex-end;padding:4px 12px;background:var(--a);color:#fff;border:none;border-radius:var(--r2);font-size:11px;cursor:pointer}
.comm-input-area{padding:12px;border-top:1px solid var(--line);background:var(--bg1);flex-shrink:0}
.comm-attach-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--r2);border:1px solid var(--line2);background:var(--bg2);font-size:12px;color:var(--txt2);cursor:pointer;transition:all var(--t);font-family:var(--f-ui)}
.comm-attach-btn:hover{border-color:var(--a);color:var(--a)}
.comm-attached-article{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:8px;background:var(--a-dim);border:1px solid rgba(59,130,246,.2);border-radius:var(--r2);font-size:12px;color:var(--a)}

/* ── Digest ── */
.digest-toggle-btn.active{background:rgba(34,197,94,.1)!important;border-color:rgba(34,197,94,.3)!important;color:var(--g)!important}

/* ── Watchlist chips ── */
.watchlist-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--rf);background:var(--a-dim);border:1px solid rgba(59,130,246,.25);font-size:12px;color:var(--a)}
.watchlist-chip button{background:none;border:none;cursor:pointer;color:var(--a);font-size:11px;padding:0;line-height:1;opacity:.7}
.watchlist-chip button:hover{opacity:1}

/* ── Export button in AI Chat ── */
.ipl-export-btn{background:none;border:1px solid var(--line2);border-radius:var(--r2);padding:3px 8px;font-size:12px;color:var(--txt3);cursor:pointer;transition:all var(--t)}
.ipl-export-btn:hover{color:var(--txt);border-color:var(--line3)}
.ipl-export-drop{position:absolute;right:0;top:calc(100% + 4px);background:var(--bg1);border:1px solid var(--line3);border-radius:var(--r2);box-shadow:var(--sh3);min-width:150px;z-index:200;display:none;flex-direction:column;overflow:hidden}
.ipl-export-drop.open{display:flex}
.ipl-export-drop button{background:none;border:none;padding:9px 14px;font-size:12px;color:var(--txt2);cursor:pointer;text-align:left;font-family:var(--f-ui);transition:background var(--t)}
.ipl-export-drop button:hover{background:var(--bg2);color:var(--txt)}

/* ── Mobile font scaling ── */

/* ── Community invite panel ── */
.comm-invite-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;border-bottom:1px solid var(--line);
  background:var(--bg1);flex-shrink:0;
}
.comm-invite-title{
  font-family:var(--f-mono);font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:.08em;color:var(--txt);
}
.comm-invite-list{flex:1;overflow-y:auto;padding:8px}
.comm-invite-row{
  display:flex;align-items:center;gap:10px;
  padding:10px 8px;border-radius:var(--r2);
  border-bottom:1px solid var(--line);
  transition:background var(--t);
}
.comm-invite-row:last-child{border-bottom:none}
.comm-invite-row:hover{background:var(--bg2)}
.comm-invite-btn{
  flex-shrink:0;padding:4px 12px;border-radius:var(--r2);
  border:1px solid var(--a);color:var(--a);background:none;
  font-size:11px;font-weight:600;cursor:pointer;
  transition:all var(--t);font-family:var(--f-ui);
}
.comm-invite-btn:hover{background:var(--a);color:#fff}
.comm-invite-btn:disabled{opacity:.6;cursor:default}

/* ── Communities panel — explicit rules to guarantee correct positioning ── */
#commPanel {
  position: fixed !important;
  z-index: 901 !important;
  background: var(--bg1);
  display: flex;
  flex-direction: column;
  transition: transform .3s cubic-bezier(.32,.72,0,1);
}
@media(max-width:1023px) {
  #commPanel {
    top: calc(var(--nav-h) + var(--sat));
    left: 0; right: 0; bottom: 0;
    width: auto !important;
    border-top: 1px solid var(--line3);
    transform: translateY(100%);
  }
  #commPanel.open { transform: translateY(0); }
}
@media(min-width:1024px) {
  #commPanel {
    top: calc(var(--nav-h) + var(--sat));
    right: 0; bottom: 0;
    width: 460px;
    max-width: 90vw;
    border-left: 1px solid var(--line3);
    box-shadow: var(--sh3);
    transform: translateX(110%);
  }
  #commPanel.open { transform: translateX(0) !important; }
}
#commBackdrop {
  display: none;
  position: fixed;
  top: calc(var(--nav-h) + var(--sat));
  left: 0; right: 0; bottom: 0;
  z-index: 900;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
#commBackdrop.open { display: block; }

/* ── Fetch overlay loader ── */
.fetch-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(5,6,8,.75);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.fetch-overlay.active{opacity:1;pointer-events:all}
.fetch-overlay-box{
  display:flex;flex-direction:column;align-items:center;gap:16px;
  background:var(--bg1);border:1px solid var(--line2);
  border-radius:var(--r3);padding:32px 40px;
  box-shadow:0 20px 60px rgba(0,0,0,.6);min-width:240px;
}
.fetch-spinner{
  width:40px;height:40px;border-radius:50%;
  border:3px solid var(--line2);
  border-top-color:var(--a);
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.fetch-overlay-msg{
  font-size:13px;font-family:var(--f-ui);color:var(--txt2);
  text-align:center;line-height:1.5;
}

/* ── People / Colleagues panel ── */
.people-search-wrap{
  padding:10px 12px;border-bottom:1px solid var(--line);flex-shrink:0;
}
.people-search-input{
  width:100%;height:34px;padding:0 10px;
  border:1px solid var(--line2);border-radius:var(--r2);
  background:var(--bg);color:var(--txt);
  font-size:13px;font-family:var(--f-ui);
}
.people-search-input:focus{outline:none;border-color:var(--a)}
.people-section-label{
  font-family:var(--f-mono);font-size:9px;text-transform:uppercase;
  letter-spacing:.1em;color:var(--txt3);
  padding:12px 8px 6px;
}
.people-row{
  display:flex;align-items:center;gap:10px;
  padding:8px;border-radius:var(--r2);
  transition:background var(--t);
}
.people-row:hover{background:var(--bg2)}
.people-avatar{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,var(--a),var(--a2));
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;color:#fff;flex-shrink:0;
}
.people-info{flex:1;min-width:0}
.people-name{font-size:13px;font-weight:500;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.people-email{font-size:11px;color:var(--txt3);font-family:var(--f-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.people-actions{display:flex;gap:4px;flex-shrink:0}
.people-btn{
  padding:4px 10px;border-radius:var(--r2);
  font-size:11px;font-weight:600;cursor:pointer;
  border:1px solid;transition:all var(--t);font-family:var(--f-ui);
}
.people-btn.accept{color:var(--g);border-color:rgba(34,197,94,.3);background:rgba(34,197,94,.08)}
.people-btn.accept:hover{background:rgba(34,197,94,.18)}
.people-btn.decline,.people-btn.remove{color:var(--r);border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.06)}
.people-btn.decline:hover,.people-btn.remove:hover{background:rgba(239,68,68,.15)}
.people-btn.invite{color:var(--a);border-color:rgba(59,130,246,.3);background:var(--a-dim)}
.people-btn.invite:hover{background:rgba(59,130,246,.18)}
.people-empty{padding:40px 16px;text-align:center}

/* ── People status labels ── */
.people-status{font-size:11px;font-family:var(--f-mono);padding:3px 8px;border-radius:var(--r1);font-weight:600}
.people-status.connected{color:var(--g);background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.2)}
.people-status.pending{color:var(--txt3);background:var(--bg3);border:1px solid var(--line2)}

/* ── Mobile: only theme toggle in top bar ── */
.mob-theme-btn{ display:none!important; } /* no longer used */

/* Drawer badge — pill shown right of link text */
.mob-drawer-badge{
  margin-left:auto;
  background:var(--r);color:#fff;
  font-size:9px;font-weight:700;font-family:var(--f-mono);
  min-width:16px;height:16px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 4px;
}

/* ── Mobile nav — only themeToggle stays in top bar ── */
@media(max-width:1023px){
  /* Hide all desktop-only nav items */
  .nav-insights-btn{ display:none!important; }
  .nav-btn{ display:none!important; }
  /* In nav-actions, hide everything except themeToggle */
  .nav-actions > *:not(#themeToggle){ display:none!important; }
  /* themeToggle — visible, slightly larger tap target */
  #themeToggle{ display:flex!important; width:38px; height:38px; font-size:18px; }
}
/* Desktop — themeToggle normal size */
@media(min-width:1024px){
  #themeToggle{ display:flex; }
}

/* ── Next-refresh info (replaces manual fetch button for non-admins) ── */
.next-refresh-info{
  display:flex;flex-direction:column;gap:3px;
}
.next-refresh-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;font-family:var(--f-mono);color:var(--txt3);
  background:var(--bg2);border:1px solid var(--line2);
  border-radius:var(--r2);padding:4px 10px;
  white-space:nowrap;
}
.next-refresh-badge strong{color:var(--a);font-weight:700}

/* ══════════════════════════════════════════════════════════════
   MOBILE / TABLET — 1.5× font scaling
   Applies to all screens ≤1023px (phone + tablet).
   Every px value is multiplied by 1.5, rounded to nearest integer.
   Inputs fixed at 16px to prevent iOS auto-zoom.
   Hamburger appears at this breakpoint (replaces desktop nav).
══════════════════════════════════════════════════════════════ */
@media(max-width:1023px){

  /* Base */
  body      { font-size:22px }

  /* Nav */
  .nav-logo-name  { font-size:22px }
  .nav-logo-sub   { font-size:14px }
  .nav-un         { font-size:17px }
  .nav-ur         { font-size:14px }
  .nav-btn        { font-size:18px }

  /* Hamburger drawer links */
  .mob-nav-link         { font-size:21px!important; padding:14px 18px!important }
  .mob-nav-icon         { font-size:21px!important; width:28px!important }
  .mob-drawer-user-name { font-size:19px }
  .mob-drawer-user-role { font-size:15px }
  .mob-nav-lbl          { font-size:13px }

  /* Briefing */
  .briefing-headline    { font-size:clamp(28px,6vw,54px)!important; line-height:1.2!important }
  .bc-txt               { font-size:19px!important; line-height:1.75!important }
  .briefing-eyebrow     { font-size:15px }

  /* Feed cards */
  .card-title a         { font-size:21px!important; line-height:1.4!important }
  .card-cat             { font-size:12px!important }
  .card-src, .card-dt   { font-size:15px!important }
  .card-meta            { font-size:15px!important }
  .card-summary         { font-size:19px!important; line-height:1.7!important }
  .vtag                 { font-size:14px!important; padding:4px 10px!important }

  /* Filters */
  .flt-chip-btn         { height:46px!important; font-size:16px!important }
  .flt-chip-lbl         { font-size:14px!important }
  .flt-drop-opt         { font-size:16px!important; padding:10px 14px!important }
  .flt-panel-opt        { font-size:16px!important; padding:9px 16px!important }
  .flt-active-pill      { font-size:15px!important }

  /* Buttons */
  .btn                  { min-height:48px!important; font-size:16px!important }
  .btn-sm               { min-height:40px!important; font-size:14px!important }

  /* All inputs — 16px prevents iOS zoom */
  input[type="text"],input[type="email"],input[type="password"],
  input[type="search"],input[type="date"],textarea,select,
  .alerts-input,.ipl-textarea,.ipl-list-search-input,
  .people-search-input  { font-size:16px!important }

  /* Favourites panel */
  .fav-header-title     { font-size:18px!important }
  .fav-item-title a     { font-size:18px!important }
  .fav-item-meta        { font-size:15px!important }
  .fav-tab              { font-size:15px!important }

  /* AI Chat panel */
  .ipl-panel-title      { font-size:18px!important }
  .ipl-thread-card-title{ font-size:18px!important }
  .ipl-thread-card-meta { font-size:14px!important }
  .ipl-thread-card-preview{font-size:16px!important}
  .ipl-bubble, .ipl-bubble p, .ipl-bubble li { font-size:18px!important; line-height:1.75!important }
  .ipl-sources          { font-size:13px!important }
  .ipl-follow-chip      { font-size:15px!important }
  .ipl-send-btn         { font-size:18px!important }
  .ipl-tabs .ipl-tab    { font-size:15px!important }

  /* Communities panel */
  .comm-card-name       { font-size:19px!important }
  .comm-card-desc       { font-size:16px!important }
  .comm-card-meta       { font-size:15px!important }
  .comm-post-author     { font-size:16px!important }
  .comm-post-text       { font-size:18px!important; line-height:1.7!important }
  .comm-reply           { font-size:15px!important }
  .comm-reply-author    { font-size:15px!important }
  .comm-react-btn       { font-size:16px!important; padding:5px 12px!important }
  .fav-header-title#commViewTitle { font-size:17px!important }

  /* Alerts panel */
  .alert-card-name      { font-size:18px!important }
  .alert-card-stats     { font-size:15px!important }
  .alert-tag            { font-size:14px!important; padding:3px 10px!important }
  .alerts-form-title    { font-size:13px!important }
  .alerts-create-btn    { font-size:16px!important }

  /* People panel */
  .people-name          { font-size:16px!important }
  .people-email         { font-size:14px!important }
  .people-btn           { font-size:14px!important; padding:7px 14px!important }
  .people-section-label { font-size:13px!important }

  /* Stats */
  .bstat-v              { font-size:24px!important }
  .bstat-l              { font-size:12px!important }

  /* Pagination */
  .page-btn             { min-height:44px!important; min-width:44px!important; font-size:16px!important }

  /* Toast */
  .toast                { font-size:15px!important }

  /* Settings page */
  .stg-card-title       { font-size:19px!important }
  .stg-card-desc        { font-size:16px!important }
  .stg-input            { font-size:16px!important }

  /* Watchlist chips */
  .watchlist-chip       { font-size:15px!important }
  
  .sum-body {font-size: 17px; line-height: 1.75;}
  
  .fav-sum-body {font-size: 17px; line-height: 1.75;}
}
