/* RayZtudio portal look & feel. Sneat's official CSS is loaded before this file. */
:root { --rayz-purple: #696cff; --rayz-deep: #5558db; }
body { font-family: 'Public Sans', sans-serif; }
.rayz-brand-symbol { width: 37px; height: 37px; display: inline-flex; flex-shrink:0; align-items:center; justify-content:center; border-radius: 12px; background: linear-gradient(145deg, #8789ff, #5b5fe6); color:#fff; font-size:20px; font-weight:800; box-shadow:0 7px 15px rgba(105,108,255,.23); }
.rayz-brand-subtitle { font-size:10px; letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:#9297ae; }
.rayz-sidebar-foot { margin:auto 18px 18px; padding:14px; background:#f4f5ff; border-radius:12px; font-size:11px; color:#787ba1; display:flex; align-items:center; gap:8px; }
.rayz-sidebar-icon { color: var(--rayz-purple); font-size:18px; }
.rayz-user-avatar,.rayz-table-avatar,.rayz-profile-avatar { flex-shrink:0; display:inline-flex; justify-content:center; align-items:center; background:#e7e7ff; color:var(--rayz-purple); font-weight:700; border-radius:50%; }
.rayz-user-avatar { width:40px;height:40px;font-size:16px; }
.rayz-table-avatar { width:38px;height:38px;font-size:14px; }
.rayz-profile-avatar { width:60px;height:60px;font-size:24px; }
.rayz-welcome-card { overflow:hidden; position:relative; background:linear-gradient(110deg,#fff 54%,#f2f2ff 100%); }
.rayz-welcome-card .card-body { position:relative; z-index:1; }
.rayz-welcome-art { height:214px; max-width:100%; object-fit:contain; object-position:bottom; vertical-align:bottom; }
.rayz-stat-icon { width:46px; height:46px; min-width:46px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; font-size:24px; }
.rayz-metric-card { transition:transform .17s ease, box-shadow .17s ease; }
.rayz-metric-card:hover { transform:translateY(-3px); box-shadow:0 10px 25px rgba(67,70,112,.08); }
.rayz-progress-lg { height:10px; border-radius:15px; }
.rayz-dot { width:10px; height:10px; display:inline-block; border-radius:50%; }
.rayz-access-footer { font-size:12px; line-height:1.65; color:#787c91; background:#f5f6f9; border-radius:9px; padding:12px 14px; }
.rayz-auth-screen { min-height:100vh; padding:32px; display:flex; align-items:center; justify-content:center; background:radial-gradient(ellipse at 15% 10%,#eeeefe 0%,transparent 39%),#f7f7fc; }
.rayz-auth-shell { max-width:1050px; width:100%; min-height:630px; border-radius:22px; background:#fff; overflow:hidden; display:grid; grid-template-columns:1fr 1fr; box-shadow:0 24px 80px rgba(67,70,112,.11); }
.rayz-auth-promo { flex-direction:column; justify-content:space-between; padding:38px 44px; background:linear-gradient(155deg,#8082ff,#595bd4 75%,#4145b8); color:#fff; position:relative; overflow:hidden; }
.rayz-auth-promo:before,.rayz-auth-promo:after { content:""; display:block; position:absolute; width:320px;height:320px;border-radius:50%; border:1px solid rgba(255,255,255,.18); pointer-events:none; }
.rayz-auth-promo:before { top:25%;left:-170px; }
.rayz-auth-promo:after { bottom:-180px;right:-140px; }
.rayz-brand-symbol-light { background:rgba(255,255,255,.24); border:1px solid rgba(255,255,255,.35); box-shadow:none; }
.rayz-auth-promo-top { display:flex; align-items:center; }
.rayz-promo-eyebrow,.rayz-form-eyebrow { letter-spacing:.19em; font-weight:800; font-size:11px; }
.rayz-promo-eyebrow { color:#dfdfff; }
.rayz-auth-promo-main { position:relative; z-index:1; }
.rayz-auth-promo-main h1 { font-size:43px; line-height:1.17; letter-spacing:-.035em; margin:15px 0 17px; color:#fff; font-weight:800; }
.rayz-auth-promo-main p { color:#e4e3ff; max-width:290px; line-height:1.8; }
.rayz-promo-art { margin-top:35px; height:140px; width:100%; max-width:340px; border:1px solid rgba(255,255,255,.34); border-radius:22px; background:rgba(255,255,255,.14); backdrop-filter:blur(5px); display:flex; align-items:center; justify-content:space-evenly; font-size:40px; color:#fff; box-shadow:0 16px 30px rgba(27,24,100,.14); }
.rayz-promo-art span { font-size:42px; font-weight:800; letter-spacing:.05em; }
.rayz-auth-promo > small { position:relative; z-index:1; color:#dfdfff; }
.rayz-auth-form-wrap { position:relative; display:flex; align-items:center; justify-content:center; padding:65px 55px; }
.rayz-auth-form-inner { width:100%; max-width:355px; }
.rayz-form-eyebrow { color:var(--rayz-purple); }
.rayz-auth-form-inner h2 { margin-top:11px; font-size:27px; letter-spacing:-.025em; }
.rayz-auth-form-inner .input-group-text { background:#fff; }
.rayz-auth-note { font-size:12px; margin-top:25px; text-align:center; color:#888da4; }
.rayz-auth-credit { position:absolute; bottom:22px; font-size:11px; color:#999daf; }
@media (max-width:991.98px) { .rayz-auth-shell { grid-template-columns:1fr; max-width:520px; min-height:initial; } .rayz-auth-form-wrap { min-height:580px; } .rayz-auth-screen { padding:20px; } }
@media (max-width:575.98px) { .rayz-auth-screen { padding:0; background:#fff; } .rayz-auth-shell { border-radius:0; box-shadow:none; min-height:100vh; } .rayz-auth-form-wrap { padding:40px 25px 65px; } .rayz-welcome-art { max-height:155px; } }

/* ======================================================================
   RayZtudio v3 - ERP-first compact shell (overrides Sneat default shell ONLY).
   CSS namespacing keeps Login's v2 appearance unchanged.
   ====================================================================== */
:root {
  --rayz-rail: 60px;
  --rayz-menu-width: 310px;
  --rayz-shell-bg: #f7f8fc;
  --rayz-line: #e8eaf2;
  --rayz-text: #343950;
}
html, body.rayz-erp-body { min-height:100%; }
body.rayz-erp-body { margin:0; background:var(--rayz-shell-bg); color:var(--rayz-text); }
body.rayz-erp-body.rayz-menu-open { overflow:hidden; }
.rayz-erp-body * { box-sizing:border-box; }
.rayz-rail {
  position:fixed; inset:0 auto 0 0; width:var(--rayz-rail); z-index:1102;
  display:flex; align-items:center; flex-direction:column; gap:14px;
  background:#fff; border-right:1px solid var(--rayz-line); padding:12px 8px;
}
.rayz-rail-logo {
  width:42px; height:42px; flex:0 0 auto; border:0; border-radius:13px;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:linear-gradient(145deg,#9295ff,#5d60e6); color:white;
  font-weight:800; font-size:21px; box-shadow:0 8px 22px rgba(105,108,255,.24);
  transition:transform .15s ease,box-shadow .15s ease;
}
.rayz-rail-logo:hover { transform:translateY(-1px); box-shadow:0 12px 25px rgba(105,108,255,.3); }
.rayz-rail-logo:focus-visible,.rayz-icon-button:focus-visible,.rayz-nav-group-trigger:focus-visible,.rayz-nav-child:focus-visible,
.rayz-topbar-avatar:focus-visible { outline:3px solid #a6a8ff; outline-offset:2px; }
.rayz-rail-divider { width:24px; height:1px; background:var(--rayz-line); }
.rayz-rail-caption { writing-mode:vertical-rl; transform:rotate(180deg); letter-spacing:.25em; font-size:9px; font-weight:800; color:#b6bad1; }
.rayz-rail-spacer { flex:1; }
.rayz-rail-status { color:#43bb97; padding:10px 0; font-size:21px; }
.rayz-nav-scrim:not([hidden]) { display:block; position:fixed; z-index:1098; inset:0 0 0 var(--rayz-rail);
  border:0; background:rgba(27,34,61,.23); backdrop-filter:blur(2px); cursor:default; }
.rayz-nav-drawer {
  position:fixed; z-index:1100; top:0; bottom:0; left:var(--rayz-rail);
  width:min(var(--rayz-menu-width), calc(100vw - var(--rayz-rail)));
  display:flex; flex-direction:column; background:white;
  box-shadow:10px 0 42px rgba(35,39,76,.13); border-right:1px solid var(--rayz-line);
  transform:translateX(-12px); opacity:0; visibility:hidden; pointer-events:none;
  transition:transform .2s ease, opacity .18s ease,visibility .18s ease;
}
.rayz-menu-open .rayz-nav-drawer { transform:translateX(0); opacity:1; visibility:visible; pointer-events:auto; }
.rayz-nav-heading { display:flex; gap:12px; align-items:center; justify-content:space-between; min-height:75px; padding:15px 18px;
 border-bottom:1px solid var(--rayz-line); }
.rayz-nav-kicker { font-size:9px; color:#9da2ba; font-weight:800; letter-spacing:.19em; }
.rayz-nav-title { font-size:21px; line-height:1.35; font-weight:800; color:#373c56; }
.rayz-nav-title span { color:var(--rayz-purple); }
.rayz-icon-button { width:36px; height:36px; border:none; color:#747c95; background:#f4f5fa; border-radius:11px; font-size:20px;
 display:inline-flex; align-items:center; justify-content:center; cursor:pointer; }
.rayz-icon-button:hover { color:var(--rayz-purple); background:#eeeefe; }
.rayz-nav-groups { overflow-y:auto; flex:1; padding:16px 12px; scrollbar-width:thin; }
.rayz-nav-group { margin-bottom:7px; }
.rayz-nav-group-trigger { display:flex; width:100%; padding:11px 12px; align-items:center; gap:11px; border:0;
 background:transparent; border-radius:12px; text-align:left; cursor:pointer; color:#49506a; }
.rayz-nav-group-trigger:hover,.rayz-nav-group-trigger.is-current { background:#f1f2ff; }
.rayz-nav-group-icon { width:37px; height:37px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; font-size:19px;
 border-radius:11px; color:var(--rayz-purple); background:#eeeefe; }
.rayz-nav-group-info { display:flex; flex-direction:column; min-width:0; flex:1; }
.rayz-nav-group-name { font-weight:700; font-size:14px; }
.rayz-nav-group-desc { font-size:11px; margin-top:2px; color:#989db0; }
.rayz-nav-chevron { transition:transform .17s ease; font-size:19px; color:#a0a6ba; }
.rayz-nav-group-trigger[aria-expanded="true"] .rayz-nav-chevron { transform:rotate(180deg); }
.rayz-nav-children:not([hidden]) { display:flex; flex-direction:column; gap:2px; margin:5px 0 10px 54px; padding-left:12px;
 border-left:1px solid #e6e8f3; }
.rayz-nav-child { display:flex; align-items:center; gap:9px; color:#6b728a; padding:10px 10px; border-radius:9px;
 font-size:13px; text-decoration:none; }
.rayz-nav-child .icon-base { font-size:17px; }
.rayz-nav-child:hover { background:#f4f4ff; color:var(--rayz-purple); }
.rayz-nav-child.is-active { color:var(--rayz-purple); background:#eaeaff; font-weight:700; }
.rayz-nav-bottom { display:flex; gap:10px; align-items:center; padding:13px 14px; border-top:1px solid var(--rayz-line); min-height:68px; }
.rayz-nav-user-avatar,.rayz-topbar-avatar { display:inline-flex; align-items:center; justify-content:center;
 border:0; border-radius:50%; background:#e8e8ff; color:#696cff; font-weight:800; }
.rayz-nav-user-avatar { width:38px; height:38px; flex:0 0 auto; }
.rayz-nav-user-meta { min-width:0; flex:1; }
.rayz-nav-user-meta strong,.rayz-nav-user-meta small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.rayz-nav-user-meta strong { font-size:12px; }
.rayz-nav-user-meta small { font-size:10px; color:#a0a5b9; }
.rayz-stage { margin-left:var(--rayz-rail); display:flex; flex-direction:column; min-width:0; min-height:100dvh; }
.rayz-topbar { width:100%; height:59px; flex-shrink:0; background:#fff; border-bottom:1px solid var(--rayz-line);
 display:flex; align-items:center; justify-content:space-between; gap:16px; padding:7px 19px; }
.rayz-topbar-title { display:flex; flex-direction:column; min-width:0; line-height:1.2; }
.rayz-topbar-overline { color:#a2a6b8; font-size:10px; margin-bottom:4px; }
.rayz-topbar-title strong { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rayz-topbar-actions { display:flex; align-items:center; gap:13px; }
.rayz-topbar-user { font-size:12px; color:#6c7088; }
.rayz-topbar-avatar { cursor:pointer; height:34px; width:34px; }
.rayz-workspace { width:100%; padding:16px 18px 10px; flex:1; min-width:0; }
.rayz-footer { display:flex; justify-content:space-between; gap:12px; padding:7px 18px 9px; flex-wrap:wrap;
 color:#a3a7ba; font-size:11px; }
.rayz-footer a { color:#8689fb; }
.rayz-page-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:0 0 14px; }
.rayz-page-heading h1 { margin:0; font-size:19px; font-weight:750; line-height:1.25; }
.rayz-page-caption { font-size:12px; color:#949ab2; }
.rayz-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
.rayz-summary-card { background:#fff; border:1px solid var(--rayz-line); border-radius:13px; padding:13px 16px;
 box-shadow:0 3px 12px rgba(48,55,96,.025); min-width:0; }
.rayz-summary-top { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.rayz-summary-label { color:#888fa6; font-size:12px; }
.rayz-summary-icon { color:#686bfa; background:#eeefff; padding:8px; border-radius:9px; }
.rayz-summary-value { margin-top:5px; color:#323851; font-size:27px; line-height:1.2; font-weight:800; font-variant-numeric:tabular-nums; }
.rayz-panel { background:#fff; border:1px solid var(--rayz-line); border-radius:13px;
 box-shadow:0 3px 12px rgba(48,55,96,.025); padding:15px 17px; min-width:0; }
.rayz-panel-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; flex-wrap:wrap; gap:8px; }
.rayz-panel-heading h2 { margin:0; font-size:14px; font-weight:700; }
.rayz-summary-row { display:grid; grid-template-columns:minmax(0,2fr) minmax(260px,1fr); gap:12px; }
.rayz-table-scroll { max-height:calc(100dvh - 295px); min-height:110px; overflow:auto; scrollbar-width:thin; }
.rayz-table-scroll table { margin-bottom:0; }
.rayz-table-scroll th { position:sticky; top:0; z-index:1; background:#fff; font-weight:700; font-size:11px; }
.rayz-table-scroll td { font-size:12px; }
.rayz-table-scroll td,.rayz-table-scroll th { padding:.6rem .8rem; }
.rayz-status-pill { display:inline-flex; align-items:center; gap:6px; color:#198d72; background:#e8f9f3; border-radius:50px;
 padding:6px 10px; font-size:11px; font-weight:650; }
.rayz-status-dot { width:7px; height:7px; background:#2ac397; border-radius:50%; }
.rayz-erp-body .card { margin-bottom:0; }
@media (max-width:900px) {
  .rayz-summary-row { grid-template-columns:1fr; }
  .rayz-table-scroll { max-height:240px; }
}
@media (max-width:600px) {
  :root { --rayz-rail:52px; }
  .rayz-rail { padding:9px 5px; }
  .rayz-rail-logo { width:39px; height:39px; }
  .rayz-topbar { height:54px; padding:6px 12px; }
  .rayz-workspace { padding:12px 10px 8px; }
  .rayz-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .rayz-summary-grid .rayz-summary-card:last-child { grid-column:1/-1; }
  .rayz-summary-card { padding:12px; }
  .rayz-summary-value { font-size:23px; }
  .rayz-panel { padding:12px; }
  .rayz-footer { padding:7px 10px; }
}
@media (prefers-reduced-motion:reduce) {
 .rayz-nav-drawer,.rayz-rail-logo,.rayz-nav-chevron { transition:none; }
}

/* =====================================================================
   v4 — Compact ERP Navigation: dense groups, shallow child indent,
   icon shortcuts / tooltips, shared rail + drawer motion.  Overrides v3.
   ===================================================================== */
:root { --rayz-motion: 260ms; --rayz-motion-curve: cubic-bezier(.22,1,.36,1); }
.rayz-rail { gap:9px; }
.rayz-rail-icons {
  display:flex; flex-direction:column; align-items:center; flex-shrink:0;
  width:100%; gap:6px; max-height:440px; opacity:1; overflow:hidden;
  transform:translateY(0) scaleY(1); transform-origin:top center;
  transition:max-height var(--rayz-motion) var(--rayz-motion-curve),
             opacity 160ms ease, transform var(--rayz-motion) var(--rayz-motion-curve);
}
.rayz-menu-open .rayz-rail-icons {
  max-height:0; opacity:0; transform:translateY(-24px) scaleY(.65); pointer-events:none;
}
.rayz-rail-icon {
  width:39px; height:39px; flex:0 0 39px; display:inline-flex; align-items:center; justify-content:center;
  border:0; border-radius:12px; background:transparent; color:#878da6; cursor:pointer;
  font-size:20px; transition:background 150ms ease, color 150ms ease, transform 150ms ease;
}
.rayz-rail-icon:hover,.rayz-rail-icon:focus-visible { background:#f0f0ff; color:var(--rayz-purple); transform:translateY(-1px); }
.rayz-rail-icon.is-active { background:#eeeeff; color:var(--rayz-purple); }
.rayz-rail-icon:focus-visible { outline:2px solid #888bff; outline-offset:2px; }
.rayz-rail-caption {
  flex-shrink:0; transition:transform var(--rayz-motion) var(--rayz-motion-curve);
}
.rayz-menu-open .rayz-rail-caption { transform:rotate(180deg) translateY(3px); }
.rayz-rail-tooltip {
  position:fixed; left:calc(var(--rayz-rail) + 10px); top:0; z-index:1150;
  padding:7px 11px; color:white; background:#343950; border-radius:8px;
  box-shadow:0 8px 22px rgba(33,37,72,.18); pointer-events:none;
  font-size:12px; font-weight:600; white-space:nowrap;
  opacity:0; visibility:hidden; transform:translateY(-50%) translateX(-5px);
  transition:opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
}
.rayz-rail-tooltip.is-visible {
  opacity:1; visibility:visible; transform:translateY(-50%) translateX(0);
}
.rayz-menu-open .rayz-rail-logo { transform:scale(.96); box-shadow:0 4px 11px rgba(105,108,255,.19); }
/* Drawer moves completely behind the rail when closed, then slides out. */
.rayz-nav-drawer {
  transform:translateX(calc(-100% - 4px)); opacity:0; visibility:hidden; pointer-events:none;
  transition:transform var(--rayz-motion) var(--rayz-motion-curve),
             opacity 200ms ease, visibility 0s linear var(--rayz-motion);
}
.rayz-menu-open .rayz-nav-drawer {
  transform:translateX(0); opacity:1; visibility:visible; pointer-events:auto;
  transition:transform var(--rayz-motion) var(--rayz-motion-curve),
             opacity 200ms ease, visibility 0s;
}
.rayz-nav-scrim { display:block; position:fixed; z-index:1098; inset:0 0 0 var(--rayz-rail);
  border:0; background:rgba(27,34,61,.23); backdrop-filter:blur(2px); cursor:default;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity var(--rayz-motion) ease, visibility 0s linear var(--rayz-motion);
}
.rayz-menu-open .rayz-nav-scrim { opacity:1; visibility:visible; pointer-events:auto;
  transition:opacity var(--rayz-motion) ease, visibility 0s;
}
.rayz-nav-groups { padding:12px 12px; }
.rayz-nav-group { margin-bottom:5px; }
/* Old: 37px icon + 22px vertical padding = 59px. New: 31 + 12 = 43px (~27% shorter). */
.rayz-nav-group-trigger { min-height:43px; padding:6px 10px; gap:10px; border-radius:10px; }
.rayz-nav-group-icon { width:31px; height:31px; flex-basis:31px; font-size:17px; border-radius:9px; }
.rayz-nav-group-name { font-size:13px; line-height:1.15; }
.rayz-nav-group-desc { font-size:10px; line-height:1.15; margin-top:2px; }
.rayz-nav-chevron { font-size:17px; }
/* v3 indent 54px -> v4 indent 24px: nesting clear without wasting width. */
.rayz-nav-children:not([hidden]) { gap:2px; margin:3px 0 8px 24px; padding-left:9px; }
.rayz-nav-child { width:100%; min-height:35px; padding:7px 10px; border:0; background:transparent;
  cursor:pointer; text-align:left; font:inherit; font-size:12px; }
.rayz-nav-child .icon-base { font-size:16px; }
.rayz-nav-child-preview { color:#778098; }
.rayz-nav-child-preview:hover,.rayz-nav-child-preview:focus-visible { background:#f4f4ff; color:var(--rayz-purple); }
.rayz-preview-tag { margin-left:auto; flex-shrink:0; padding:2px 5px; border-radius:5px; background:#f2f3f8;
  color:#9ba0b3; font-size:9px; font-weight:600; }
.rayz-preview-toast { position:fixed; z-index:1190; right:18px; bottom:18px; max-width:min(390px,calc(100vw - 35px));
  background:#363a54; color:#fff; border-radius:11px; padding:11px 15px;
  font-size:12px; box-shadow:0 12px 32px rgba(32,37,69,.22); }
.rayz-preview-toast[hidden] { display:none !important; }
@media (max-width:600px) {
  .rayz-rail { gap:8px; }
  .rayz-rail-icon { width:36px; height:36px; flex-basis:36px; font-size:18px; }
}
@media (prefers-reduced-motion:reduce) {
  .rayz-rail-icons,.rayz-rail-caption,.rayz-nav-drawer,.rayz-nav-scrim,
  .rayz-rail-icon,.rayz-rail-tooltip { transition:none !important; }
}

/* =====================================================================
   v5 — Config-driven toolbar, notifications and account menu.
   Compact ERP: no duplicate in-page heading, responsive More menu.
   ===================================================================== */
.rayz-topbar-actions { flex:0 0 auto; gap:14px; min-width:0; }
.rayz-toolbar { display:flex; align-items:center; gap:2px; }
.rayz-tool-wrap { position:relative; flex:0 0 auto; }
.rayz-tool-icon {
  position:relative; display:inline-flex; width:36px; height:36px; padding:0;
  align-items:center; justify-content:center; flex:0 0 auto;
  border:0; border-radius:10px; background:transparent; color:#6d7287;
  font-size:21px; line-height:1; cursor:pointer; text-decoration:none;
  transition:background .15s ease,color .15s ease;
}
.rayz-tool-icon:hover,.rayz-tool-icon[aria-expanded="true"] { background:#f0f0ff; color:var(--rayz-purple); }
.rayz-tool-icon:focus-visible,.rayz-account-trigger:focus-visible,.rayz-tool-list-item:focus-visible,
.rayz-notice-item:focus-visible,.rayz-account-entry:focus-visible { outline:2px solid #888bff; outline-offset:2px; }
.rayz-tool-badge {
  position:absolute; right:-3px; top:-4px; z-index:1; min-width:17px; height:17px;
  border-radius:50px; padding:0 4px; background:#ff4c58; color:white; display:inline-flex;
  align-items:center; justify-content:center; font-size:10px; font-weight:800; line-height:1;
  box-shadow:0 0 0 2px white;
}
.rayz-topbar-account { flex-shrink:0; }
.rayz-account-trigger { display:inline-flex; gap:12px; align-items:center; justify-content:center;
  border:0; cursor:pointer; padding:3px 0 3px 5px; background:none; color:inherit; border-radius:12px; }
.rayz-account-trigger:hover .rayz-topbar-avatar,
.rayz-account-trigger[aria-expanded="true"] .rayz-topbar-avatar { box-shadow:0 0 0 3px rgba(105,108,255,.18); }
.rayz-topbar-avatar { flex:0 0 34px; font-size:13px; }
.rayz-notice-menu { width:340px; max-width:calc(100vw - 74px); padding:0;
  border:1px solid var(--rayz-line); border-radius:13px; overflow:hidden;
  box-shadow:0 16px 46px rgba(34,42,75,.15); }
.rayz-notice-heading { padding:12px 15px 11px; border-bottom:1px solid var(--rayz-line); }
.rayz-notice-heading strong { display:block; font-size:13px; color:#39405a; }
.rayz-notice-heading small { font-size:11px; color:#9499ae; line-height:1.35; }
.rayz-notice-scroll { max-height:min(400px, 55vh); overflow-y:auto; scrollbar-width:thin; }
.rayz-notice-item { display:flex; flex-direction:column; width:100%; padding:11px 15px; text-align:left;
  border:0; border-bottom:1px solid #f0f1f6; background:white; color:#434b65;
  cursor:pointer; text-decoration:none; font:inherit; }
.rayz-notice-item:last-child { border-bottom:0; }
.rayz-notice-item:hover,.rayz-notice-item:focus-visible { background:#f5f5ff; }
.rayz-notice-title { font-size:12px; font-weight:700; }
.rayz-notice-item small,.rayz-notice-empty { font-size:11px; color:#9299ad; }
.rayz-notice-title em { margin-left:4px; font-size:9px; font-style:normal; color:#8d90bd;
  background:#eeeeff; padding:2px 4px; border-radius:4px; }
.rayz-notice-empty { padding:16px; }
.rayz-account-menu { width:270px; max-width:calc(100vw - 74px); padding:7px 0;
  border:1px solid var(--rayz-line); border-radius:13px;
  box-shadow:0 16px 46px rgba(34,42,75,.15); }
.rayz-account-heading { display:flex; align-items:center; gap:10px; padding:9px 14px 11px; }
.rayz-account-details { display:flex; flex-direction:column; min-width:0; }
.rayz-account-details strong,.rayz-account-details small { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.rayz-account-details strong { font-size:13px; color:#434b65; }
.rayz-account-details small { font-size:11px; color:#9197ae; }
.rayz-account-entry { display:flex; align-items:center; gap:10px; width:100%; padding:9px 15px; font-size:12px; }
.rayz-account-entry .icon-base { font-size:17px; }
.rayz-account-entry span { flex:1; }
.rayz-account-demo,.rayz-tool-demo-label { font-size:9px; font-weight:600; color:#8f95aa; }
.rayz-tool-more { display:none; }
.rayz-more-menu { width:290px; max-width:calc(100vw - 74px); padding:0 0 8px; border-radius:13px;
  border:1px solid var(--rayz-line); box-shadow:0 16px 46px rgba(34,42,75,.15); }
.rayz-tool-list-item { border:0; padding:10px 14px; display:flex; width:100%;
  align-items:center; gap:10px; text-decoration:none; font:inherit; font-size:12px;
  cursor:pointer; color:#434b65; background:transparent; text-align:left; }
.rayz-tool-list-item:hover,.rayz-more-details summary:hover { background:#f5f5ff; color:var(--rayz-purple); }
.rayz-tool-list-item .icon-base { font-size:18px; }
.rayz-tool-list-item > span:not(.rayz-tool-badge) { flex:1; }
.rayz-tool-badge-inline { position:static; box-shadow:none; margin-left:auto; }
.rayz-more-details summary { display:flex; align-items:center; gap:10px; cursor:pointer;
  list-style:none; padding:10px 14px; font-size:12px; color:#434b65; }
.rayz-more-details summary::-webkit-details-marker { display:none; }
.rayz-more-details summary .icon-base { font-size:18px; }
.rayz-more-details-list { padding-left:17px; border-left:2px solid #eeeefe; margin:0 12px 5px; }
.rayz-more-details-list .rayz-notice-item { padding:8px 10px; }
/* ERP pages may include their own toolbar; do not force extra vertical spacing. */
.rayz-workspace > :first-child { margin-top:0; }
@media(max-width:990px) {
  .rayz-tool-secondary { display:none; }
  .rayz-tool-more { display:block; }
}
@media(max-width:575.98px) {
  .rayz-topbar-actions { gap:5px; }
  .rayz-toolbar { gap:0; }
  .rayz-tool-icon { width:32px; height:32px; font-size:19px; }
  .rayz-account-trigger { padding-left:0; }
  .rayz-account-menu,.rayz-notice-menu,.rayz-more-menu { max-width:calc(100vw - 68px); }
}
/* Functional, local-only dark mode. RayZtudio shell is themed; Sneat library styles are left intact. */
.rayz-theme-dark { --rayz-shell-bg:#191e2b; --rayz-line:#343b51; --rayz-text:#d8ddec; background:#191e2b; color:#d8ddec; }
.rayz-theme-dark .rayz-rail,.rayz-theme-dark .rayz-topbar,.rayz-theme-dark .rayz-nav-drawer,
.rayz-theme-dark .rayz-panel,.rayz-theme-dark .rayz-summary-card,
.rayz-theme-dark .rayz-account-menu,.rayz-theme-dark .rayz-notice-menu,.rayz-theme-dark .rayz-more-menu {
  background:#242b3b; color:#d8ddec; border-color:var(--rayz-line); }
.rayz-theme-dark .rayz-nav-heading,.rayz-theme-dark .rayz-nav-bottom,.rayz-theme-dark .rayz-notice-heading { border-color:var(--rayz-line); }
.rayz-theme-dark .rayz-nav-title,.rayz-theme-dark .rayz-notice-heading strong,.rayz-theme-dark .rayz-account-details strong,
.rayz-theme-dark .rayz-nav-group-name,.rayz-theme-dark .rayz-summary-value,.rayz-theme-dark .rayz-panel-heading h2 { color:#e8eafa; }
.rayz-theme-dark .rayz-notice-item { background:#242b3b; border-color:var(--rayz-line); color:#d8ddec; }
.rayz-theme-dark .rayz-notice-item:hover,.rayz-theme-dark .rayz-tool-list-item:hover,
.rayz-theme-dark .rayz-more-details summary:hover,.rayz-theme-dark .rayz-account-entry:hover { background:#343c56; }
.rayz-theme-dark .rayz-tool-icon,.rayz-theme-dark .rayz-tool-list-item,.rayz-theme-dark .rayz-more-details summary,
.rayz-theme-dark .rayz-nav-child,.rayz-theme-dark .rayz-nav-group-trigger { color:#c9cee0; }
.rayz-theme-dark .rayz-tool-icon:hover,.rayz-theme-dark .rayz-rail-icon:hover,.rayz-theme-dark .rayz-nav-group-trigger:hover { background:#343b59; color:#bfc2ff; }
.rayz-theme-dark .rayz-nav-group-trigger.is-current,.rayz-theme-dark .rayz-nav-child.is-active,
.rayz-theme-dark .rayz-rail-icon.is-active { background:#383b62; color:#aeb0ff; }
.rayz-theme-dark .rayz-table-scroll th,.rayz-theme-dark .rayz-erp-body .card,
.rayz-theme-dark .card { background:#242b3b; color:#d8ddec; }
.rayz-theme-dark .rayz-tool-badge { box-shadow:0 0 0 2px #242b3b; }

/* v5.1 — Use a consistent user icon, not the account name initial, in every shell avatar. */
.rayz-nav-user-avatar .icon-base,
.rayz-topbar-avatar .icon-base { font-size:21px; line-height:1; font-weight:normal; }
.rayz-topbar-avatar .icon-base { font-size:20px; }
.rayz-user-avatar .icon-base, .rayz-table-avatar .icon-base { font-size:22px; line-height:1; font-weight:normal; }
.rayz-profile-avatar .icon-base { font-size:30px; line-height:1; font-weight:normal; }
