/* ==========================================================================
   Base — resets, RTL/typography, reusable content components ported from
   the AryoGen deck's design system, plus the shared app shell: an RTL port
   of FlexAdmin-pro's fixed header + fixed SIDE navbar (injected by
   chrome.js). View mode (desktop/mobile) is user-selectable via body
   classes — see the App shell section below.
   ========================================================================== */

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Vazirmatn',Tahoma,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
.ltr{direction:ltr;unicode-bidi:isolate;}
a{color:var(--accent2);text-decoration:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;}
::selection{background:var(--teal);color:#fff;}

h1,h2,h3,h4,h5,h6{margin:0;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* ---------- shared type / section chrome (ported from deck) ---------- */
.kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.78rem;font-weight:700;color:var(--accent);
  background:color-mix(in srgb, var(--accent) 12%, white);
  padding:6px 16px;border-radius:999px;margin-bottom:14px;letter-spacing:.02em;
}
.kicker .num{opacity:.7;font-weight:600;}
h2.title,.section-title{font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:800;color:var(--navy);margin:0 0 8px;letter-spacing:-.01em;}
p.subtitle,.section-subtitle{font-size:.98rem;color:var(--muted);max-width:760px;margin:0 0 6px;}
.rule{width:56px;height:5px;border-radius:3px;background:linear-gradient(90deg,var(--accent),var(--accent2));margin:14px 0 22px;}

/* ---------- grid ---------- */
.grid{display:grid;gap:16px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* ---------- card ---------- */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 22px;box-shadow:var(--shadow);
}
.card h4{margin:0 0 8px;color:var(--navy);font-size:1rem;font-weight:700;}
.card p{margin:0;color:var(--muted);font-size:.9rem;}
.icon-badge{
  width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;background:color-mix(in srgb, var(--accent) 14%, white);margin-bottom:12px;
}

/* ---------- checklist grid ---------- */
.obj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media(max-width:900px){.obj-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.obj-grid{grid-template-columns:1fr;}}
.obj-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow);}
.obj-card .idx{flex:0 0 32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;}
.obj-card p{margin:0;font-size:.9rem;color:var(--ink);font-weight:500;}

/* ---------- legal / law cards ---------- */
.law-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 22px;box-shadow:var(--shadow);margin-bottom:14px;}
.law-card .law-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.law-card .law-head .tag{background:var(--navy);color:#fff;font-weight:700;padding:5px 12px;border-radius:8px;font-size:.8rem;}
.law-card .law-head h4{margin:0;color:var(--navy);font-size:1rem;}
.clause-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.clause-list li{display:flex;gap:10px;background:var(--bg);border-radius:12px;padding:11px 14px;font-size:.87rem;color:var(--ink);}
.clause-list li b{flex:0 0 auto;color:var(--accent2);font-weight:800;}

/* ---------- simplified hub list (center label + related-item list, no absolute spokes) ---------- */
.hub-wrap{display:flex;flex-direction:column;align-items:center;gap:18px;}
.hub-center{
  background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;
  padding:16px 26px;border-radius:16px;font-weight:800;text-align:center;font-size:1rem;box-shadow:var(--shadow-lg);
}
.hub-ring{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;}
@media(max-width:700px){.hub-ring{grid-template-columns:repeat(2,1fr);}}
.hub-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;text-align:center;font-size:.85rem;font-weight:600;color:var(--navy);box-shadow:var(--shadow);}

/* ---------- simplified org list (nested bullet tree, no chart lines) ---------- */
.org-list{display:flex;flex-direction:column;gap:10px;}
.org-root{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:12px 20px;border-radius:14px;font-weight:800;text-align:center;font-size:.95rem;}
.org-branches{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
@media(max-width:700px){.org-branches{grid-template-columns:1fr;}}
.org-branch{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);}
.org-branch-title{font-weight:800;color:var(--teal-dark);padding-bottom:8px;margin-bottom:8px;border-bottom:1px dashed var(--line);font-size:.88rem;}
.org-children{display:flex;flex-direction:column;gap:6px;}
.org-children span{background:var(--bg);border-radius:8px;padding:7px 10px;font-size:.79rem;color:var(--ink);font-weight:500;}

/* ---------- timeline ---------- */
.timeline{position:relative;margin-top:6px;}
.timeline::before{content:"";position:absolute;top:0;bottom:0;right:22px;width:3px;background:linear-gradient(180deg,var(--teal),var(--blue));border-radius:3px;}
.t-item{position:relative;padding-right:56px;margin-bottom:20px;}
.t-item .dot{position:absolute;right:12px;top:2px;width:22px;height:22px;border-radius:50%;background:#fff;border:4px solid var(--accent2);z-index:2;}
.t-item .year{font-weight:700;color:var(--accent2);font-size:1rem;background:color-mix(in srgb, var(--accent2) 10%, white);display:inline-block;padding:2px 12px;border-radius:8px;margin-bottom:6px;}
.t-item .card p{color:var(--ink);font-size:.9rem;}

/* ---------- step list (replaces the deck's absolute-positioned .flow) ---------- */
.step-list{display:flex;flex-direction:column;gap:0;}
.step-item{display:flex;gap:14px;position:relative;padding-bottom:20px;}
.step-item:last-child{padding-bottom:0;}
.step-item::before{content:"";position:absolute;right:17px;top:36px;bottom:0;width:2px;background:var(--line);}
.step-item:last-child::before{display:none;}
.step-num{flex:0 0 36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;z-index:1;}
.step-item.hl .step-num{background:linear-gradient(135deg,var(--teal),var(--blue));}
.step-body{flex:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);font-size:.9rem;color:var(--ink);}
.step-item.hl .step-body{border-color:color-mix(in srgb, var(--teal) 40%, var(--line));background:color-mix(in srgb, var(--teal) 6%, #fff);font-weight:700;}

/* ---------- table ---------- */
.table-wrap{overflow-x:auto;border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--line);}
table{width:100%;border-collapse:collapse;background:#fff;font-size:.87rem;}
table thead th{background:var(--navy);color:#fff;padding:12px 14px;text-align:right;font-weight:700;white-space:nowrap;}
table tbody td{padding:11px 14px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top;}
table tbody tr:last-child td{border-bottom:none;}
table tbody tr:nth-child(even){background:var(--bg);}
.score{display:inline-block;padding:3px 10px;border-radius:8px;font-weight:800;font-size:.8rem;}
.score.s90{background:#e3f7ee;color:#1c8a55;}
.score.s80{background:#eaf3ff;color:#2f7fd1;}
.score.s70{background:#fff3e0;color:#c3791a;}
.score.s60{background:#ffe9e8;color:#c0453d;}

/* ---------- browser mockup for real screenshots ---------- */
.browser{border-radius:16px;overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--line);background:#fff;}
.browser .bar{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#eef2f8;border-bottom:1px solid var(--line);}
.browser .bar .dots{display:flex;gap:6px;}
.browser .bar .dots span{width:9px;height:9px;border-radius:50%;background:#d3dbe8;}
.browser .bar .url{flex:1;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 12px;font-size:.75rem;color:var(--muted);direction:ltr;text-align:left;}
.browser img{width:100%;display:block;}

/* ---------- callouts ---------- */
.callout{border-radius:16px;padding:16px 18px;font-size:.88rem;display:flex;gap:10px;align-items:flex-start;}
.callout i{margin-top:2px;}
.callout.info{background:#eaf3ff;color:#1c4a80;border:1px solid #cfe3ff;}
.callout.warn{background:#fff3e0;color:#7a4a06;border:1px solid #ffe0ad;}
.callout.danger{background:#ffe9e8;color:#7a2620;border:1px solid #ffc9c5;}
.callout.good{background:#e3f7ee;color:#155f3c;border:1px solid #bfead6;}

/* ---------- tags / pills / member list ---------- */
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.tag-list span{background:var(--bg);border:1px solid var(--line);padding:5px 12px;border-radius:8px;font-size:.78rem;color:var(--muted);}
.member-list{list-style:none;margin:0;padding:0;counter-reset:mem;display:flex;flex-direction:column;gap:8px;}
.member-list li{counter-increment:mem;display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:.86rem;box-shadow:var(--shadow);}
.member-list li::before{content:counter(mem);flex:0 0 24px;height:24px;border-radius:8px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:700px){.two-col{grid-template-columns:1fr;}}

/* ---------- chapter divider (full-bleed) ---------- */
.chapter-divider{
  border-radius:var(--radius-lg);color:#fff;text-align:center;padding:46px 24px;
  background-color:#050f0a;
  background-image:
    radial-gradient(circle at 14% 18%, color-mix(in srgb, var(--chapter-accent,var(--teal)) 60%, transparent), transparent 52%),
    radial-gradient(circle at 88% 82%, color-mix(in srgb, var(--chapter-accent,var(--blue)) 42%, transparent), transparent 55%),
    linear-gradient(160deg, color-mix(in srgb, var(--chapter-accent,var(--teal)) 30%, #050f0a) 0%, #050f0a 78%);
}
.chapter-divider-num{font-weight:800;line-height:1;font-size:clamp(3rem,10vw,4.6rem);color:rgba(255,255,255,.14);margin-bottom:-10px;}
.chapter-divider-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;font-weight:700;color:rgba(255,255,255,.92);background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.22);padding:6px 16px;border-radius:999px;margin-bottom:16px;}
.chapter-divider-title{font-size:clamp(1.4rem,4vw,2rem);font-weight:900;margin:0 0 14px;line-height:1.35;}
.chapter-divider-sub{color:rgba(255,255,255,.82);font-size:.92rem;line-height:1.9;max-width:560px;margin:0 auto 22px;}
.chapter-divider-topics{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:6px;}
.chapter-divider-topics span{display:flex;gap:6px;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);padding:8px 14px;border-radius:999px;font-size:.78rem;font-weight:600;color:#fff;}
.chapter-divider-progress{margin-top:22px;display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.6);font-size:.75rem;justify-content:center;}
.chapter-divider-progress .track{width:110px;height:4px;border-radius:3px;background:rgba(255,255,255,.16);overflow:hidden;}
.chapter-divider-progress .track span{display:block;height:100%;background:linear-gradient(90deg,#6ed89a,#fff);border-radius:3px;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;border-radius:14px;padding:13px 22px;font-family:inherit;font-weight:700;font-size:.92rem;
  cursor:pointer;transition:.2s;min-height:44px;
}
.btn-primary{background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;box-shadow:0 14px 28px -14px rgba(15,169,156,.5);}
.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px);}
.btn-outline{background:#fff;color:var(--navy);border:1.5px solid var(--line);}
.btn-outline:hover{border-color:var(--teal);color:var(--teal-dark);}
.btn-soft{background:color-mix(in srgb, var(--teal) 12%, white);color:var(--teal-dark);}
.btn-danger{background:var(--red);color:#fff;}
.btn-block{width:100%;}
.btn-sm{padding:9px 16px;font-size:.82rem;min-height:36px;}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;filter:none;}
.chip-btn{
  border:1px solid var(--line);background:#fff;color:var(--navy);
  padding:8px 16px;border-radius:999px;font-size:.85rem;font-weight:600;
  cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.2s;
}
.chip-btn:hover{border-color:var(--teal);color:var(--teal-dark);}

/* ---------- badges ---------- */
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:.74rem;font-weight:700;}
.badge-live{background:#ffe9e8;color:#b8261e;}
.badge-live .dot{width:7px;height:7px;border-radius:50%;background:#e14136;animation:pulse-dot 1.4s infinite;}
.badge-teal{background:color-mix(in srgb, var(--teal) 14%, white);color:var(--teal-dark);}
.badge-blue{background:color-mix(in srgb, var(--blue) 14%, white);color:var(--blue);}
.badge-muted{background:var(--bg-alt);color:var(--muted);}
@keyframes pulse-dot{0%,100%{opacity:1;}50%{opacity:.35;}}


/* ==========================================================================
   App shell — FlexAdmin-pro's fixed header + fixed sidebar, ported RTL
   (sidebar on the RIGHT) and injected by chrome.js on every audience page.

   View mode is user-selectable (header toggle) instead of media-query only:
     body.view-desktop  — fixed sidebar column, content beside it
     body.view-mobile   — off-canvas drawer + overlay, full-width content
   chrome.js picks the initial mode from the stored preference or viewport.
   There is NO bottom navigation anywhere.
   ========================================================================== */

/* ---------------------------------------------------------------- header */
.header{
  position:fixed;top:0;right:0;left:0;height:var(--header-height);
  background:var(--header-bg);
  -webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--header-border);box-shadow:var(--header-shadow);
  display:flex;align-items:center;gap:8px;padding:0 16px;z-index:1000;
}
@media(min-width:576px){.header{padding:0 24px;}}

.header-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1;}
body.view-desktop .header-left{flex:0 1 auto;min-width:calc(var(--sidebar-width) - 34px);}

.header-logo{display:flex;align-items:center;gap:10px;color:var(--heading-color);text-decoration:none;min-width:0;}
.header-logo:hover{color:var(--accent-color);}
.header-logo img{height:48px;width:auto;object-fit:contain;flex:0 0 auto;}
.header-logo .brand-text{font-weight:800;font-size:.95rem;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.header-logo .brand-text small{display:block;font-weight:500;font-size:.68rem;color:var(--muted-color);direction:ltr;text-align:right;}

.sidebar-toggle{
  width:38px;height:38px;flex:0 0 38px;border-radius:12px;border:1px solid var(--border-color);
  background:var(--surface-color);color:var(--default-color);
  display:inline-flex;align-items:center;justify-content:center;
  transition:all var(--transition-fast);cursor:pointer;position:relative;
}
.sidebar-toggle i{font-size:1.15rem;}
.sidebar-toggle:hover{
  border-color:color-mix(in srgb, var(--accent-color), transparent 40%);
  color:var(--accent-color);
  background:color-mix(in srgb, var(--accent-color), transparent 92%);
}
.sidebar-toggle .menu-alert{
  position:absolute;top:6px;left:6px;width:9px;height:9px;border-radius:50%;
  background:var(--red);border:2px solid #fff;animation:pulse-dot 1.4s infinite;
}

.header-right{margin-inline-start:auto;display:flex;align-items:center;gap:8px;}
.header-status{display:flex;align-items:center;}
.header-action-cluster{
  display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:14px;
  border:1px solid var(--border-color);
  background:color-mix(in srgb, var(--surface-color), var(--background-color) 16%);
  box-shadow:0 12px 24px -20px rgba(15,23,40,.35);
}
.header-action{
  position:relative;width:38px;height:38px;border-radius:12px;
  border:1px solid color-mix(in srgb, var(--border-color), transparent 20%);
  background:var(--surface-color);color:var(--muted-color);
  display:inline-flex;align-items:center;justify-content:center;
  transition:all var(--transition-fast);cursor:pointer;
}
.header-action i{font-size:1.1rem;}
.header-action:hover{
  color:var(--accent-color);
  border-color:color-mix(in srgb, var(--accent-color), transparent 55%);
  background:color-mix(in srgb, var(--accent-color), transparent 90%);
}

/* the view-mode toggle shows the mode it would switch TO */
.view-toggle .icon-to-mobile,.view-toggle .icon-to-desktop{display:none;}
body.view-desktop .view-toggle .icon-to-mobile{display:block;}
body.view-mobile .view-toggle .icon-to-desktop{display:block;}

/* --------------------------------------------------------------- sidebar */
.sidebar{
  position:fixed;top:var(--header-height);right:0;bottom:0;width:var(--sidebar-width);
  background:var(--sidebar-bg);border-left:1px solid var(--sidebar-border);
  box-shadow:-14px 0 34px -26px rgba(15,23,40,.38);
  z-index:999;display:flex;flex-direction:column;
  transition:transform var(--transition-base);overflow:hidden;
}
body.view-mobile .sidebar{transform:translateX(100%);width:min(86vw,300px);}
body.view-mobile.sidebar-open .sidebar{transform:translateX(0);}
body.view-desktop.sidebar-hidden .sidebar{transform:translateX(100%);}

.sidebar-nav{
  flex:1;padding:16px 8px 8px;overflow-y:auto;overflow-x:hidden;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb, var(--sidebar-muted-color), transparent 42%) transparent;
}
.sidebar-nav::-webkit-scrollbar{width:4px;}
.sidebar-nav::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--sidebar-muted-color), transparent 42%);border-radius:4px;}

.nav-menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:3px;}
.nav-heading{
  padding:16px 12px 6px;font-size:.66rem;font-weight:700;letter-spacing:.05em;
  color:var(--sidebar-muted-color);white-space:nowrap;overflow:hidden;
  display:flex;align-items:center;gap:8px;
}
.nav-heading::after{content:"";flex:1;height:1px;background:color-mix(in srgb, var(--sidebar-muted-color), transparent 78%);}
.nav-item{position:relative;}
.nav-item>.nav-link{
  display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;
  font-size:.86rem;font-weight:600;color:var(--sidebar-color);text-decoration:none;
  transition:all var(--transition-fast);position:relative;min-height:46px;
}
.nav-item>.nav-link:hover{background:var(--sidebar-hover-bg);color:var(--heading-color);}
.nav-icon{
  display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;
  background:color-mix(in srgb, var(--accent-color), transparent 92%);
  color:color-mix(in srgb, var(--accent-color), black 12%);
  flex-shrink:0;transition:all var(--transition-fast);
}
.nav-icon i{font-size:1.05rem;}
.nav-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.nav-badge{
  display:inline-flex;align-items:center;justify-content:center;padding:0 7px;height:18px;
  border-radius:999px;background:var(--red);color:#fff;font-size:.66rem;font-weight:700;line-height:1;
  margin-inline-start:auto;animation:pulse-dot 1.4s infinite;
}
.nav-item>.nav-link.active{
  color:var(--contrast-color);
  background:linear-gradient(135deg, var(--accent-color), color-mix(in srgb, var(--accent-color), black 12%));
  box-shadow:0 12px 20px -14px color-mix(in srgb, var(--accent-color), black 18%);
}
.nav-item>.nav-link.active .nav-icon{background:rgba(255,255,255,.18);color:var(--contrast-color);}
.nav-item>.nav-link.active .nav-badge{background:rgba(255,255,255,.25);}

/* --------------------------------------------------------- sidebar footer */
.sidebar-footer{margin-top:auto;padding:8px;border-top:1px solid var(--sidebar-border);}
.sidebar-footer-user{
  display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;
  background:color-mix(in srgb, var(--accent-color), transparent 93%);
  border:1px solid color-mix(in srgb, var(--accent-color), transparent 82%);
}
.sidebar-footer-avatar{
  width:36px;height:36px;border-radius:50%;object-fit:contain;background:#fff;padding:4px;
  border:2px solid color-mix(in srgb, var(--accent-color), transparent 70%);flex-shrink:0;
}
.sidebar-footer-info{min-width:0;flex:1;}
.sidebar-footer-meeting{margin-top:0;}
.sidebar-conn{
  display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;padding:8px;border-radius:12px;
  border:1px dashed color-mix(in srgb, var(--accent-color), transparent 72%);
  font-size:.74rem;color:var(--sidebar-muted-color);font-weight:600;
}
.sidebar-conn .conn-dot{width:9px;height:9px;border-radius:50%;background:var(--muted-2);flex:0 0 9px;}
.sidebar-conn.conn-connected .conn-dot{background:var(--green);}
.sidebar-conn.conn-connected{color:var(--teal-dark);border-color:color-mix(in srgb, var(--teal) 45%, transparent);}
.sidebar-conn.conn-reconnecting .conn-dot{background:var(--amber);animation:pulse-dot 1.2s infinite;}
.sidebar-conn.conn-reconnecting{color:var(--amber);}

/* --------------------------------------------------------------- overlay */
.sidebar-overlay{
  position:fixed;top:var(--header-height);left:0;right:0;bottom:0;
  background:rgba(10,16,30,.56);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  z-index:998;opacity:0;visibility:hidden;
  transition:opacity var(--transition-base),visibility var(--transition-base);
}
body.view-mobile.sidebar-open .sidebar-overlay{opacity:1;visibility:visible;}
body.view-mobile.sidebar-open{overflow:hidden;}
body.view-desktop .sidebar-overlay{display:none;}

/* ------------------------------------------------------------------ main */
.main{
  margin-top:var(--header-height);min-height:calc(100vh - var(--header-height));
  display:flex;flex-direction:column;transition:margin-right var(--transition-base);
}
body.view-desktop .main{margin-right:var(--sidebar-width);}
body.view-desktop.sidebar-hidden .main{margin-right:0;}
.main-content{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:28px 32px 64px;}
body.view-mobile .main-content{padding:16px 16px 40px;}
/* forcing desktop mode on a narrow screen: shrink the fixed column */
@media(max-width:900px){
  body.view-desktop{--sidebar-width:240px;}
  body.view-desktop .main-content{padding:18px 16px 48px;}
}

/* ------------------------------------------------------------ page header */
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px;}
.page-title{font-size:1.22rem;font-weight:800;color:var(--heading-color);margin:0;}
.page-subtitle{font-size:.85rem;color:var(--muted);margin:3px 0 0;}
.page-header-actions{display:flex;align-items:center;gap:8px;}

/* ---------- shared toast (announcements: "new question is live") ---------- */
.app-toast{
  position:fixed;bottom:18px;right:16px;left:16px;max-width:400px;margin-inline:auto;z-index:1100;
  background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);
  border-inline-start:4px solid var(--teal);overflow:hidden;
  animation:toast-in .25s ease;
}
.app-toast.is-link{cursor:pointer;}
.app-toast-row{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;}
.app-toast-row>i{color:var(--teal);font-size:1.2rem;margin-top:2px;}
.app-toast-txt{flex:1;}
.app-toast-txt strong{display:block;color:var(--navy);font-size:.88rem;}
.app-toast-txt span{font-size:.82rem;color:var(--muted);}
.app-toast-row button{border:none;background:none;font-size:1.15rem;color:var(--muted);cursor:pointer;line-height:1;}
@keyframes toast-in{from{transform:translateY(12px);opacity:0;}to{transform:none;opacity:1;}}

/* legacy guards: no bottom/footer navigation may ever render */
.bottom-nav,.side-rail,.rail-backdrop{display:none !important;}
