
:root{
  --page:#f5f7fb;
  --panel:#ffffff;
  --panel-soft:#f8fafc;
  --line:#e7edf5;
  --line2:#dbe5f0;
  --text:#243246;
  --muted:#6f7f92;
  --muted2:#98a6b8;
  --blue:#1da1f2;
  --blue2:#2f80ed;
  --green:#dff7ec;
  --greenText:#19a463;
  --purple:#8b5cf6;
  --red:#ef4444;
  --shadow:0 8px 24px rgba(30,55,90,.08);
  --radius:16px;
}
*{box-sizing:border-box}
html,body{
  margin:0;
  min-height:100%;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:var(--page);
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

.page-shell{
  display:grid;
  grid-template-columns:58px minmax(0,1fr);
  min-height:100vh;
}

/* Connecteam-style skinny sidebar */
.sidebar{
  position:sticky;
  top:0;
  height:100vh;
  padding:10px 8px;
  background:#ffffff;
  border-right:1px solid var(--line);
  box-shadow:1px 0 0 rgba(0,0,0,.02);
  overflow:hidden;
}
.brand{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
}
.logo{
  width:34px;
  height:34px;
  object-fit:contain;
  border-radius:8px;
  background:white;
}
.brand h1,.brand span{display:none}

.nav{
  display:grid;
  gap:8px;
}
.nav a,.nav button{
  width:40px;
  height:40px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#7b8ba0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  font-size:0;
  cursor:pointer;
  position:relative;
}

.nav a:hover,.nav a.active,.nav button:hover{
  background:#eef7ff;
}
.nav .small{display:none}

/* Main page */
.main{
  padding:14px 18px 28px;
  width:100%;
  max-width:none;
}
.main::before{
  content:"";
  display:block;
  height:46px;
  margin:-14px -18px 16px;
  background:#ffffff;
  border-bottom:1px solid var(--line);
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
.topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0 0 16px;
  gap:16px;
}
.topbar h2{
  font-size:24px;
  line-height:1.12;
  margin:0;
  font-weight:800;
  color:#26364a;
}
.sub{
  color:var(--muted);
  margin:5px 0 0;
  line-height:1.35;
  font-size:13px;
}

/* Cards */
.card{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:18px;
}
.hero{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  background:#ffffff;
  border-radius:18px;
}
.hero h2{
  font-size:28px;
  margin:0 0 6px;
  color:#23344a;
}
.hero .logo{
  width:76px!important;
  height:76px!important;
  border:1px solid var(--line);
  box-shadow:0 4px 14px rgba(30,55,90,.08);
}

/* Grid/tile directory */
.grid{display:grid;gap:14px}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.tile{
  padding:18px;
  border-radius:18px;
  background:#ffffff;
  border:1px solid var(--line);
  box-shadow:0 5px 16px rgba(30,55,90,.05);
  transition:.15s;
  display:block;
  min-height:126px;
}
.tile:hover{
  transform:translateY(-1px);
  border-color:#bfe4ff;
  box-shadow:0 10px 22px rgba(30,55,90,.08);
}
.tile h3{
  margin:0 0 7px;
  font-size:19px;
  color:#26364a;
}
.tile p{
  margin:0;
  color:var(--muted);
  line-height:1.4;
  font-size:13px;
}
.tile .tag{
  display:inline-flex;
  margin-bottom:12px;
  padding:5px 9px;
  border-radius:999px;
  background:#e8f5ff;
  color:#198ed8;
  font-size:11px;
  font-weight:800;
}

/* Forms */
label{
  display:block;
  margin:13px 0 6px;
  font-weight:700;
  color:#35465d;
  font-size:13px;
}
input,select,textarea{
  width:100%;
  border:1px solid var(--line2);
  background:#ffffff;
  color:var(--text);
  padding:11px 12px;
  border-radius:11px;
  outline:none;
  min-height:42px;
}
input:focus,select:focus,textarea:focus{
  border-color:#69bef8;
  box-shadow:0 0 0 3px rgba(29,161,242,.13);
}
textarea{
  min-height:92px;
  resize:vertical;
}
.checkline{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:15px;
  color:#46576c;
  font-weight:600;
  font-size:13px;
}
.checkline input{
  width:auto;
  min-height:auto;
  margin-top:3px;
}

/* Buttons */
.btn{
  border:0;
  background:#1da1f2;
  color:white;
  font-weight:800;
  border-radius:999px;
  padding:10px 16px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  box-shadow:0 5px 12px rgba(29,161,242,.22);
}
.btn:hover{background:#168cda}
.btn.secondary{
  background:#ffffff;
  color:#2d6f9f;
  box-shadow:none;
  border:1px solid var(--line2);
}
.btn.secondary:hover{background:#f3f9ff}
.btn.danger{
  background:#ef4444;
}
.actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}

/* Status/notifications */
.notice{
  padding:12px 14px;
  border-radius:13px;
  margin:14px 0;
  background:#eef7ff;
  border:1px solid #cdeaff;
  color:#24618e;
  font-size:13px;
}
.notice.ok{
  background:#ecfdf5;
  border-color:#bbf7d0;
  color:#166534;
}
.notice.bad{
  background:#fff1f2;
  border-color:#fecdd3;
  color:#9f1239;
}
.hidden{display:none!important}

/* Dashboard metrics */
.metric{
  background:#ffffff;
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  box-shadow:0 5px 16px rgba(30,55,90,.05);
}
.metric b{
  display:block;
  font-size:28px;
  line-height:1;
  color:#23344a;
}
.metric span{
  display:block;
  color:var(--muted);
  font-weight:700;
  margin-top:7px;
  font-size:12px;
}

/* Connecteam-style data table */
.table-wrap{
  overflow:auto;
  border-radius:14px;
  border:1px solid var(--line);
  margin-top:16px;
  background:white;
}
table{
  width:100%;
  border-collapse:collapse;
  background:#ffffff;
}
th,td{
  padding:11px 13px;
  border-bottom:1px solid var(--line);
  text-align:left;
  font-size:13px;
  vertical-align:middle;
  color:#3c4b5f;
}
th{
  background:#f5f8fb;
  color:#56677c;
  font-weight:800;
  white-space:nowrap;
}
tr:hover td{background:#fbfdff}
td a{
  color:#168cda;
  font-weight:800;
}

/* Misc */
.stepbar{
  display:flex;
  gap:8px;
  margin:0 0 16px;
}
.step{
  height:6px;
  flex:1;
  border-radius:999px;
  background:#dce8f4;
}
.step.on{background:#1da1f2}
.preview{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:9px;
}
.preview img{
  width:92px;
  height:70px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--line);
}
.footer-links{
  color:var(--muted);
  font-size:12px;
  margin-top:22px;
}
.footer-links a{
  color:#168cda;
  font-weight:800;
}
.inline-help{
  font-size:12px;
  color:var(--muted);
  margin-top:5px;
}
.pill{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  background:#e5f8ef;
  color:#11945a;
  font-weight:800;
  font-size:11px;
}

/* Fake Connecteam top search bar */
.main::after{
  content:"Search anything                                      Upgrade     Talk to an expert     Help";
  position:fixed;
  top:8px;
  left:82px;
  right:18px;
  height:30px;
  color:#7b8ba0;
  font-size:12px;
  display:flex;
  align-items:center;
  pointer-events:none;
  z-index:0;
}
.main > *{position:relative;z-index:1}

@media(max-width:900px){
  .page-shell{grid-template-columns:46px minmax(0,1fr)}
  .sidebar{padding:8px 4px}
  .nav a,.nav button{width:36px;height:36px}
  .main{padding:12px}
  .main::before{margin:-12px -12px 14px}
  .main::after{left:60px;right:10px;font-size:11px;content:"Search anything"}
  .grid.two,.grid.three,.grid.four{grid-template-columns:1fr}
  .topbar{display:block}
  .hero h2{font-size:24px}
}



/* Professional SVG sidebar icons */
.nav a,.nav button{
  font-size:0;
}
.nav-svg{
  width:20px;
  height:20px;
  color:#7b8ba0;
  display:block;
  flex:0 0 auto;
}
.nav a:hover .nav-svg,
.nav button:hover .nav-svg,
.nav a.active .nav-svg{
  color:#1da1f2;
}
.nav-label{
  display:none;
}
@media(min-width:1100px){
  .sidebar:hover{
    width:230px;
    z-index:10;
    box-shadow:8px 0 22px rgba(30,55,90,.08);
  }
  .sidebar:hover .brand{
    justify-content:flex-start;
    padding-left:4px;
  }
  .sidebar:hover .brand h1,
  .sidebar:hover .brand span{
    display:block;
  }
  .sidebar:hover .nav a,
  .sidebar:hover .nav button{
    width:100%;
    justify-content:flex-start;
    gap:12px;
    padding:0 12px;
    font-size:13px;
  }
  .sidebar:hover .nav-label{
    display:inline;
    font-weight:800;
    color:#46576c;
  }
}

/* Google admin sign-in button */
.google-login-btn {
  width: 100%;
  max-width: 360px;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px solid #dadce0;
  border-radius: 8px;
  background: #fff;
  color: #3c4043;
  font-family: Arial, sans-serif;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(60, 64, 67, .15);
}
.google-login-btn:hover { background: #f8fafd; box-shadow: 0 1px 3px rgba(60, 64, 67, .25); }
.google-login-btn:active { background: #f1f3f4; }
.google-login-btn svg { flex: 0 0 auto; }
.admin-login-card { max-width: 520px; }
.login-note { margin-top: 14px; font-size: 13px; color: var(--muted, #667085); line-height: 1.5; }


/* UX + compliance upgrade */
.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:9999;display:flex;gap:18px;align-items:center;justify-content:space-between;padding:16px 18px;background:#ffffff;border:1px solid rgba(15,23,42,.16);box-shadow:0 18px 45px rgba(15,23,42,.18);border-radius:18px;color:#0f172a;max-width:1120px;margin:auto}.cookie-banner span{font-size:13px;line-height:1.45}.cookie-actions{display:flex;gap:10px;flex-shrink:0}.cookie-banner.hide{opacity:0;transform:translateY(20px);transition:.25s ease}.scroll-top{position:fixed;right:22px;bottom:24px;z-index:9998;width:46px;height:46px;border-radius:999px;border:0;background:#0f172a;color:#fff;font-size:22px;box-shadow:0 12px 30px rgba(15,23,42,.25);cursor:pointer;opacity:0;pointer-events:none;transition:.2s ease}.scroll-top.show{opacity:1;pointer-events:auto}.toast-wrap{position:fixed;right:20px;top:20px;z-index:10000;display:grid;gap:10px}.toast{min-width:260px;max-width:420px;padding:13px 15px;border-radius:14px;box-shadow:0 14px 36px rgba(15,23,42,.22);background:#fff;border-left:5px solid #64748b;opacity:0;transform:translateX(14px);transition:.2s ease}.toast.show{opacity:1;transform:translateX(0)}.toast.ok{border-left-color:#16a34a}.toast.bad{border-left-color:#dc2626}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-weight:700;font-size:12px}.status-pending{background:#fef3c7;color:#92400e}.status-approved{background:#dcfce7;color:#166534}.status-rejected{background:#fee2e2;color:#991b1b}.availability-box{margin:12px 0;padding:14px 16px;border-radius:16px;background:#f8fafc;border:1px solid rgba(15,23,42,.10)}.availability-box.good{border-color:#86efac;background:#f0fdf4}.availability-box.warn{border-color:#fde68a;background:#fffbeb}.availability-box.bad{border-color:#fecaca;background:#fef2f2}.dark-toggle{margin-left:auto}.dark-mode body{background:#0f172a;color:#e5e7eb}.dark-mode .card,.dark-mode .sidebar,.dark-mode .topbar,.dark-mode .cookie-banner,.dark-mode .toast{background:#111827;color:#e5e7eb;border-color:rgba(255,255,255,.12)}.dark-mode input,.dark-mode select,.dark-mode textarea{background:#0b1220;color:#f8fafc;border-color:rgba(255,255,255,.18)}.dark-mode .sub{color:#94a3b8}.dark-mode .availability-box{background:#0b1220;border-color:rgba(255,255,255,.15)}@media(max-width:720px){.cookie-banner{left:10px;right:10px;bottom:10px;display:block}.cookie-actions{margin-top:12px}.scroll-top{right:14px}.toast-wrap{left:12px;right:12px}.toast{min-width:0;max-width:none}}

/* Advanced operations upgrade */
.offline-badge{position:fixed;left:14px;bottom:14px;z-index:9999;background:#111827;color:#fff;border-radius:999px;padding:9px 12px;font-size:12px;box-shadow:0 8px 24px rgba(0,0,0,.22)}
.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:14px}.day-card{border:1px solid #e5e7eb;border-radius:16px;padding:12px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.06)}.day-card.full{border-color:#fecaca;background:#fff1f2}.day-card b{display:block;margin-bottom:8px}.day-card strong{display:block;margin-top:8px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.kpi{border:1px solid #e5e7eb;border-radius:18px;padding:18px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.06)}.kpi b{display:block;font-size:28px}.kpi span{text-transform:capitalize;color:#64748b}.status-pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:700}.status-pending{background:#fef3c7;color:#92400e}.status-approved{background:#dcfce7;color:#166534}.status-rejected{background:#fee2e2;color:#991b1b}.qr-box{text-align:center;margin-top:18px}.qr-box img{max-width:260px;border-radius:12px;border:1px solid #e5e7eb;padding:8px;background:#fff}.nested-card{background:#f8fafc!important}

/* Website editor upgrade controls */
.editor-section{margin-top:18px}
.editor-logo-preview{max-width:180px;max-height:90px;border:1px solid var(--line, #e5e7eb);border-radius:14px;padding:8px;background:#fff;margin:10px 0 14px}
.nested-card{border:1px solid var(--line, #e5e7eb);border-radius:16px;padding:14px;margin:14px 0;background:rgba(248,250,252,.75)}
.nested-card h4{margin:0 0 10px;font-size:15px}
.grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:8px 0 14px}
.day-grid label{border:1px solid var(--line, #e5e7eb);border-radius:12px;padding:10px;background:#fff;font-size:13px;text-align:center}
.drag-handle{cursor:grab;font-weight:800;color:var(--muted, #64748b)}
.btn.small{padding:6px 9px;font-size:12px;border-radius:10px;margin:2px}
.btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}
.notice.danger{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.cms-custom-field{margin:12px 0}
code{background:#f1f5f9;border-radius:6px;padding:2px 6px;font-size:.9em}
@media (max-width: 850px){.grid.three,.day-grid{grid-template-columns:1fr 1fr}.day-grid{gap:6px}}
@media (max-width: 560px){.grid.three,.day-grid{grid-template-columns:1fr}.table-wrap{overflow:auto}}


/* Enforcement + analytics upgrade */
.admin-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px;margin:12px 0}.override-line{display:flex;gap:8px;align-items:center;margin-top:8px}.blackout-row{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:10px;align-items:end;margin:8px 0}.bar-chart{display:grid;gap:10px;margin-top:14px}.bar-line{display:grid;grid-template-columns:160px 1fr 60px;gap:10px;align-items:center}.bar-track{background:#e5e7eb;border-radius:999px;height:18px;overflow:hidden}.bar-fill{height:100%;background:#2563eb;border-radius:999px}.install-card{position:fixed;left:16px;bottom:16px;z-index:9999;max-width:320px;background:#111827;color:#fff;border-radius:16px;padding:14px;box-shadow:0 10px 30px rgba(0,0,0,.25)}.install-card .btn{margin-top:8px}.push-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#eef2ff;color:#3730a3;padding:6px 10px;font-weight:700}.note-box{border:1px solid #e5e7eb;border-radius:14px;padding:12px;background:#f8fafc;margin-top:10px}.audit-readonly{font-size:12px;color:#64748b}.session-banner{position:fixed;top:10px;right:10px;z-index:10000;background:#fef3c7;color:#92400e;border:1px solid #fcd34d;border-radius:12px;padding:10px 12px;box-shadow:0 6px 18px rgba(0,0,0,.12)}

/* Operations Tools */
.tool-output{min-height:320px;border:1px dashed rgba(148,163,184,.45);border-radius:18px;padding:18px;background:rgba(15,23,42,.03)}
.center{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:14px}
.stat-card,.mini-card{border:1px solid rgba(148,163,184,.35);border-radius:16px;padding:16px;background:rgba(255,255,255,.65)}
.stat-card strong{display:block;font-size:1.45rem;margin-bottom:4px}
.stat-card span,.mini-card p{color:var(--muted);font-size:.92rem}
code{background:rgba(15,23,42,.08);border-radius:6px;padding:2px 5px;word-break:break-all}
.qr-canvas{max-width:100%;height:auto;background:#fff;border:1px dashed rgba(15,23,42,.25);border-radius:18px;padding:12px;box-sizing:border-box}.notice.error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.tool-output.center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.mini-card{border:1px solid rgba(15,23,42,.12);border-radius:18px;padding:16px;background:rgba(255,255,255,.72)}

/* PWA install support */
.pwa-install-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:9998;display:flex;gap:14px;align-items:center;justify-content:space-between;background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 55px rgba(15,23,42,.34);border-radius:18px;padding:14px 16px;max-width:880px;margin:0 auto}.pwa-install-copy{display:flex;flex-direction:column;gap:4px}.pwa-install-copy span{font-size:13px;line-height:1.35;color:#dbeafe}.pwa-install-actions{display:flex;gap:8px;flex-shrink:0}.is-offline:before{content:'Offline mode: saved pages and queued submissions may still work.';position:fixed;top:0;left:0;right:0;background:#7c2d12;color:#fff;text-align:center;padding:8px 12px;font-size:13px;z-index:10000}@media(max-width:720px){.pwa-install-banner{left:10px;right:10px;bottom:10px;align-items:stretch;flex-direction:column}.pwa-install-actions{width:100%}.pwa-install-actions .btn{flex:1}}


/* ===== Full Mobile App Experience Upgrade ===== */
.mobile-app-loader{position:fixed;inset:0;background:linear-gradient(145deg,#07111f,#0f172a 55%,#111827);color:#fff;z-index:99999;display:flex;align-items:center;justify-content:center;transition:opacity .28s ease,visibility .28s ease}.mobile-app-loader.hidden{opacity:0;visibility:hidden;pointer-events:none}.mobile-loader-card{text-align:center;padding:28px;border:1px solid rgba(255,255,255,.12);border-radius:28px;background:rgba(255,255,255,.06);box-shadow:0 24px 80px rgba(0,0,0,.35);backdrop-filter:blur(12px);max-width:330px}.mobile-loader-card img{width:108px;height:108px;object-fit:contain;border-radius:24px;background:#fff;padding:8px;margin-bottom:14px}.mobile-loader-card h2{margin:0 0 6px;font-size:24px}.mobile-loader-card p{margin:0;color:#cbd5e1}.mobile-loader-spinner{width:42px;height:42px;border-radius:50%;border:4px solid rgba(255,255,255,.22);border-top-color:#fff;margin:18px auto 0;animation:vilaSpin .8s linear infinite}@keyframes vilaSpin{to{transform:rotate(360deg)}}
.vila-install-card{position:fixed;left:18px;right:18px;bottom:18px;z-index:9000;display:none;align-items:center;gap:14px;justify-content:space-between;background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:14px 16px;box-shadow:0 18px 60px rgba(15,23,42,.35)}.vila-install-card.show{display:flex}.vila-install-card strong{display:block;font-size:15px}.vila-install-card span{display:block;color:#cbd5e1;font-size:13px;margin-top:2px}.vila-install-actions{display:flex;gap:8px;flex-wrap:wrap}.vila-install-actions button{border:0;border-radius:999px;padding:10px 13px;font-weight:700;cursor:pointer}.vila-install-actions .install{background:#fff;color:#0f172a}.vila-install-actions .decline{background:rgba(255,255,255,.12);color:#fff}.vila-install-actions .disabled{opacity:.65;cursor:not-allowed}.mobile-offline-chip{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:9200;background:#7f1d1d;color:#fff;border-radius:999px;padding:8px 13px;font-size:13px;display:none}.is-offline .mobile-offline-chip{display:block}.mobile-page-transition{opacity:0;transform:translateY(6px);transition:opacity .22s ease,transform .22s ease}.mobile-page-transition.ready{opacity:1;transform:translateY(0)}.mobile-bottom-nav{display:none}@media(max-width:820px){.vila-install-card{left:10px;right:10px;bottom:10px;align-items:flex-start;flex-direction:column}.vila-install-actions{width:100%}.vila-install-actions button{flex:1}.main{padding-bottom:86px}.mobile-bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;z-index:7800;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:rgba(15,23,42,.94);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:8px;box-shadow:0 18px 48px rgba(0,0,0,.28);backdrop-filter:blur(12px)}.mobile-bottom-nav a{color:#cbd5e1;text-decoration:none;text-align:center;font-size:11px;padding:8px 4px;border-radius:15px}.mobile-bottom-nav a.active{background:#fff;color:#0f172a;font-weight:800}.mobile-bottom-nav svg{display:block;width:20px;height:20px;margin:0 auto 3px}}
@media(display-mode:standalone){.vila-install-card{display:none!important}body{overscroll-behavior-y:none}.main{padding-top:calc(env(safe-area-inset-top) + 18px);padding-bottom:calc(env(safe-area-inset-bottom) + 72px)}}

/* Email/password account system */
.auth-body{min-height:100vh;background:linear-gradient(135deg,#0f172a,#111827);display:flex;align-items:center;justify-content:center;padding:24px}
.auth-shell{width:min(760px,100%)}
.auth-card{background:#fff;border-radius:24px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.35)}
.auth-brand{display:flex;gap:16px;align-items:center;margin-bottom:22px}.auth-brand h1{margin:0;font-size:1.45rem}.auth-brand p{margin:4px 0 0;color:#64748b}.auth-logo{width:72px;height:72px;object-fit:contain;border-radius:16px;background:#f8fafc;padding:6px}
.auth-tabs{display:flex;gap:8px;background:#f1f5f9;border-radius:16px;padding:6px;margin-bottom:18px}.auth-tabs button{flex:1;border:0;border-radius:12px;background:transparent;padding:12px;font-weight:800;cursor:pointer}.auth-tabs button.active{background:#0f172a;color:#fff}
.auth-panel label{display:block;margin-top:12px;font-weight:700}.auth-panel input{width:100%;padding:13px;border:1px solid #cbd5e1;border-radius:12px;margin-top:6px}.auth-panel .btn{margin-top:14px}.stack-mobile{display:flex;gap:10px;flex-wrap:wrap}.hidden{display:none!important}.notice.good{background:#dcfce7;color:#14532d;border-color:#86efac}.notice.bad{background:#fee2e2;color:#7f1d1d;border-color:#fecaca}
#currentUserBadge{font-weight:800}.is-user .admin-only{display:none!important}
@media(max-width:640px){.auth-body{padding:12px;align-items:flex-start}.auth-card{padding:20px;border-radius:18px}.auth-brand{align-items:flex-start}.auth-logo{width:58px;height:58px}.stack-mobile .btn{width:100%}}

/* Auth UX upgrade: remember me, biometric unlock, lockout, transitions */
.auth-panel{animation:vilaAuthIn .22s ease both;transform-origin:top center}.auth-panel-active{animation:vilaAuthIn .22s ease both}.auth-panel-exit{animation:vilaAuthOut .15s ease both}@keyframes vilaAuthIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes vilaAuthOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px) scale(.99)}}
.auth-options{display:grid;gap:10px;margin:14px 0 4px}.checkline{display:flex!important;gap:10px;align-items:flex-start;font-weight:700!important;line-height:1.35;color:#334155}.checkline input{width:auto!important;margin-top:2px!important;accent-color:#0f172a}.lockout-note{margin:8px 0 2px;color:#64748b;font-size:12px;line-height:1.35}.password-row{display:flex;gap:8px;align-items:center}.password-row input{flex:1}.show-password-btn{margin-top:6px;border:1px solid #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:12px;padding:12px 13px;font-weight:800;cursor:pointer}.biometric-panel{border:1px solid #bfdbfe;background:#eff6ff;border-radius:18px;padding:18px;margin:12px 0}.biometric-panel .btn{width:100%;margin-top:12px}.auth-card button:disabled{opacity:.65;cursor:not-allowed}@media(max-width:640px){.password-row{gap:6px}.show-password-btn{padding:12px 10px}.auth-options{font-size:13px}.biometric-panel{padding:14px}}


/* Login page mobile cleanup: keep the auth screen separate from app navigation */
.auth-body .mobile-bottom-nav,
.auth-body #vilaMobileInstallCard,
.auth-body .vila-install-card,
.auth-body .pwa-install-banner,
.auth-body .mobile-offline-chip,
.auth-body .cookie-banner,
.auth-body .scroll-top {
  display: none !important;
}

.auth-body {
  min-height: 100dvh;
  width: 100%;
  overflow-x: hidden;
  padding: 18px;
}

.auth-shell {
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
}

.auth-card {
  width: 100%;
}

.auth-logo {
  width: 72px !important;
  height: 72px !important;
  max-width: 72px !important;
  max-height: 72px !important;
  flex: 0 0 72px;
}

.auth-card input,
.auth-card button {
  min-height: 46px;
  font-size: 16px;
}

@media (max-width: 640px) {
  .auth-body {
    align-items: center !important;
    justify-content: center !important;
    padding: 14px !important;
  }

  .auth-shell {
    max-width: 430px;
  }

  .auth-card {
    padding: 18px !important;
    border-radius: 20px !important;
  }

  .auth-brand {
    gap: 12px !important;
    align-items: center !important;
    margin-bottom: 16px !important;
  }

  .auth-brand h1 {
    font-size: 1.08rem !important;
    line-height: 1.15 !important;
  }

  .auth-brand p {
    font-size: 13px !important;
  }

  .auth-logo {
    width: 54px !important;
    height: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
    flex-basis: 54px !important;
    border-radius: 12px !important;
  }

  .auth-tabs {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .auth-panel h2 {
    font-size: 1.15rem;
  }

  .auth-panel .grid.two,
  .grid.two {
    grid-template-columns: 1fr !important;
  }

  .password-row {
    align-items: stretch !important;
  }

  .password-row input {
    min-width: 0;
  }

  .show-password-btn {
    white-space: nowrap;
  }

  .auth-options {
    font-size: 12.5px !important;
  }

  .actions.stack-mobile {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
}

/* Create account toggle fix */
.auth-tabs, .auth-tabs button { position: relative; z-index: 5; }
.auth-tabs button { pointer-events: auto; touch-action: manipulation; }
.auth-panel.hidden { display: none !important; }
.auth-panel.auth-panel-active { display: block; }

/* Linked-user email fields */
.auto-user-field, input.auto-user-field[readonly] {
  background: #eef2f7 !important;
  color: #334155 !important;
  cursor: not-allowed;
}
.user-linked-card {
  border-left: 4px solid #2563eb;
}

/* Role-aware admin navigation */
html.is-user .admin-only-nav, html.is-user a[href*="admin"], html.is-user a[href*="site-editor"] { display:none !important; }
html.is-admin .admin-only-nav { display:flex; }

/* Top-right user status/account dropdown */
.topbar { position: relative; gap: 14px; }
.user-menu-wrap { margin-left:auto; position:relative; display:flex; align-items:center; z-index:50; }
.user-menu-button { display:flex; align-items:center; gap:8px; border:1px solid rgba(148,163,184,.35); background:#fff; color:#0f172a; border-radius:999px; padding:9px 12px; font-weight:700; box-shadow:0 6px 18px rgba(15,23,42,.08); cursor:pointer; }
.online-dot { width:10px; height:10px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.15); }
.user-menu-dropdown { position:absolute; top:46px; right:0; min-width:240px; background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:10px; box-shadow:0 18px 45px rgba(15,23,42,.18); }
.user-menu-dropdown.hidden { display:none; }
.user-menu-dropdown a, .user-menu-dropdown button { display:block; width:100%; text-align:left; border:0; background:transparent; padding:10px 12px; border-radius:10px; color:#0f172a; text-decoration:none; cursor:pointer; font-weight:600; }
.user-menu-dropdown a:hover, .user-menu-dropdown button:hover { background:#f1f5f9; }
.user-menu-head { padding:10px 12px; border-bottom:1px solid #e2e8f0; margin-bottom:6px; }
.user-menu-head small { display:block; color:#64748b; margin-top:3px; }
.team-nav-icon { width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; }

/* Directory and messaging */
.user-list { display:grid; gap:10px; margin-top:14px; }
.user-list.compact { max-height:560px; overflow:auto; }
.user-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; border:1px solid #e2e8f0; border-radius:14px; background:#fff; }
.user-row small { display:block; color:#64748b; margin-top:2px; }
.user-row.selectable { width:100%; text-align:left; cursor:pointer; border:1px solid #e2e8f0; }
.user-row.selectable:hover { border-color:#2563eb; background:#eff6ff; }
.btn.small { padding:8px 12px; font-size:.9rem; }
.chat-layout { display:grid; grid-template-columns:300px 1fr; gap:18px; align-items:start; }
.chat-main, .chat-users { min-height:600px; }
.chat-box { height:460px; overflow:auto; border:1px solid #e2e8f0; border-radius:16px; padding:12px; background:#f8fafc; display:flex; flex-direction:column; gap:10px; }
.chat-box.room { height:520px; }
.msg { max-width:78%; align-self:flex-start; background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:10px 12px; box-shadow:0 4px 12px rgba(15,23,42,.05); }
.msg.mine { align-self:flex-end; background:#dbeafe; border-color:#bfdbfe; }
.msg p { margin:6px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.msg small { color:#64748b; }
.chat-compose { display:grid; grid-template-columns:1fr auto auto; gap:10px; margin-top:12px; align-items:center; }
.chat-compose input[type="file"] { max-width:190px; }
.chat-tabs { display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.emoji-row { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.emoji-row button, .reactions button { border:1px solid #e2e8f0; background:#fff; border-radius:999px; padding:6px 10px; cursor:pointer; }
.reactions { display:flex; gap:6px; margin-top:8px; }
.chat-photo { max-width:280px; width:100%; border-radius:12px; margin-top:8px; border:1px solid #e2e8f0; }
@media (max-width: 820px){
  .user-menu-wrap { width:100%; justify-content:flex-end; margin-top:10px; }
  .user-menu-name { max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .chat-layout { grid-template-columns:1fr; }
  .chat-main, .chat-users { min-height:auto; }
  .chat-box { height:420px; }
  .chat-compose { grid-template-columns:1fr; }
  .msg { max-width:92%; }
}

/* Unified site shell: role navigation, account menu, footer */
.brand-link { display:flex; align-items:center; text-decoration:none; }
.nav-section-label { margin:14px 12px 6px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#94a3b8; font-weight:800; }
.user-menu-wrap { margin-left:auto; position:relative; display:flex; align-items:center; z-index:50; }
.user-menu-button { display:flex; align-items:center; gap:8px; border:1px solid rgba(148,163,184,.35); background:#fff; color:#0f172a; border-radius:999px; padding:8px 11px; cursor:pointer; box-shadow:0 8px 22px rgba(15,23,42,.08); font-weight:700; }
.dark .user-menu-button, body.dark .user-menu-button { background:#0f172a; color:#e5e7eb; border-color:rgba(255,255,255,.16); }
.online-dot { width:10px; height:10px; border-radius:999px; background:#22c55e; box-shadow:0 0 0 3px rgba(34,197,94,.18); }
.user-role-pill { font-size:11px; padding:3px 7px; border-radius:999px; background:#e0f2fe; color:#0369a1; }
.user-menu-dropdown { position:absolute; right:0; top:calc(100% + 10px); width:240px; background:#fff; border:1px solid rgba(148,163,184,.25); border-radius:16px; box-shadow:0 20px 55px rgba(15,23,42,.22); overflow:hidden; }
.dark .user-menu-dropdown, body.dark .user-menu-dropdown { background:#0f172a; color:#e5e7eb; border-color:rgba(255,255,255,.12); }
.user-menu-dropdown.hidden { display:none; }
.user-menu-head { padding:14px 15px; border-bottom:1px solid rgba(148,163,184,.18); display:flex; flex-direction:column; gap:3px; }
.user-menu-head small { color:#64748b; font-size:12px; }
.user-menu-dropdown a, .user-menu-dropdown button { display:block; width:100%; text-align:left; border:0; background:transparent; color:inherit; padding:12px 15px; text-decoration:none; font:inherit; cursor:pointer; }
.user-menu-dropdown a:hover, .user-menu-dropdown button:hover { background:rgba(14,165,233,.09); }
.site-footer { margin:32px 0 0; padding:18px 4px 6px; border-top:1px solid rgba(148,163,184,.25); display:flex; justify-content:space-between; gap:16px; align-items:flex-start; color:#64748b; font-size:13px; }
.site-footer div:first-child { display:flex; flex-direction:column; gap:4px; }
.footer-links { display:flex; gap:12px; flex-wrap:wrap; }
.footer-links a { color:inherit; text-decoration:none; font-weight:700; }
.footer-links a:hover { text-decoration:underline; }
@media (max-width: 760px){
  .topbar { gap:12px; align-items:flex-start; }
  .user-menu-wrap { width:100%; justify-content:flex-end; }
  .user-menu-button { max-width:100%; }
  .user-menu-name { max-width:145px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .site-footer { flex-direction:column; padding-bottom:76px; }
}


/* Launch Pad */
.launch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:14px}
.launch-grid.small-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.launch-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;border:1px solid rgba(148,163,184,.25);background:rgba(15,23,42,.55);border-radius:16px;padding:18px;min-height:130px;transition:transform .15s ease, border-color .15s ease, background .15s ease}
.launch-card:hover{transform:translateY(-2px);border-color:rgba(59,130,246,.55);background:rgba(30,41,59,.75)}
.launch-card span{font-size:28px}.launch-card b{font-size:16px}.launch-card small{color:#94a3b8;line-height:1.35}.hidden{display:none!important}
@media(max-width:720px){.launch-grid,.launch-grid.small-grid{grid-template-columns:1fr}.launch-card{min-height:auto}}

/* Full-site functional polish: launch pad + communications */
.launch-hero.card{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  background:linear-gradient(135deg,#ffffff 0%,#eef7ff 100%);
  border-color:#dbeafe;
  margin-bottom:18px;
}
.launch-hero h1{margin:4px 0 8px;font-size:32px;line-height:1.05;color:#0f172a;}
.launch-hero p{max-width:720px;margin:0;color:#64748b;line-height:1.45;}
.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#2563eb;}
.launch-hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.launch-section{margin-top:18px;}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:10px;}
.section-heading h3{margin:0;color:#0f172a;font-size:18px;}
.section-heading p{margin:3px 0 0;color:#64748b;font-size:13px;}
.admin-heading h3{color:#7c2d12;}
.clean-launch-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
.clean-launch-card{
  background:#ffffff!important;
  color:#0f172a!important;
  border:1px solid #e2e8f0!important;
  box-shadow:0 8px 24px rgba(15,23,42,.06);
  min-height:142px;
  position:relative;
  overflow:hidden;
}
.clean-launch-card:hover{background:#f8fbff!important;border-color:#93c5fd!important;box-shadow:0 16px 36px rgba(37,99,235,.13);}
.clean-launch-card span{width:42px;height:42px;border-radius:13px;background:#eff6ff;display:flex;align-items:center;justify-content:center;font-size:24px;}
.clean-launch-card b{font-size:16px;color:#0f172a;}
.clean-launch-card small{color:#64748b!important;line-height:1.45;}
.clean-launch-card.admin-card span{background:#fff7ed;}
.comm-card{padding:18px;}
.comm-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.stat-chip{display:flex;align-items:center;gap:8px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:9px 12px;}
.stat-chip b{font-size:18px;color:#0f172a;}.stat-chip span{font-size:12px;color:#64748b;font-weight:700;}
.directory-filters{margin:6px 0 12px;}
.directory-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));}
.directory-user-card{min-height:78px;}
.user-main-line{display:flex;align-items:center;gap:10px;min-width:0;}
.presence-dot{width:11px;height:11px;border-radius:999px;display:inline-flex;flex:0 0 auto;background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.13);}
.presence-dot.online{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.16);}
.presence-dot.offline{background:#94a3b8;}
.text-link{font-weight:800;color:#2563eb;text-decoration:none;}
.comm-panel-head,.chat-header-row,.chat-room-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.comm-panel-head h3,.chat-header-row h3,.chat-room-heading h3{margin:0;}
.upgraded-chat-layout{grid-template-columns:minmax(260px,330px) minmax(0,1fr);}
.dm-user-button.selected{border-color:#2563eb;background:#eff6ff;}
.dm-compose{grid-template-columns:1fr auto;}
.upgraded-tabs .btn.secondary{background:#f8fafc;color:#0f172a;border:1px solid #e2e8f0;}
.chat-room-heading{margin-top:10px;}
.room-compose{grid-template-columns:minmax(0,1.2fr) minmax(160px,.8fr) auto auto;}
.file-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:10px 12px;cursor:pointer;font-weight:800;color:#334155;}
.file-pill input{display:none;}
.msg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.msg-role{font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;background:#f1f5f9;color:#64748b;padding:2px 6px;font-weight:900;}
.gif-wrap{margin-top:8px;}
.notice.bad{border-color:#fecaca;background:#fef2f2;color:#991b1b;}
.notice.good{border-color:#bbf7d0;background:#f0fdf4;color:#166534;}
@media(max-width:900px){
  .launch-hero{align-items:flex-start;flex-direction:column;}
  .launch-hero-actions{justify-content:flex-start;}
  .upgraded-chat-layout{grid-template-columns:1fr;}
  .room-compose{grid-template-columns:1fr;}
  .directory-list{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .launch-hero h1{font-size:26px;}
  .clean-launch-grid{grid-template-columns:1fr;}
  .section-heading{align-items:flex-start;flex-direction:column;}
  .comm-toolbar .btn{width:100%;justify-content:center;}
  .chat-box.room{height:430px;}
}

/* ===== Mobile + Navigation + User Menu Final Fix ===== */
/* Keep the left navigation icons visible. Earlier icon cleanup hid emoji-based icons by setting font-size:0 on nav links. */
.nav .team-nav-icon,
.nav-svg.team-nav-icon,
.sidebar .nav a .team-nav-icon,
.sidebar .nav button .team-nav-icon{
  font-size:20px !important;
  line-height:1 !important;
  width:22px !important;
  height:22px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:inherit !important;
  flex:0 0 22px !important;
}
.sidebar .nav a.active .team-nav-icon,
.sidebar .nav a:hover .team-nav-icon{
  filter:none;
}

/* Keep page shell/navigation usable on phones and tablets. */
html, body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}
.page-shell{
  width:100%;
  min-width:0;
}
.main,
.card,
.topbar,
.table-wrap,
.chat-layout,
.launch-grid,
.grid{
  min-width:0;
}
img, canvas, video, iframe{
  max-width:100%;
  height:auto;
}
.table-wrap{
  -webkit-overflow-scrolling:touch;
}

/* User menu must always appear above cards, tables, banners, chat boxes, and mobile nav. */
.topbar,
.main-header{
  position:relative !important;
  z-index:100000 !important;
  overflow:visible !important;
}
.user-menu-wrap{
  position:relative !important;
  z-index:100001 !important;
  overflow:visible !important;
}
.user-menu-button{
  position:relative !important;
  z-index:100002 !important;
}
.user-menu-dropdown{
  z-index:100003 !important;
  overflow:visible !important;
  pointer-events:auto !important;
}
.main > *,
.card,
.table-wrap,
.chat-box,
.launch-card,
.cookie-banner,
.pwa-install-banner,
.vila-install-card,
.mobile-bottom-nav{
  isolation:auto;
}

/* Better mobile topbar layout and account dropdown placement. */
@media (max-width: 820px){
  .page-shell{
    grid-template-columns:50px minmax(0,1fr) !important;
  }
  .sidebar{
    width:50px !important;
    min-width:50px !important;
    padding:8px 5px !important;
    z-index:9500 !important;
  }
  .nav{
    gap:7px !important;
  }
  .nav a,
  .nav button{
    width:38px !important;
    height:38px !important;
    border-radius:12px !important;
  }
  .brand .logo,
  .logo{
    width:34px;
    height:34px;
  }
  .main{
    padding:12px 12px 96px !important;
    width:100% !important;
    overflow:visible !important;
  }
  .topbar,
  .main-header{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:space-between !important;
    gap:10px !important;
    flex-wrap:wrap !important;
    overflow:visible !important;
  }
  .topbar > div:first-child,
  .main-header > div:first-child{
    flex:1 1 210px;
    min-width:0;
  }
  .topbar h1,
  .topbar h2,
  .main-header h1,
  .main-header h2{
    font-size:22px !important;
    line-height:1.15 !important;
    overflow-wrap:anywhere;
  }
  .user-menu-wrap{
    width:auto !important;
    margin-left:auto !important;
    margin-top:0 !important;
    justify-content:flex-end !important;
    flex:0 0 auto !important;
  }
  .user-menu-button{
    max-width:180px !important;
    padding:8px 10px !important;
  }
  .user-menu-name{
    max-width:82px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  .user-role-pill{
    display:none !important;
  }
  .user-menu-dropdown{
    position:fixed !important;
    top:62px !important;
    right:10px !important;
    left:auto !important;
    width:min(320px, calc(100vw - 20px)) !important;
    max-height:calc(100vh - 82px) !important;
    overflow:auto !important;
    border-radius:18px !important;
    box-shadow:0 28px 80px rgba(15,23,42,.34) !important;
  }
  .user-menu-dropdown a,
  .user-menu-dropdown button{
    min-height:44px !important;
    display:flex !important;
    align-items:center !important;
  }
  .grid.two,
  .grid.three,
  .grid.four,
  .clean-launch-grid,
  .launch-grid,
  .launch-grid.small-grid,
  .kpi-grid,
  .stats-grid,
  .calendar-grid{
    grid-template-columns:1fr !important;
  }
  .card,
  .hero,
  .launch-hero.card{
    border-radius:16px !important;
    padding:14px !important;
  }
  .hero,
  .launch-hero.card{
    flex-direction:column !important;
    align-items:flex-start !important;
  }
  .actions,
  .launch-hero-actions,
  .comm-toolbar,
  .chat-tabs{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
  }
  .actions .btn,
  .launch-hero-actions .btn,
  .comm-toolbar .btn,
  .chat-tabs .btn{
    width:100% !important;
    justify-content:center !important;
  }
  input, select, textarea, button{
    font-size:16px !important;
  }
}

/* Small phone refinements. */
@media (max-width: 520px){
  .page-shell{
    grid-template-columns:46px minmax(0,1fr) !important;
  }
  .sidebar{
    width:46px !important;
    min-width:46px !important;
    padding:7px 4px !important;
  }
  .nav a,
  .nav button{
    width:36px !important;
    height:36px !important;
  }
  .nav .team-nav-icon,
  .nav-svg.team-nav-icon{
    font-size:19px !important;
    width:20px !important;
    height:20px !important;
  }
  .main{
    padding:10px 10px 94px !important;
  }
  .user-menu-button{
    max-width:152px !important;
  }
  .user-menu-name{
    max-width:68px !important;
  }
  .tile,
  .clean-launch-card,
  .launch-card{
    min-height:auto !important;
    padding:15px !important;
  }
  .chat-box,
  .chat-box.room{
    height:380px !important;
  }
  .msg{
    max-width:96% !important;
  }
  .site-footer{
    padding-bottom:92px !important;
  }
}

/* Advanced chatroom and user management upgrade */
.advanced-chat-shell{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:stretch}.chat-room-sidebar{height:calc(100vh - 150px);min-height:620px;overflow:auto}.room-tabs{display:grid;gap:10px;margin:12px 0 18px}.room-tab{border:1px solid var(--border,#243041);background:var(--card-2,#111827);color:inherit;border-radius:14px;padding:12px;text-align:left;display:grid;grid-template-columns:34px 1fr;gap:4px 10px;cursor:pointer}.room-tab span{font-size:24px;grid-row:span 2}.room-tab small{opacity:.72}.room-tab.active{outline:2px solid var(--accent,#f59e0b);background:rgba(245,158,11,.12)}.room-member-panel h4{margin:8px 0}.room-members-list{display:grid;gap:8px}.chat-member{border:1px solid var(--border,#243041);border-radius:12px;padding:10px;display:grid;gap:4px}.chat-member.me{background:rgba(34,197,94,.08)}.chat-member span{font-weight:700}.chat-member small{opacity:.75}.chat-member .btn{justify-self:start}.pro-chat-main{min-height:620px;display:flex;flex-direction:column}.pro-room{flex:1;min-height:380px;max-height:calc(100vh - 370px);overflow:auto}.pro-compose{display:grid;grid-template-columns:minmax(160px,1fr) minmax(140px,260px) auto auto;gap:10px;align-items:center}.msg-head{display:flex;gap:8px;align-items:center;justify-content:space-between}.msg-role{font-size:11px;border:1px solid var(--border,#243041);border-radius:999px;padding:2px 8px;opacity:.8}.chat-photo{max-width:min(280px,100%);border-radius:12px;margin-top:8px;display:block}.reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.reactions button{border:1px solid var(--border,#243041);background:rgba(255,255,255,.04);border-radius:999px;padding:4px 8px;cursor:pointer}.file-pill{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:10px;border:1px dashed var(--border,#243041);padding:0 12px;cursor:pointer}.file-pill input{display:none}.table-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:320px}.btn.tiny{padding:6px 8px;font-size:12px;border-radius:8px}.user-row.selectable{width:100%;text-align:left}.chat-layout .chat-main{min-width:0}.chat-compose input:disabled,.chat-compose button:disabled,.chat-compose label:has(input:disabled){opacity:.55;cursor:not-allowed}@media(max-width:900px){.advanced-chat-shell{grid-template-columns:1fr}.chat-room-sidebar{height:auto;min-height:unset}.pro-room{max-height:55vh}.pro-compose{grid-template-columns:1fr}.table-actions{min-width:0}.chat-layout.upgraded-chat-layout{grid-template-columns:1fr}.chat-users{max-height:none}.chat-photo{max-width:100%}}

/* Instagram/Connecteam-style conversation inbox */
.conversation-page-main .topbar{align-items:center;}
.conversation-topbar .icon-btn{min-width:44px;height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:26px;text-decoration:none;}
.mobile-chat-back{display:none;border:0;background:transparent;color:inherit;font-size:42px;line-height:1;cursor:pointer;padding:0 10px 0 0;}
.conversation-hub-shell{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr) minmax(220px,280px);gap:16px;align-items:stretch;}
.conversation-list-panel,.conversation-detail-panel,.conversation-members-panel{min-height:calc(100vh - 150px);}
.conversation-search-row{display:flex;gap:10px;align-items:center;margin-bottom:14px;}
.conversation-search-row input{flex:1;border-radius:999px;padding:14px 18px;font-size:16px;background:var(--input-bg,#f1f5f9);border:1px solid var(--border,#e2e8f0);}
.conversation-icon-button{width:44px;height:44px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent,#0ea5e9);color:#fff;text-decoration:none;font-size:28px;font-weight:700;}
.conversation-filters{display:flex;gap:10px;margin-bottom:16px;overflow:auto;padding-bottom:4px;}
.conversation-filters button{border:0;border-radius:999px;padding:10px 18px;background:rgba(148,163,184,.16);font-weight:800;color:inherit;cursor:pointer;white-space:nowrap;}
.conversation-filters button.active{background:rgba(14,165,233,.16);color:#0284c7;}
.conversation-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;opacity:.6;margin:14px 0 8px;}
.conversation-list{display:grid;gap:6px;}
.conversation-item{width:100%;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;padding:12px 8px;border-radius:18px;cursor:pointer;}
.conversation-item:hover,.conversation-item.active{background:rgba(14,165,233,.10);}
.conversation-avatar{width:56px;height:56px;border-radius:999px;background:linear-gradient(135deg,#0ea5e9,#22d3ee);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:24px;flex:0 0 auto;}
.conversation-avatar.person{background:#111827;color:#fff;}
.conversation-avatar.mini{width:56px;height:56px;font-size:24px;}
.conversation-info{min-width:0;display:grid;gap:3px;}
.conversation-info b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.conversation-info small{font-size:14px;opacity:.62;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.conversation-meta{font-size:13px;opacity:.58;white-space:nowrap;align-self:start;margin-top:4px;}
.conversation-room-header{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border,#e2e8f0);margin-bottom:12px;}
.conversation-room-header h3{margin:0;font-size:22px;}
.conversation-info-button{margin-left:auto;width:40px;height:40px;border-radius:999px;border:1px solid var(--border,#e2e8f0);background:transparent;color:inherit;font-weight:900;cursor:pointer;}
.conversation-messages{height:calc(100vh - 410px);min-height:360px;background:#eef6ff;border-color:transparent;padding:16px;}
.conversation-messages .msg{max-width:78%;border-radius:18px;background:#fff;box-shadow:0 2px 12px rgba(15,23,42,.06);}
.conversation-messages .msg.mine{align-self:flex-end;background:#dbeafe;}
.conversation-emoji-row{padding:8px 0 2px;}
.conversation-actions-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0;}
.chat-action-pill{border:1px solid var(--border,#e2e8f0);background:rgba(255,255,255,.7);border-radius:14px;padding:10px 8px;text-align:center;font-weight:800;cursor:pointer;min-height:42px;display:flex;align-items:center;justify-content:center;}
.chat-action-pill input{display:none;}
.chat-action-pill.disabled{opacity:.5;pointer-events:none;}
.conversation-link-row{margin-bottom:10px;}
.conversation-link-row input{width:100%;}
.conversation-compose{grid-template-columns:minmax(0,1fr) auto;background:rgba(148,163,184,.12);border-radius:18px;padding:10px;}
.conversation-compose input{border:0;background:transparent;font-size:16px;padding:12px;}
.conversation-members-panel h3{margin-top:0;}
.hidden-on-dm{display:none;}
body.conversation-open .conversation-list-panel{display:block;}
@media(max-width:1100px){.conversation-hub-shell{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.conversation-members-panel{display:none}.conversation-members-panel.show-mobile-members{display:block;position:fixed;right:14px;top:90px;z-index:1200;max-width:min(320px,calc(100vw - 28px));min-height:auto;max-height:70vh;overflow:auto;}}
@media(max-width:760px){.conversation-hub-shell{grid-template-columns:1fr}.conversation-list-panel,.conversation-detail-panel{min-height:auto}.conversation-detail-panel{display:none}.conversation-open .conversation-list-panel{display:none}.conversation-open .conversation-detail-panel{display:block}.conversation-open .mobile-chat-back{display:inline-flex}.conversation-topbar{gap:6px}.conversation-topbar .sub{display:none}.conversation-messages{height:52vh;min-height:360px}.conversation-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation-item{grid-template-columns:54px minmax(0,1fr) auto}.conversation-avatar,.conversation-avatar.mini{width:52px;height:52px}.conversation-room-header h3{font-size:18px}.conversation-messages .msg{max-width:88%}.conversation-page-main{padding-bottom:88px;}}

/* Mobile bottom shortcut bar removed */
.mobile-bottom-nav{display:none!important;}
@media(max-width:760px){body{padding-bottom:0!important}.main{padding-bottom:24px!important}}
/* Admin chat read receipts */
.message-viewers{margin-top:8px;border-top:1px solid rgba(15,23,42,.08);padding-top:7px;font-size:12px;color:#64748b}
.message-viewers summary{cursor:pointer;font-weight:700;color:#334155;list-style:none}
.message-viewers summary::-webkit-details-marker{display:none}
.message-viewers div{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.viewer-pill{display:inline-flex;align-items:center;border-radius:999px;background:#eef2ff;color:#3730a3;padding:4px 8px;font-weight:700;font-size:11px}

/* Fast auth redirect: pages are no longer hidden behind a slow verifying overlay.
   Firebase/Firestore still controls data access and redirects logged-out users to the login page. */
body[data-auth="required"],
body[data-auth="admin"] {
  visibility: visible;
}
.legal-public-body {
  min-height: 100vh;
  background: #f8fafc;
  color: #0f172a;
}
.legal-public-wrap {
  max-width: 920px;
  margin: 0 auto;
  padding: 24px 16px 56px;
}
.legal-public-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.legal-public-brand {display:flex; align-items:center; gap:12px;}
.legal-public-brand img {width:52px; height:52px; object-fit:contain; border-radius:12px; background:#fff; padding:6px; box-shadow:0 8px 24px rgba(15,23,42,.08)}
.legal-public-actions {display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end;}
.legal-public-card {background:#fff; border:1px solid #e2e8f0; border-radius:20px; padding:24px; box-shadow:0 14px 40px rgba(15,23,42,.08)}
.legal-public-card h1 {margin-top:0;}
.legal-public-card h3 {margin-top:24px;}
.legal-public-actions .btn, .legal-public-actions button {text-decoration:none; border:0; border-radius:999px; padding:10px 14px; font-weight:800; cursor:pointer; background:#0f172a; color:#fff; display:inline-flex; align-items:center;}
.legal-public-actions .btn.secondary, .legal-public-actions button.secondary {background:#e2e8f0; color:#0f172a;}
@media(max-width:640px){.legal-public-header{align-items:flex-start; flex-direction:column}.legal-public-actions{justify-content:flex-start}.legal-public-card{padding:18px}}

/* Account Settings full feature upgrade */
.account-hero{display:flex;gap:18px;align-items:center;margin-bottom:18px;}
.account-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:112px;}
.account-avatar{width:96px;height:96px;border-radius:28px;object-fit:cover;background:#111827;border:1px solid rgba(148,163,184,.35);box-shadow:0 10px 28px rgba(15,23,42,.18);}
.avatar-upload{position:relative;overflow:hidden;}
.pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.status-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;background:#e2e8f0;color:#334155;white-space:nowrap;}
.status-pill.good{background:#dcfce7;color:#166534;}.status-pill.warn{background:#fef3c7;color:#92400e;}.status-pill.bad{background:#fee2e2;color:#991b1b;}
.account-tabs{display:flex;gap:8px;overflow:auto;padding:8px 0 14px;margin-bottom:4px;scrollbar-width:thin;}
.account-tabs button{border:1px solid rgba(148,163,184,.35);background:#fff;color:#334155;border-radius:999px;padding:10px 14px;font-weight:800;white-space:nowrap;cursor:pointer;}
.account-tabs button.active{background:#111827;color:#fff;border-color:#111827;}
.account-panel{display:none;margin-top:14px;}.account-panel.active{display:block;}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0;}
.check-grid label{background:#f8fafc;border:1px solid rgba(148,163,184,.25);border-radius:12px;padding:12px;display:flex;gap:8px;align-items:flex-start;}
.actions.wrap{flex-wrap:wrap;}.actions.bottom{align-items:end;display:flex;height:100%;}
.grid .span-2{grid-column:1/-1;}
.mini-list{display:grid;gap:10px;margin:12px 0;}.mini-item{border:1px solid rgba(148,163,184,.25);background:#fff;border-radius:14px;padding:12px;}.mini-item b{display:block}.mini-item small{display:block;color:#64748b;margin-top:2px}.mini-item p{margin:7px 0 0;color:#334155;word-break:break-word}.mini-item.bad{border-color:#fecaca;background:#fef2f2;color:#991b1b}
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0;}.summary-grid>div{background:#f8fafc;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:14px;text-align:center}.summary-grid b{display:block;font-size:26px}.summary-grid span{font-size:12px;color:#64748b;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.mini-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:10px}.calendar-cell{border-radius:12px;padding:9px;background:#f8fafc;border:1px solid rgba(148,163,184,.25);min-height:78px}.calendar-cell b,.calendar-cell span,.calendar-cell small{display:block}.calendar-cell small{font-size:11px;color:#64748b;margin-top:4px}.calendar-cell.good{border-color:#bbf7d0;background:#f0fdf4}.calendar-cell.warn{border-color:#fde68a;background:#fffbeb}.calendar-cell.bad{border-color:#fecaca;background:#fef2f2}
.faq-list details{background:#f8fafc;border:1px solid rgba(148,163,184,.25);border-radius:12px;margin:8px 0;padding:10px}.faq-list summary{font-weight:800;cursor:pointer}
@media(max-width:760px){.account-hero{align-items:flex-start}.account-avatar{width:74px;height:74px;border-radius:22px}.check-grid,.summary-grid{grid-template-columns:1fr}.mini-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.account-tabs{position:sticky;top:0;z-index:20;background:var(--page-bg,#f8fafc);padding:8px 0}.account-tabs button{padding:9px 12px;font-size:13px}.grid .span-2{grid-column:auto}}
@media(max-width:480px){.account-hero{flex-direction:column;text-align:left}.account-avatar-wrap{align-items:flex-start}.mini-calendar{grid-template-columns:1fr}.actions .btn,.actions a.btn{width:100%;justify-content:center}}

/* Biometric setup modal */
.vila-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(15, 23, 42, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.vila-modal.hidden { display: none !important; }
.vila-modal-card {
  width: min(420px, 100%);
  background: var(--card, #fff);
  color: var(--text, #111827);
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
  padding: 22px;
  border: 1px solid rgba(148, 163, 184, .28);
}
.vila-modal-card h2 { margin-top: 0; }
.vila-modal-card .actions { margin-top: 16px; }

/* Floating install popup window - avoids blocking Terms/Privacy footer links */
.vila-install-card.vila-install-floating-window{
  position:fixed !important;
  left:auto !important;
  right:18px !important;
  bottom:92px !important;
  top:auto !important;
  width:min(340px, calc(100vw - 24px)) !important;
  max-width:340px !important;
  z-index:99950 !important;
  display:none !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:10px !important;
  background:#0f172a !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:18px !important;
  padding:12px !important;
  box-shadow:0 20px 60px rgba(15,23,42,.38) !important;
  backdrop-filter:blur(12px) !important;
}
.vila-install-card.vila-install-floating-window.show{display:flex !important;}
.vila-install-card.vila-install-floating-window.dragging{opacity:.92;user-select:none;}
.vila-install-window-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;gap:8px;}
.vila-install-window-head strong{font-size:15px;line-height:1.2;}
.vila-install-drag,.vila-install-x{width:32px;height:32px;border:0;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.vila-install-drag{cursor:grab;touch-action:none;}
.vila-install-card.dragging .vila-install-drag{cursor:grabbing;}
.vila-install-x{font-size:22px;line-height:1;}
.vila-install-window-body span{display:block;color:#cbd5e1;font-size:13px;line-height:1.4;margin:0;}
.vila-install-floating-window .vila-install-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;}
.vila-install-floating-window .vila-install-actions button{width:100%;border:0;border-radius:999px;padding:10px 12px;font-weight:800;cursor:pointer;}
.vila-install-floating-window .vila-install-actions .install{background:#fff;color:#0f172a;}
.vila-install-floating-window .vila-install-actions .decline{background:rgba(255,255,255,.12);color:#fff;}
@media(max-width:820px){
  .vila-install-card.vila-install-floating-window{
    right:12px !important;
    bottom:76px !important;
    left:auto !important;
    width:min(320px, calc(100vw - 24px)) !important;
    max-width:320px !important;
  }
  .vila-install-window-head{grid-template-columns:30px 1fr 30px;}
}
@media(display-mode:standalone){.vila-install-card.vila-install-floating-window{display:none!important;}}


/* VILA UI fixes: directory badges, mobile admin nav, reaction picker, notifications */
.sidebar .nav{max-height:calc(100vh - 145px); overflow-y:auto; padding-right:6px; scrollbar-width:thin;}
.sidebar .nav a{min-height:42px;}
.nav-section-label{position:sticky; top:0; background:var(--sidebar-bg,#0f172a); z-index:2; padding:8px 10px; margin-top:8px;}
.user-role-badge,.directory-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;letter-spacing:.02em;border:1px solid rgba(148,163,184,.35);white-space:nowrap;}
.user-role-badge.admin,.directory-badge.admin{background:#fef3c7;color:#92400e;border-color:#f59e0b;}
.user-role-badge.da,.directory-badge.da{background:#dbeafe;color:#1d4ed8;border-color:#60a5fa;}
.directory-user-card{gap:12px;align-items:center;}
.directory-user-card .user-main-line{min-width:0;flex:1;}
.directory-user-card small{display:block;line-height:1.35;}
.reaction-wrap{position:relative;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;}
.reaction-toggle{border:1px solid rgba(148,163,184,.4);background:#fff;border-radius:999px;padding:5px 9px;font-size:12px;cursor:pointer;}
.reaction-menu{position:absolute;z-index:30;bottom:115%;left:0;display:none;background:#fff;border:1px solid rgba(148,163,184,.45);border-radius:999px;padding:6px;box-shadow:0 10px 30px rgba(15,23,42,.18);gap:4px;white-space:nowrap;}
.reaction-wrap.open .reaction-menu{display:flex;}
.reaction-menu button,.reaction-counts button{border:0;background:#f8fafc;border-radius:999px;padding:5px 8px;cursor:pointer;font-size:13px;}
.reaction-counts{display:inline-flex;gap:4px;flex-wrap:wrap;}
.msg-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px;}
.delete-message-btn{border:0;background:transparent;color:#b91c1c;font-size:12px;cursor:pointer;text-decoration:underline;padding:4px 2px;}
.deleted-message{font-style:italic;color:#64748b;background:rgba(148,163,184,.12);border-radius:10px;padding:9px 10px;margin:6px 0;}
.vila-notification-stack{position:fixed;right:16px;top:78px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:min(360px,calc(100vw - 32px));}
.vila-notification-card{text-align:left;border:1px solid rgba(59,130,246,.25);background:#fff;border-radius:16px;box-shadow:0 14px 35px rgba(15,23,42,.18);padding:12px 14px;cursor:pointer;color:#0f172a;}
.vila-notification-card b,.vila-notification-card span,.vila-notification-card small{display:block;}
.vila-notification-card span{margin-top:3px;font-size:13px;color:#334155;}
.vila-notification-card small{margin-top:6px;color:#2563eb;font-weight:700;}
.legal-register-box{border:1px solid rgba(148,163,184,.35);background:#f8fafc;border-radius:14px;padding:12px;margin:12px 0;}
.legal-register-box .checkline{align-items:flex-start;margin:8px 0;}
@media (max-width:900px){
  .page-shell{display:block;}
  .sidebar{position:relative;width:100%;height:auto;max-height:none;overflow:visible;border-right:0;border-bottom:1px solid rgba(148,163,184,.25);}
  .sidebar .brand{position:sticky;top:0;background:inherit;z-index:4;}
  .sidebar .nav{display:flex;overflow-x:auto;overflow-y:hidden;max-height:none;gap:8px;padding:8px 12px 12px;white-space:nowrap;scroll-snap-type:x proximity;}
  .sidebar .nav a{flex:0 0 auto;min-height:38px;scroll-snap-align:start;padding:8px 10px;}
  .sidebar .nav .nav-section-label{position:static;flex:0 0 auto;align-self:center;background:transparent;margin:0;padding:0 4px;color:#94a3b8;}
  .main{margin-left:0;width:100%;}
  .vila-notification-stack{top:12px;right:10px;left:10px;max-width:none;}
  .reaction-menu{left:auto;right:0;}
}

/* Chat moderation and deleted-message admin view */
.admin-deleted-visible { border:1px dashed #d97706; background:rgba(217,119,6,.08); }
.admin-deleted-visible .deleted-original { background:#fff7ed; border:1px solid #fed7aa; border-radius:12px; padding:10px; color:#7c2d12; }
.msg-role.warn { background:#fef3c7; color:#92400e; border:1px solid #f59e0b; }
.moderation-message-preview { max-width:360px; white-space:pre-wrap; word-break:break-word; max-height:140px; overflow:auto; background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:8px; }

/* NAV RESTORE FIX - keep full left navigation visible and consistent */
@media (min-width: 901px){
  .page-shell{
    display:grid !important;
    grid-template-columns:260px minmax(0,1fr) !important;
  }
  .layout{
    display:grid !important;
    grid-template-columns:260px minmax(0,1fr) !important;
  }
  .sidebar{
    width:260px !important;
    min-width:260px !important;
    max-width:260px !important;
    height:100vh !important;
    position:sticky !important;
    top:0 !important;
    overflow:hidden !important;
    padding:14px 12px !important;
  }
  .sidebar:hover{
    width:260px !important;
    min-width:260px !important;
    max-width:260px !important;
    box-shadow:none !important;
  }
  .sidebar .brand,
  .sidebar:hover .brand{
    justify-content:flex-start !important;
    gap:10px !important;
    padding-left:0 !important;
  }
  .sidebar .brand h1,
  .sidebar .brand span,
  .sidebar:hover .brand h1,
  .sidebar:hover .brand span{
    display:block !important;
  }
  .sidebar .nav,
  .nav{
    display:flex !important;
    flex-direction:column !important;
    gap:6px !important;
    max-height:calc(100vh - 118px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:6px 4px 18px 0 !important;
  }
  .sidebar .nav a,
  .sidebar .nav button,
  .nav a,
  .nav button,
  .sidebar:hover .nav a,
  .sidebar:hover .nav button{
    width:100% !important;
    min-height:42px !important;
    height:auto !important;
    justify-content:flex-start !important;
    gap:11px !important;
    padding:10px 12px !important;
    font-size:14px !important;
    text-align:left !important;
    white-space:normal !important;
  }
  .nav-label,
  .sidebar:hover .nav-label{
    display:inline !important;
    font-weight:800 !important;
    line-height:1.2 !important;
  }
  .nav-svg,
  .team-nav-icon{
    width:22px !important;
    min-width:22px !important;
    height:22px !important;
    font-size:18px !important;
  }
  .nav-section-label{
    position:static !important;
    background:transparent !important;
    margin:14px 8px 6px !important;
    padding:4px 2px !important;
  }
}

@media (max-width: 900px){
  .page-shell,
  .layout{
    display:block !important;
  }
  .sidebar{
    position:sticky !important;
    top:0 !important;
    z-index:9500 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    max-height:none !important;
    padding:8px 10px !important;
    overflow:visible !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(148,163,184,.25) !important;
  }
  .sidebar .brand{
    display:flex !important;
    justify-content:flex-start !important;
    gap:10px !important;
    margin-bottom:6px !important;
  }
  .sidebar .brand h1,
  .sidebar .brand span{
    display:block !important;
  }
  .sidebar .nav,
  .nav{
    display:flex !important;
    flex-direction:row !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    max-height:none !important;
    gap:8px !important;
    padding:6px 2px 10px !important;
    white-space:nowrap !important;
    scrollbar-width:thin !important;
  }
  .sidebar .nav a,
  .sidebar .nav button,
  .nav a,
  .nav button{
    flex:0 0 auto !important;
    width:auto !important;
    min-width:max-content !important;
    height:40px !important;
    min-height:40px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    padding:8px 11px !important;
    font-size:13px !important;
    border-radius:13px !important;
  }
  .nav-label{
    display:inline !important;
    font-weight:800 !important;
  }
  .nav-svg,
  .team-nav-icon{
    width:18px !important;
    height:18px !important;
    font-size:16px !important;
  }
  .sidebar .nav .nav-section-label{
    flex:0 0 auto !important;
    position:static !important;
    align-self:center !important;
    background:transparent !important;
    margin:0 !important;
    padding:0 4px !important;
  }
  .main{
    margin-left:0 !important;
    width:100% !important;
    padding:14px 12px 96px !important;
  }
}

/* Pending approval / account status notices */
.auth-status-card{border-radius:18px;padding:18px;border:1px solid rgba(15,23,42,.12);background:rgba(255,255,255,.88);box-shadow:0 12px 32px rgba(15,23,42,.10)}
.auth-status-card h3{margin:0 0 8px;font-size:1.1rem;color:#0f172a}
.auth-status-card p{margin:0;color:#334155;line-height:1.5}
.auth-status-actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}

/* Role management + celebration feed */
.actions.wrap{flex-wrap:wrap;}
#roleUserSelect{min-height:44px;}
.feed-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.celebration-feed{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;}
.celebration-feed.compact{grid-template-columns:1fr;}
.celebration-card{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:rgba(255,255,255,.04);}
.celebration-card.soon{border-color:rgba(245,158,11,.55);background:rgba(245,158,11,.08);}
.celebration-icon{font-size:28px;width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.08);flex:0 0 auto;}
.celebration-card b{display:block;margin-bottom:3px;}
.celebration-card small{display:block;color:var(--muted,#64748b);margin-bottom:8px;}
@media(max-width:720px){.feed-hero{display:block}.feed-hero .actions{margin-top:12px}.celebration-feed{grid-template-columns:1fr}}

/* VILA messaging/directory platform upgrade */
.gif-modal{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:18px}.gif-modal.hidden{display:none}.gif-modal-card{width:min(760px,96vw);max-height:86vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.28);padding:18px}.gif-modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.gif-modal-head h3{margin:0}.gif-modal-head button{border:0;background:#111;color:#fff;border-radius:999px;width:34px;height:34px;font-size:22px}.gif-search-row{display:flex;gap:8px;margin:14px 0}.gif-search-row input{flex:1}.gif-chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.gif-chip-row button{border:1px solid #ddd;border-radius:999px;background:#f7f7f7;padding:8px 12px}.gif-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:10px}.gif-tile{border:1px solid #e5e5e5;background:#fafafa;border-radius:12px;padding:6px;text-align:left;cursor:pointer}.gif-tile img{width:100%;height:105px;object-fit:cover;border-radius:9px;display:block}.gif-tile span{font-size:12px;display:block;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.message-search-row{display:flex;gap:8px;margin:8px 0}.message-search-row input{flex:1}.pinned-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:#fff8df;border:1px solid #f4db8a;border-radius:14px;padding:10px;margin:8px 0}.pinned-bar b{margin-right:4px}.pinned-bar button{border:1px solid #ebd27c;background:#fff;border-radius:999px;padding:6px 10px;cursor:pointer}.pinned-msg{border-left:4px solid #e9b600!important}.msg-role.pin{background:#fff1b8;color:#664d00}.msg-role.warn{background:#ffe2e2;color:#8a1f1f}.edited-label{font-size:11px;color:#777;margin-left:6px}.typing-indicator{min-height:20px;font-size:12px;color:#666;padding:2px 4px}.unread-badge{background:#d71920;color:#fff;border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.enhanced-profile-card small{display:block}.ack-btn{margin-top:6px}.reaction-menu{z-index:20}.directory-badge.da{background:#eef6ff;color:#0b5394}.directory-badge.admin{background:#fff1cc;color:#7a4f00}
@media(max-width:700px){.gif-modal{align-items:flex-end;padding:8px}.gif-modal-card{max-height:88vh;border-radius:18px 18px 8px 8px}.gif-results{grid-template-columns:repeat(2,1fr)}.message-search-row{flex-direction:column}}

/* VILA Ops @mentions / upgraded chat visibility */
.mention-picker{position:fixed;z-index:99999;background:#fff;border:1px solid rgba(15,23,42,.12);box-shadow:0 18px 48px rgba(15,23,42,.22);border-radius:16px;padding:8px;max-height:220px;overflow:auto}.mention-picker.hidden{display:none}.mention-picker button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;border:0;background:transparent;border-radius:12px;text-align:left;cursor:pointer}.mention-picker button:hover{background:#f1f5f9}.mention-picker small{color:#64748b}.mention-chip{display:inline-block;background:#e0f2fe;color:#075985;border-radius:999px;padding:1px 7px;font-weight:700}.mention-toast-wrap{position:fixed;right:18px;top:78px;z-index:99998;display:grid;gap:10px;max-width:min(360px,calc(100vw - 36px))}.mention-toast{position:relative;background:#0f172a;color:#fff;border-radius:18px;padding:14px 16px;box-shadow:0 20px 50px rgba(15,23,42,.35)}.mention-toast p{margin:.35rem 0 .75rem;color:#dbeafe}.mention-toast a{color:#fff}.mention-toast-close{position:absolute;right:8px;top:6px;border:0;background:transparent;color:#fff;font-size:20px;cursor:pointer}.conversation-actions-grid #conversationGifBtn,.chat-compose #dmGifPickerBtn{font-weight:800;border:2px solid rgba(37,99,235,.25)}.chat-upgrade-note{font-size:.85rem;color:#475569;margin-top:6px}.reaction-menu{position:relative}.reaction-popover{display:none;position:absolute;z-index:20;background:white;border:1px solid rgba(15,23,42,.12);box-shadow:0 12px 30px rgba(15,23,42,.18);padding:6px;border-radius:999px;gap:4px}.reaction-menu.open .reaction-popover{display:flex}
@media(max-width:700px){.mention-toast-wrap{left:12px;right:12px;top:70px}.mention-picker{left:12px!important;width:calc(100vw - 24px)!important}}


/* UI Theme, Notification Bell, QR Studio, Chat image/reaction fixes */
.dark-mode body{background:#07111f!important;color:#e5e7eb!important}.dark-mode .main,.dark-mode .layout,.dark-mode .page-shell{background:#07111f!important;color:#e5e7eb!important}.dark-mode .card,.dark-mode .launch-card,.dark-mode .clean-launch-card,.dark-mode .conversation-detail-panel,.dark-mode .conversation-list-panel,.dark-mode .conversation-members-panel,.dark-mode .message-search-row,.dark-mode .topbar,.dark-mode .sidebar,.dark-mode .mini-item,.dark-mode .user-row,.dark-mode .conversation-item,.dark-mode .saved-qr-item,.dark-mode .advanced-qr-preview,.dark-mode .status-card,.dark-mode .admin-queue-row,.dark-mode .policy-card,.dark-mode .ticket-card{background:#111827!important;color:#e5e7eb!important;border-color:rgba(255,255,255,.14)!important}.dark-mode .sub,.dark-mode small,.dark-mode .muted,.dark-mode .site-footer span,.dark-mode .conversation-item small{color:#9ca3af!important}.dark-mode h1,.dark-mode h2,.dark-mode h3,.dark-mode h4,.dark-mode b,.dark-mode label,.dark-mode p,.dark-mode a:not(.btn){color:#e5e7eb}.dark-mode input,.dark-mode textarea,.dark-mode select{background:#0b1220!important;color:#f8fafc!important;border-color:rgba(255,255,255,.20)!important}.dark-mode input::placeholder,.dark-mode textarea::placeholder{color:#94a3b8!important}.dark-mode .notice{background:#0b1220!important;color:#e5e7eb!important;border-color:rgba(255,255,255,.14)!important}.dark-mode .btn.secondary{background:#1f2937;color:#f8fafc;border-color:rgba(255,255,255,.16)}.dark-mode table,.dark-mode th,.dark-mode td{background:#111827!important;color:#e5e7eb!important;border-color:rgba(255,255,255,.12)!important}.dark-mode .qr-box,.dark-mode .preview,.dark-mode .availability-box{background:#0b1220!important;color:#e5e7eb!important;border-color:rgba(255,255,255,.14)!important}.user-avatar-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;overflow:visible;flex:0 0 auto}.user-avatar-wrap.large{width:52px;height:52px}.user-avatar-img,.user-avatar-fallback{width:100%;height:100%;border-radius:999px;object-fit:cover;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;font-weight:900}.enhanced-user-menu{gap:10px}.enhanced-head{display:flex!important;gap:12px;align-items:center!important}.enhanced-head em{display:block;font-style:normal;color:#16a34a;font-size:12px;font-weight:800}.user-avatar-wrap .online-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid #fff;width:11px;height:11px}.notification-bell-wrap{position:relative;margin-left:auto}.notification-bell-btn{position:relative;border:1px solid rgba(148,163,184,.35);background:#fff;border-radius:14px;width:42px;height:42px;cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,.08)}.notification-bell-btn span{position:absolute;top:-6px;right:-6px;background:#ef4444;color:#fff;border-radius:999px;min-width:20px;height:20px;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:900}.notification-bell-panel{position:absolute;right:0;top:50px;width:min(360px,calc(100vw - 28px));background:#fff;border:1px solid rgba(148,163,184,.3);border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.24);z-index:9999;padding:12px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.notification-mini{display:block;padding:10px;border-radius:12px;background:#f8fafc;text-decoration:none;margin:6px 0;color:#0f172a}.notification-mini small{display:block;color:#64748b}.empty-state.compact{padding:12px}.dark-mode .notification-bell-btn,.dark-mode .notification-bell-panel,.dark-mode .notification-mini{background:#111827;color:#e5e7eb;border-color:rgba(255,255,255,.14)}.advanced-qr-preview{display:flex;justify-content:center;align-items:center;padding:18px;border-radius:18px;background:#f8fafc;border:1px solid rgba(148,163,184,.22);overflow:auto}.saved-qr-list{display:grid;gap:12px}.saved-qr-item{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;border:1px solid rgba(148,163,184,.22);border-radius:16px;padding:12px;background:#fff}.saved-qr-item img{width:86px;height:86px;object-fit:contain;border:1px solid rgba(148,163,184,.2);border-radius:12px}.reaction-upgraded{position:relative;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.reaction-upgraded .reaction-menu,.reaction-wrap .reaction-menu{display:none;position:absolute;left:0;bottom:calc(100% + 6px);z-index:50;background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:999px;padding:6px;box-shadow:0 16px 40px rgba(15,23,42,.20);gap:4px}.reaction-upgraded.open .reaction-menu,.reaction-wrap.open .reaction-menu{display:flex}.reaction-toggle{border:1px solid rgba(148,163,184,.35);background:#f8fafc;border-radius:999px;padding:6px 10px;cursor:pointer;font-weight:800;font-size:12px}.reaction-menu button{border:0;background:transparent;border-radius:999px;padding:6px 8px;cursor:pointer}.reaction-menu button:hover{background:#eef2ff}.dark-mode .reaction-menu{background:#111827;border-color:rgba(255,255,255,.18)}.dark-mode .reaction-toggle{background:#1f2937;color:#fff}.chat-photo{cursor:zoom-in;max-width:min(320px,80vw);border-radius:14px}.chat-image-lightbox{position:fixed;inset:0;z-index:100000;background:rgba(2,6,23,.88);display:flex;align-items:center;justify-content:center;overflow:auto;padding:60px 22px}.chat-image-lightbox.hidden{display:none}.chat-image-lightbox img{max-width:92vw;max-height:80vh;object-fit:contain;transition:transform .15s ease;transform-origin:center center}.lightbox-close{position:fixed;right:20px;top:18px;border:0;background:#fff;color:#0f172a;border-radius:999px;width:42px;height:42px;font-size:28px;cursor:pointer}.lightbox-tools{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:8px;background:rgba(255,255,255,.12);padding:8px;border-radius:999px}.lightbox-tools button{border:0;border-radius:999px;padding:9px 12px;background:#fff;color:#0f172a;font-weight:800}@media(max-width:720px){.saved-qr-item{grid-template-columns:70px 1fr}.saved-qr-item .btn{grid-column:1/-1}.notification-bell-panel{right:-54px}.chat-image-lightbox{padding:60px 10px}.lightbox-tools{width:calc(100vw - 28px);justify-content:center}}

/* AI Assistant + Chatrooms cleanup */
.ai-fab{position:fixed;right:18px;bottom:18px;z-index:9999;border:0;border-radius:999px;padding:12px 15px;background:linear-gradient(135deg,#0f172a,#2563eb,#06b6d4);color:#fff;display:flex;gap:7px;align-items:center;box-shadow:0 18px 50px rgba(15,23,42,.35);cursor:pointer;font-weight:900}.ai-modal{position:fixed;inset:0;background:rgba(2,6,23,.65);z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px}.ai-modal-panel{width:min(980px,100%);max-height:92vh;overflow:hidden;border-radius:24px;background:var(--card,#fff);color:var(--text,#0f172a);border:1px solid rgba(148,163,184,.25);display:flex;flex-direction:column}.ai-modal-head{display:flex;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid rgba(148,163,184,.22);background:linear-gradient(135deg,rgba(37,99,235,.14),rgba(6,182,212,.10))}.ai-modal-head b{display:block;font-size:20px}.ai-modal-head span{display:block;color:var(--muted,#64748b);font-size:13px}.ai-modal-head button{border:0;background:rgba(148,163,184,.16);border-radius:12px;width:40px;height:40px;font-size:26px;color:inherit}.ai-tabs{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(148,163,184,.18);overflow:auto}.ai-tabs button{border:1px solid rgba(148,163,184,.25);background:rgba(148,163,184,.08);border-radius:999px;padding:8px 13px;color:inherit}.ai-tabs button.active{background:#2563eb;color:#fff}.ai-pane{padding:16px;overflow:auto}.ai-chat{height:340px;overflow:auto;border:1px solid rgba(148,163,184,.22);border-radius:18px;padding:12px;background:rgba(148,163,184,.08)}.ai-bubble{max-width:86%;padding:12px 14px;border-radius:16px;margin:8px 0;line-height:1.45}.ai-bubble.bot{background:var(--card,#fff);border:1px solid rgba(148,163,184,.2)}.ai-bubble.user{margin-left:auto;background:#2563eb;color:#fff}.ai-input-row{display:flex;gap:8px;margin-top:10px}.ai-input-row input,.ai-wide-input,.ai-admin-tools textarea{width:100%;border:1px solid rgba(148,163,184,.32);border-radius:14px;padding:12px;background:var(--input-bg,#fff);color:inherit}.ai-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.ai-chips button,.ai-form-helper{border:1px solid rgba(37,99,235,.25);background:rgba(37,99,235,.09);color:#2563eb;border-radius:999px;padding:7px 10px;font-weight:800}.ai-results{display:grid;gap:10px;margin-top:12px}.ai-result-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid rgba(148,163,184,.24);border-radius:16px;background:rgba(148,163,184,.08);color:inherit;text-decoration:none}.ai-result-card span,.ai-empty{color:var(--muted,#64748b)}.ai-center-hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#0f172a,#1d4ed8,#06b6d4);color:#fff}.ai-center-orb{font-size:48px}.ai-review{margin-top:10px;padding:12px;border-radius:14px;background:rgba(148,163,184,.08)}.chat-upgrade-note,#conversationGifBtn,#conversationLocationBtn,#conversationShortcutBtn,#conversationLinkRow,#dmGif{display:none!important}.conversation-actions-grid{grid-template-columns:1fr!important}.conversation-compose input#conversationText{min-height:44px;background:var(--input-bg,#fff)!important;color:var(--text,#0f172a)!important}.reaction-toggle.emoji-icon{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.35);background:rgba(148,163,184,.12);font-size:18px;padding:0}.reaction-wrap{position:relative;display:inline-flex;gap:6px;align-items:center}.reaction-menu.emoji-popup,.reaction-wrap .reaction-menu{display:none;position:absolute;bottom:38px;left:0;z-index:50;background:var(--card,#fff);border:1px solid rgba(148,163,184,.28);box-shadow:0 18px 45px rgba(15,23,42,.2);border-radius:16px;padding:8px;gap:6px;white-space:nowrap}.reaction-wrap.open .reaction-menu{display:flex!important}.reaction-menu button{border:0;background:transparent;font-size:20px;padding:6px;border-radius:10px;cursor:pointer}.reaction-menu button:hover{background:rgba(37,99,235,.12)}.msg{position:relative;padding-left:48px!important}.msg.mine{padding-left:14px!important;padding-right:48px!important}.msg-avatar,.msg-avatar-fallback{position:absolute;left:10px;top:12px;width:34px;height:34px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#2563eb,#06b6d4);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.msg.mine .msg-avatar,.msg.mine .msg-avatar-fallback{left:auto;right:10px}.msg-avatar img{width:100%;height:100%;object-fit:cover}.chat-photo{cursor:zoom-in}.user-avatar-img{object-fit:cover}.hidden{display:none!important}.dark-mode .ai-modal-panel,.dark-mode .ai-bubble.bot,.dark-mode .reaction-menu{background:#111827!important;color:#e5e7eb!important;border-color:#334155!important}.dark-mode .ai-input-row input,.dark-mode .ai-wide-input,.dark-mode .ai-admin-tools textarea,.dark-mode .conversation-compose input#conversationText{background:#0b1220!important;color:#e5e7eb!important;border-color:#334155!important}@media(max-width:720px){.ai-modal{padding:0}.ai-modal-panel{height:100vh;max-height:100vh;border-radius:0}.ai-chat{height:calc(100vh - 340px)}.ai-input-row{flex-direction:column}.msg{padding-left:44px!important}.msg.mine{padding-right:44px!important}.ai-fab{right:14px;bottom:14px}}

/* California compliance / accessibility layer */
.skip-link{position:absolute;left:12px;top:-80px;z-index:100000;background:#fff;color:#0f172a;border:3px solid #2563eb;border-radius:12px;padding:10px 14px;font-weight:800;text-decoration:none}.skip-link:focus{top:12px}*:focus-visible{outline:3px solid #38bdf8!important;outline-offset:3px!important}.reduce-motion *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.large-text{font-size:112%}.high-contrast body,.high-contrast .card,.high-contrast input,.high-contrast textarea,.high-contrast select{filter:contrast(1.15)}.legal-public-body{background:#f8fafc;color:#0f172a}.legal-public-wrap{max-width:1050px;margin:0 auto;padding:22px}.legal-public-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.legal-public-brand{display:flex;align-items:center;gap:12px}.legal-public-brand img{width:58px;height:58px;border-radius:16px;background:#fff;object-fit:contain;box-shadow:0 10px 28px rgba(15,23,42,.1)}.legal-public-brand h2{margin:0}.legal-public-actions{display:flex;gap:10px;flex-wrap:wrap}.legal-public-card{background:#fff;border:1px solid rgba(148,163,184,.25);border-radius:24px;box-shadow:0 18px 50px rgba(15,23,42,.08);padding:24px}.compliance-legal h1{margin-top:0}.compliance-legal h3{margin-top:24px}.compliance-legal li{margin:8px 0}.cookie-consent-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:99999;background:#0f172a;color:#fff;border:1px solid rgba(255,255,255,.16);border-radius:22px;box-shadow:0 25px 70px rgba(2,6,23,.45);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.cookie-consent-banner b,.cookie-consent-banner span,.cookie-consent-banner small{display:block}.cookie-consent-banner span{color:#cbd5e1}.cookie-consent-banner small{color:#93c5fd;margin-top:4px}.compliance-modal{position:fixed;inset:0;background:rgba(2,6,23,.62);z-index:100000;display:grid;place-items:center;padding:16px}.compliance-modal-card{width:min(620px,100%);background:#fff;color:#0f172a;border-radius:24px;box-shadow:0 30px 90px rgba(2,6,23,.35);padding:18px;border:1px solid rgba(148,163,184,.28)}.compliance-modal-card label{display:block;margin:12px 0}.accessibility-quick-btn{position:fixed;left:18px;bottom:18px;z-index:9998;width:48px;height:48px;border-radius:999px;border:0;background:#0f172a;color:#fff;box-shadow:0 16px 35px rgba(15,23,42,.3);font-size:22px}.accessibility-quick-panel{position:fixed;left:18px;bottom:76px;z-index:9998;width:min(320px,calc(100vw - 36px));background:#fff;color:#0f172a;border:1px solid rgba(148,163,184,.3);border-radius:20px;box-shadow:0 20px 60px rgba(2,6,23,.28);padding:14px}.accessibility-quick-panel label,.accessibility-quick-panel a{display:block;margin:10px 0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head button{border:0;background:rgba(148,163,184,.15);border-radius:12px;width:34px;height:34px;font-size:22px}.compliance-account-panel textarea,.compliance-account-panel input,.compliance-account-panel select{max-width:100%}.request-card{border:1px solid rgba(148,163,184,.24);background:#fff;border-radius:18px;padding:14px;margin:12px 0}.request-card .row.between{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.status-grid.compliance-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:16px}.tracking-list{display:grid;gap:10px}.tracking-list>div{padding:12px;border:1px solid rgba(148,163,184,.22);border-radius:16px;background:#f8fafc}.tracking-list b,.tracking-list span{display:block}.tracking-list span{color:#64748b}.vila-toast-lite{position:fixed;right:18px;bottom:86px;z-index:100001;background:#0f172a;color:#fff;border-radius:16px;box-shadow:0 20px 55px rgba(2,6,23,.35);padding:12px 14px;display:grid;gap:4px;max-width:320px}.btn.danger,.button.danger{background:#dc2626;color:#fff}.btn.tiny{padding:7px 10px;font-size:.86rem}.notice.good,.status-pill.good{background:#dcfce7;color:#166534;border-color:#bbf7d0}.notice.bad,.status-pill.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca}@media(max-width:760px){.legal-public-header,.cookie-consent-banner{display:block}.legal-public-actions,.cookie-consent-banner .actions{margin-top:12px}.request-card .row.between{display:block}}
html[data-theme="dark"] .legal-public-body,body.dark.legal-public-body{background:#020617;color:#e5e7eb}html[data-theme="dark"] .legal-public-card,html[data-theme="dark"] .compliance-modal-card,html[data-theme="dark"] .accessibility-quick-panel,html[data-theme="dark"] .request-card,body.dark .legal-public-card,body.dark .compliance-modal-card,body.dark .accessibility-quick-panel,body.dark .request-card{background:#111827;color:#e5e7eb;border-color:rgba(255,255,255,.14)}html[data-theme="dark"] .tracking-list>div,body.dark .tracking-list>div{background:#0b1220;border-color:rgba(255,255,255,.14)}

/* Employee Portal Consent Gate */
/* Polished internal legal pages */
.legal-polished-wrap{max-width:1280px;margin:0 auto;padding:22px}.legal-polished-header{border:1px solid rgba(148,163,184,.22);border-radius:22px;background:rgba(255,255,255,.92);box-shadow:0 14px 38px rgba(15,23,42,.08);padding:16px 18px}.legal-polished-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;margin-top:20px}.legal-toc{position:sticky;top:18px;align-self:start;background:#fff;border:1px solid rgba(148,163,184,.22);border-radius:20px;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.06);max-height:calc(100vh - 36px);overflow:auto}.legal-toc b{display:block;margin-bottom:8px;color:#0f172a}.legal-toc a{display:block;text-decoration:none;color:#334155;border-radius:10px;padding:8px 9px;font-size:.92rem}.legal-toc a:hover{background:#eef6ff;color:#0f4a8a}.legal-toc hr{border:0;border-top:1px solid rgba(148,163,184,.25);margin:10px 0}.legal-polished-card{padding:34px;border-radius:24px;box-shadow:0 18px 50px rgba(15,23,42,.08);border:1px solid rgba(148,163,184,.2)}.legal-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:#2563eb;margin-bottom:8px}.legal-effective{display:inline-flex;flex-wrap:wrap;gap:5px;background:#f1f5f9;border:1px solid rgba(148,163,184,.24);border-radius:999px;padding:7px 12px;color:#475569;font-size:.88rem}.legal-intro{font-size:1.08rem;line-height:1.7;color:#334155}.legal-notice-box{border-left:4px solid #2563eb;background:#eff6ff;border-radius:14px;padding:14px 16px;color:#1e3a8a;margin:18px 0 24px}.legal-polished-card section{padding:22px 0;border-top:1px solid rgba(148,163,184,.18)}.legal-polished-card section:first-of-type{border-top:0}.legal-polished-card h2{font-size:1.3rem;margin:0 0 10px;color:#0f172a}.legal-polished-card h3{font-size:1rem;margin:14px 0 8px;color:#1e293b}.legal-polished-card p,.legal-polished-card li{line-height:1.7}.legal-grid{display:grid;gap:14px}.legal-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.legal-grid>div{border:1px solid rgba(148,163,184,.18);background:#f8fafc;border-radius:18px;padding:14px}.legal-table{display:grid;gap:10px}.legal-table>div{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:start;border:1px solid rgba(148,163,184,.2);border-radius:16px;background:#fff;padding:14px}.legal-table b{color:#0f172a}.legal-table span{color:#475569;line-height:1.6}.legal-cta-strip{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:26px;padding:18px;border-radius:18px;background:linear-gradient(135deg,#0f2f57,#2563eb);color:white}.legal-cta-strip span{display:block;color:#dbeafe;margin-top:3px}.legal-form-card{margin:12px 0;border-radius:18px}.legal-public-brand img{object-fit:contain}.skip-link{position:absolute;left:-999px;top:10px;background:#fff;color:#0f172a;padding:10px 14px;border-radius:10px;z-index:9999}.skip-link:focus{left:10px}.legal-public-body .btn.secondary,.legal-public-body button.secondary{background:#eef2ff;color:#1e3a8a;border:1px solid rgba(37,99,235,.18)}
@media(max-width:900px){.legal-polished-wrap{padding:12px}.legal-polished-layout{grid-template-columns:1fr}.legal-toc{position:static;max-height:none}.legal-public-header,.legal-polished-header{align-items:flex-start;gap:14px}.legal-public-actions{display:flex;flex-wrap:wrap}.legal-polished-card{padding:22px}.legal-grid.two{grid-template-columns:1fr}.legal-table>div{grid-template-columns:1fr}.legal-cta-strip{flex-direction:column;align-items:flex-start}}
html.vila-dark .legal-polished-header,html.vila-dark .legal-toc,html.vila-dark .legal-polished-card,body.dark .legal-polished-header,body.dark .legal-toc,body.dark .legal-polished-card{background:#0f172a;color:#e5e7eb;border-color:rgba(148,163,184,.25)}html.vila-dark .legal-toc b,html.vila-dark .legal-polished-card h2,html.vila-dark .legal-polished-card h3,html.vila-dark .legal-table b,body.dark .legal-toc b,body.dark .legal-polished-card h2,body.dark .legal-polished-card h3,body.dark .legal-table b{color:#f8fafc}html.vila-dark .legal-toc a,html.vila-dark .legal-intro,html.vila-dark .legal-table span,body.dark .legal-toc a,body.dark .legal-intro,body.dark .legal-table span{color:#cbd5e1}html.vila-dark .legal-grid>div,html.vila-dark .legal-table>div,html.vila-dark .legal-effective,body.dark .legal-grid>div,body.dark .legal-table>div,body.dark .legal-effective{background:#111827;border-color:rgba(148,163,184,.22);color:#e5e7eb}html.vila-dark .legal-notice-box,body.dark .legal-notice-box{background:#0b2a4a;color:#dbeafe}

/* VILA Ops full redesign polish */
:root{--vila-bg:#f6f8fc;--vila-card:#ffffff;--vila-ink:#0f172a;--vila-muted:#64748b;--vila-line:#dbe4ef;--vila-primary:#2563eb;--vila-cyan:#06b6d4;--vila-success:#16a34a;--vila-warn:#f59e0b;--vila-danger:#dc2626;--vila-shadow:0 18px 45px rgba(15,23,42,.08)}
html.vila-polished body{background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 32%),var(--vila-bg)}
html.vila-polished .main{opacity:0;transform:translateY(8px);transition:opacity .32s ease,transform .32s ease}html.vila-page-ready .main{opacity:1;transform:none}
.skip-link{position:fixed;top:-100px;left:16px;z-index:100000;background:#fff;color:#0f172a;border:2px solid var(--vila-primary);border-radius:12px;padding:10px 14px}.skip-link:focus{top:12px}
.card,.launch-card,.conversation-list-panel,.conversation-detail-panel,.conversation-members-panel{border:1px solid rgba(148,163,184,.24)!important;box-shadow:var(--vila-shadow);border-radius:22px!important}
.launch-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.launch-card:hover{transform:translateY(-3px);box-shadow:0 24px 60px rgba(15,23,42,.13);border-color:rgba(37,99,235,.35)!important}.launch-card span{filter:drop-shadow(0 6px 12px rgba(37,99,235,.22))}
.vila-welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;border-radius:28px;margin:16px 0;background:linear-gradient(135deg,#0f172a,#1d4ed8,#0891b2);color:#fff;box-shadow:0 28px 70px rgba(30,64,175,.24);overflow:hidden;position:relative}.vila-welcome-banner:after{content:"";position:absolute;right:-50px;top:-60px;width:180px;height:180px;background:rgba(255,255,255,.14);border-radius:50%}.vila-welcome-banner h2{font-size:clamp(26px,4vw,42px);margin:.2rem 0}.vila-welcome-banner span{opacity:.86;font-weight:700}.vila-welcome-banner p{opacity:.93}.welcome-actions{display:flex;gap:10px;flex-wrap:wrap;z-index:1}.vila-status-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0;padding:11px 14px;border:1px solid rgba(37,99,235,.22);background:linear-gradient(90deg,rgba(37,99,235,.1),rgba(6,182,212,.08));color:#1e3a8a;border-radius:16px;font-weight:800}.vila-status-banner button,.vila-app-banner button{border:0;background:transparent;font-size:18px;cursor:pointer;color:inherit}.vila-banner-stack{display:grid;gap:8px;margin:12px 0}.vila-app-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:16px;border:1px solid rgba(148,163,184,.25);font-weight:800}.vila-app-banner.info{background:#eff6ff;color:#1e3a8a}.vila-app-banner.warning{background:#fffbeb;color:#92400e}.vila-app-banner.critical{background:#fef2f2;color:#991b1b}.vila-app-banner.success{background:#ecfdf5;color:#065f46}
.vila-command-bar{display:flex;align-items:center;gap:12px;margin:16px 0;padding:14px!important;position:relative;z-index:6}.command-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--vila-primary),var(--vila-cyan));color:#fff;font-size:24px;box-shadow:0 10px 24px rgba(37,99,235,.25)}.command-input-wrap{position:relative;flex:1}.command-input-wrap label{font-size:12px;font-weight:900;color:var(--vila-muted);display:block;margin-bottom:4px}.command-input-wrap input{width:100%;border:1px solid var(--vila-line);border-radius:16px;padding:12px 14px;background:var(--vila-card);color:var(--vila-ink)}.command-results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:30;background:var(--vila-card);border:1px solid var(--vila-line);border-radius:18px;box-shadow:0 22px 60px rgba(15,23,42,.18);padding:8px;max-height:360px;overflow:auto}.command-results a{display:block;padding:12px;border-radius:14px;text-decoration:none;color:var(--vila-ink)}.command-results a:hover{background:rgba(37,99,235,.08)}.command-results b{display:block}.command-results span{display:block;color:var(--vila-muted);font-size:12px;margin-top:3px}
.profile-completion-card{display:grid;grid-template-columns:1fr minmax(160px,240px) auto;gap:12px;align-items:center;margin:14px 0}.profile-progress{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.profile-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--vila-primary),var(--vila-cyan));border-radius:inherit}.skeleton-notice{position:relative;color:transparent!important;overflow:hidden;min-height:46px}.skeleton-notice:before{content:"";position:absolute;inset:8px;border-radius:12px;background:linear-gradient(90deg,rgba(148,163,184,.16),rgba(148,163,184,.34),rgba(148,163,184,.16));background-size:200% 100%;animation:vilaShimmer 1.3s infinite}@keyframes vilaShimmer{to{background-position:-200% 0}}
.vila-toast-stack{position:fixed;right:18px;top:82px;z-index:10001;display:grid;gap:10px;max-width:min(390px,calc(100vw - 36px))}.vila-toast{opacity:0;transform:translateY(-8px);transition:.25s ease;background:#0f172a;color:#fff;border-radius:18px;padding:13px 15px;box-shadow:0 18px 48px rgba(15,23,42,.3);display:grid;gap:3px}.vila-toast.show{opacity:1;transform:none}.vila-toast.success{background:#065f46}.vila-toast.warning{background:#92400e}.vila-toast.danger{background:#991b1b}.vila-toast span{font-size:13px;opacity:.9}
.form-review-helper{margin-top:12px;padding:12px 14px;border:1px dashed rgba(37,99,235,.35);background:rgba(37,99,235,.06);border-radius:16px;display:grid;gap:3px}.form-review-helper b{color:#1d4ed8}.form-review-helper span{color:var(--vila-muted);font-size:13px}.photo-preview-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.photo-preview-strip div{width:110px;border:1px solid var(--vila-line);border-radius:14px;overflow:hidden;background:var(--vila-card)}.photo-preview-strip img{width:100%;height:78px;object-fit:cover;display:block}.photo-preview-strip span{display:block;font-size:10px;padding:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legal-center-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.legal-center-card{display:grid;gap:7px;text-decoration:none;color:inherit;background:var(--vila-card);border:1px solid var(--vila-line);border-radius:20px;padding:18px;box-shadow:var(--vila-shadow)}.legal-center-card:hover{border-color:rgba(37,99,235,.45);transform:translateY(-2px)}.legal-center-card span{font-size:28px}.legal-center-card small{color:var(--vila-muted)}
.command-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.command-tile{border:1px solid var(--vila-line);border-radius:22px;background:var(--vila-card);padding:18px;box-shadow:var(--vila-shadow);display:grid;gap:8px;text-decoration:none;color:inherit}.command-tile strong{font-size:34px}.command-tile small{color:var(--vila-muted)}.priority-high{border-color:rgba(220,38,38,.28);background:linear-gradient(180deg,rgba(254,242,242,.9),var(--vila-card))}.priority-medium{border-color:rgba(245,158,11,.35);background:linear-gradient(180deg,rgba(255,251,235,.9),var(--vila-card))}.priority-ok{border-color:rgba(22,163,74,.25);background:linear-gradient(180deg,rgba(236,253,245,.9),var(--vila-card))}
.bell-pulse{animation:vilaBell 1.8s infinite}@keyframes vilaBell{0%,100%{transform:rotate(0)}10%{transform:rotate(9deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(5deg)}40%{transform:rotate(0)}}
@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:760px){.vila-welcome-banner{display:block}.welcome-actions{margin-top:14px}.vila-command-bar{display:grid;grid-template-columns:46px 1fr}.vila-command-bar .btn{grid-column:1/-1}.profile-completion-card{grid-template-columns:1fr}.vila-toast-stack{left:12px;right:12px;top:auto;bottom:16px}.command-results{position:fixed;left:12px;right:12px;top:130px}.legal-center-grid,.command-dashboard-grid{grid-template-columns:1fr}}
html.vila-dark,html[data-theme="dark"],body.dark{--vila-bg:#020617;--vila-card:#0f172a;--vila-ink:#e5e7eb;--vila-muted:#94a3b8;--vila-line:#263449;--vila-shadow:0 18px 50px rgba(0,0,0,.28)}
html.vila-dark .vila-status-banner,html[data-theme="dark"] .vila-status-banner,body.dark .vila-status-banner{background:rgba(37,99,235,.16);color:#bfdbfe;border-color:rgba(96,165,250,.25)}
html.vila-dark .vila-app-banner.info,html[data-theme="dark"] .vila-app-banner.info,body.dark .vila-app-banner.info{background:#0b1e3a;color:#bfdbfe}html.vila-dark .vila-app-banner.warning,html[data-theme="dark"] .vila-app-banner.warning,body.dark .vila-app-banner.warning{background:#2b1f07;color:#fde68a}html.vila-dark .vila-app-banner.critical,html[data-theme="dark"] .vila-app-banner.critical,body.dark .vila-app-banner.critical{background:#2a0b0b;color:#fecaca}html.vila-dark .vila-app-banner.success,html[data-theme="dark"] .vila-app-banner.success,body.dark .vila-app-banner.success{background:#08251a;color:#bbf7d0}

/* Time Off Firestore restructure */
.timeoff-hero-card{display:flex;justify-content:space-between;align-items:center;gap:18px;background:linear-gradient(135deg,rgba(15,23,42,.94),rgba(30,64,175,.88),rgba(14,165,233,.55));color:#fff;border:0;overflow:hidden}.timeoff-hero-card .sub,.timeoff-hero-card p{color:rgba(255,255,255,.88)}.timeoff-identity-card{min-width:220px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:20px;padding:16px;box-shadow:inset 0 0 35px rgba(255,255,255,.08)}.timeoff-layout-grid{align-items:start;margin-top:18px}.timeoff-tabs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.timeoff-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric.mini{padding:14px;border-radius:18px}.metric.mini b{font-size:28px}.timeoff-list,.timeoff-admin-list{display:grid;gap:12px}.timeoff-request-card,.timeoff-admin-card{border:1px solid rgba(148,163,184,.26);border-radius:20px;padding:15px;background:var(--card,#fff);box-shadow:0 10px 30px rgba(15,23,42,.06)}.timeoff-request-card.pending,.timeoff-admin-card.pending{border-left:5px solid #f59e0b}.timeoff-request-card.approved,.timeoff-admin-card.approved{border-left:5px solid #16a34a}.timeoff-request-card.rejected,.timeoff-admin-card.rejected{border-left:5px solid #dc2626}.timeoff-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.timeoff-card-head small{display:block;color:var(--muted,#64748b);margin-top:4px}.timeoff-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.02em;background:#e2e8f0;color:#334155}.timeoff-chip.pending{background:#fef3c7;color:#92400e}.timeoff-chip.approved{background:#dcfce7;color:#166534}.timeoff-chip.rejected,.timeoff-chip.denied{background:#fee2e2;color:#991b1b}.timeoff-chip.cancelled,.timeoff-chip.canceled{background:#e5e7eb;color:#374151}.admin-decision-note{background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;border-radius:14px;padding:12px;margin:10px 0}.timeoff-decision-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.compact-grid{margin:10px 0}.availability-box.good{background:#dcfce7;border-color:#86efac;color:#166534}.availability-box.warn{background:#fef3c7;border-color:#facc15;color:#713f12}.availability-box.bad,.notice.bad{background:#fee2e2;border-color:#fecaca;color:#991b1b}.notice.good{background:#dcfce7;border-color:#86efac;color:#166534}.dark .timeoff-request-card,.dark .timeoff-admin-card,html.vila-dark .timeoff-request-card,html.vila-dark .timeoff-admin-card{background:#0f172a;border-color:rgba(148,163,184,.28);color:#e5e7eb}.dark .admin-decision-note,html.vila-dark .admin-decision-note{background:rgba(251,146,60,.12);border-color:rgba(251,146,60,.28);color:#fed7aa}.dark .timeoff-card-head small,html.vila-dark .timeoff-card-head small{color:#94a3b8}@media(max-width:850px){.timeoff-hero-card{display:block}.timeoff-identity-card{margin-top:14px;min-width:0}.timeoff-tabs-grid{grid-template-columns:1fr}.timeoff-counts{grid-template-columns:1fr 1fr 1fr}.timeoff-card-head{display:block}.timeoff-chip{margin-top:8px}}

/* Notification redesign + floating button layout fixes */
.notification-bell-wrap.improved-notifications{margin-left:10px;position:relative;z-index:30}.notification-bell-panel{max-height:min(70vh,520px);overflow:auto}.notification-mini{display:grid;gap:3px}.notification-mini.viewed{opacity:.78}.notification-mini em{font-style:normal;font-size:11px;font-weight:800;color:#2563eb}.notification-mini.viewed em{color:#64748b}.notification-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.notification-full-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;border:1px solid rgba(148,163,184,.25);border-radius:18px;background:#fff;padding:14px;margin:10px 0;box-shadow:0 8px 22px rgba(15,23,42,.05)}.notification-full-item.unread{border-left:5px solid #2563eb}.notification-full-item.viewed{opacity:.82}.notification-full-item h3{margin:4px 0}.notification-full-item p{margin:3px 0;color:#475569}.notification-kind{display:inline-flex;border-radius:999px;padding:3px 9px;background:#e0f2fe;color:#075985;font-size:12px;font-weight:800}.dark-mode .notification-full-item{background:#111827!important;color:#e5e7eb!important;border-color:rgba(255,255,255,.14)!important}.dark-mode .notification-full-item p{color:#cbd5e1}.dark-mode .notification-kind{background:#1e3a8a;color:#dbeafe}
/* Removed auto pop-up banners; this hides any stale local banner/status markup still cached */
#vilaStatusBanner,#vilaBannerStack,#vilaWelcomeBanner{display:none!important}.vila-status-banner,.vila-banner-stack,.vila-welcome-banner{display:none!important}
/* Keep floating actions from blocking each other */
.ai-fab{right:18px!important;bottom:84px!important;z-index:9997!important}.scroll-top{right:18px!important;bottom:24px!important;z-index:9996!important}.accessibility-quick-btn{left:18px!important;bottom:84px!important;z-index:9997!important}.accessibility-quick-panel{left:18px!important;bottom:146px!important;z-index:9997!important}.vila-toast-lite{bottom:150px!important}.cookie-banner+.scroll-top,.cookie-consent-banner+.scroll-top{bottom:24px!important}
@media(max-width:720px){.notification-bell-panel{position:fixed!important;left:10px!important;right:10px!important;top:72px!important;width:auto!important;max-height:calc(100vh - 92px)!important;border-radius:18px!important}.notification-full-item{display:block}.notification-full-item .btn{margin-top:10px;width:100%}.ai-fab{right:14px!important;bottom:84px!important}.scroll-top{right:14px!important;bottom:22px!important}.accessibility-quick-btn{left:14px!important;bottom:84px!important}.accessibility-quick-panel{left:10px!important;bottom:146px!important;width:calc(100vw - 20px)!important}}

/* Team Directory + Chat Profile Redesign */
.directory-profile-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--border,#e2e8f0);background:var(--card,#fff);border-radius:18px;margin-bottom:10px;box-shadow:0 8px 24px rgba(15,23,42,.06)}
.directory-profile-main{display:flex;align-items:center;gap:12px;min-width:0;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer;flex:1}.directory-profile-main b{display:block;font-size:15px}.directory-profile-main small{display:block;color:var(--muted,#64748b);white-space:normal;line-height:1.35}.team-profile-avatar{position:relative;display:inline-flex;width:46px;height:46px;border-radius:16px;align-items:center;justify-content:center;background:linear-gradient(135deg,#1d4ed8,#38bdf8);color:#fff;flex:0 0 auto;overflow:visible;box-shadow:0 8px 18px rgba(29,78,216,.18)}.team-profile-avatar img{width:100%;height:100%;border-radius:16px;object-fit:cover}.team-profile-avatar b{font-size:15px;letter-spacing:.02em}.team-profile-avatar.large{width:72px;height:72px;border-radius:24px}.team-profile-avatar.large img{border-radius:24px}.team-profile-avatar i{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:999px;border:2px solid var(--card,#fff);background:#94a3b8}.team-profile-avatar i.on{background:#22c55e}.team-profile-avatar i.off{background:#94a3b8}
.team-profile-popover{position:fixed;z-index:20000;width:min(320px,calc(100vw - 24px));filter:drop-shadow(0 22px 50px rgba(2,6,23,.25))}.team-profile-card{position:relative;overflow:hidden;border-radius:22px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);box-shadow:0 18px 45px rgba(15,23,42,.18)}.team-profile-card.compact{font-size:14px}.team-profile-cover{height:56px;background:linear-gradient(135deg,#0f172a,#1d4ed8,#38bdf8)}.team-profile-head{display:flex;align-items:center;gap:14px;padding:0 16px 12px;transform:translateY(-20px);margin-bottom:-14px}.team-profile-head h3{margin:0;font-size:18px}.team-profile-head p{margin:4px 0 0;color:var(--muted,#64748b)}.team-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 16px}.team-profile-grid span{display:block;padding:10px;border-radius:14px;background:rgba(148,163,184,.10);color:var(--text,#0f172a);font-size:13px}.team-profile-grid b{display:block;color:var(--muted,#64748b);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}.team-profile-modal{position:fixed;inset:0;background:rgba(2,6,23,.58);z-index:21000;display:grid;place-items:center;padding:18px}.team-profile-modal.hidden,.team-profile-popover.hidden{display:none!important}.team-profile-modal-card{width:min(420px,100%);position:relative}.profile-modal-close{position:absolute;right:10px;top:10px;z-index:2;border:0;border-radius:999px;width:38px;height:38px;background:rgba(255,255,255,.85);font-size:24px;cursor:pointer}.clickable-profile-name{cursor:pointer;text-decoration:underline;text-decoration-color:transparent}.clickable-profile-name:hover{text-decoration-color:currentColor}
.conversation-messages{display:flex;flex-direction:column;gap:10px}.msg{position:relative;display:grid!important;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:10px;width:100%;max-width:780px;padding:12px!important;margin:4px 0!important;border-radius:20px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);box-shadow:0 8px 22px rgba(15,23,42,.05)}.msg.mine{margin-left:auto!important;background:linear-gradient(135deg,rgba(29,78,216,.10),rgba(56,189,248,.08));border-color:rgba(29,78,216,.20)}.msg-profile-avatar{grid-row:1 / span 5;width:40px;height:40px;border:0;border-radius:14px;padding:0;background:linear-gradient(135deg,#1d4ed8,#38bdf8);color:white;overflow:hidden;cursor:pointer;box-shadow:0 6px 14px rgba(29,78,216,.2)}.msg-profile-avatar img{width:100%;height:100%;object-fit:cover}.msg-profile-avatar b{font-size:13px}.msg .msg-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.msg .msg-head b{font-size:14px}.msg .msg-role{font-size:11px;padding:3px 7px;border-radius:999px;background:rgba(37,99,235,.10);color:#1d4ed8}.msg p{margin:3px 0 8px;line-height:1.45}.msg small{color:var(--muted,#64748b);font-size:12px}.msg .chat-photo{max-width:min(320px,100%);border-radius:16px;cursor:zoom-in;border:1px solid var(--border,#e2e8f0)}
.reactions.reaction-polished{position:relative;display:inline-flex;width:max-content;margin-top:4px}.reaction-icon-button{border:1px solid var(--border,#e2e8f0);background:rgba(148,163,184,.10);border-radius:999px;width:34px;height:28px;display:grid;place-items:center;cursor:pointer;font-size:16px}.reaction-picker-menu{display:none;position:absolute;left:0;bottom:34px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:999px;padding:6px;box-shadow:0 18px 40px rgba(2,6,23,.18);z-index:20;gap:3px;white-space:nowrap}.reaction-polished.open .reaction-picker-menu{display:flex}.reaction-emoji-option{position:relative;border:0;background:transparent;border-radius:999px;min-width:34px;height:34px;display:grid;place-items:center;font-size:18px;cursor:pointer}.reaction-emoji-option:hover{background:rgba(148,163,184,.15)}.reaction-emoji-option em{position:absolute;right:-2px;top:-3px;background:#1d4ed8;color:#fff;border-radius:999px;min-width:16px;height:16px;font-size:10px;line-height:16px;font-style:normal}.chat-image-lightbox{position:fixed;inset:0;z-index:22000;background:rgba(2,6,23,.82);display:grid;place-items:center;padding:44px 18px}.chat-image-lightbox.hidden{display:none!important}.chat-image-lightbox img{max-width:92vw;max-height:82vh;border-radius:14px;transition:transform .15s ease}.lightbox-close{position:fixed;right:18px;top:18px;border:0;border-radius:999px;width:44px;height:44px;font-size:28px;background:white;cursor:pointer}.lightbox-tools{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.lightbox-tools button{border:0;border-radius:999px;padding:10px 14px;background:white;cursor:pointer}
.vila-dark .directory-profile-card,.vila-dark .team-profile-card,.vila-dark .msg,.vila-dark .reaction-picker-menu{background:#111827;border-color:rgba(255,255,255,.12);color:#e5e7eb}.vila-dark .team-profile-grid span,.vila-dark .msg.mine{background:#0b1220}.vila-dark .msg .msg-role{color:#93c5fd;background:rgba(59,130,246,.18)}
@media(max-width:760px){.directory-profile-card{align-items:flex-start}.directory-profile-main{align-items:flex-start}.directory-profile-card .btn{padding:8px 10px}.team-profile-grid{grid-template-columns:1fr}.msg{grid-template-columns:36px minmax(0,1fr);padding:10px!important;border-radius:16px}.msg-profile-avatar{width:34px;height:34px;border-radius:12px}.reaction-picker-menu{left:auto;right:0}.team-profile-popover{left:12px!important;right:12px!important;width:auto!important}.conversation-hub-shell{gap:10px}}
/* Advanced Scheduling Portal */
.schedule-main .schedule-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(37,99,235,.82),rgba(14,165,233,.72));color:#fff;overflow:hidden}.schedule-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}.schedule-controls input{max-width:160px}.schedule-admin-toolbar{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start}.template-panel{min-width:260px}.template-pill{border:1px solid rgba(148,163,184,.35);background:rgba(148,163,184,.08);border-radius:14px;padding:9px 11px;margin:4px;display:inline-flex;gap:8px;flex-direction:column;cursor:pointer;color:inherit}.template-pill small{color:var(--muted,#64748b)}.schedule-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:14px}.schedule-warnings{grid-column:1/-1;border:1px solid rgba(245,158,11,.35);background:rgba(245,158,11,.10);border-radius:16px;padding:12px}.schedule-warnings p{margin:6px 0}.schedule-scroll{overflow:auto;border:1px solid rgba(148,163,184,.2);border-radius:18px;background:rgba(148,163,184,.06)}.schedule-board{min-width:1050px;display:grid;grid-template-columns:190px repeat(7,1fr)}.schedule-header-cell,.schedule-day-head,.schedule-user-head,.schedule-job-head{position:sticky;top:0;background:var(--card,#fff);z-index:2;border-bottom:1px solid rgba(148,163,184,.2);padding:12px;font-weight:800}.schedule-user-head,.schedule-job-head{position:sticky;left:0;z-index:1;border-right:1px solid rgba(148,163,184,.2);display:flex;gap:10px;align-items:center}.schedule-cell{min-height:150px;border-left:1px solid rgba(148,163,184,.16);border-bottom:1px solid rgba(148,163,184,.16);padding:8px;background:rgba(255,255,255,.45)}.schedule-cell.drop-target{outline:2px dashed #2563eb;outline-offset:-4px;background:rgba(37,99,235,.08)}.shift-card{border:1px solid rgba(148,163,184,.28);background:#fff;border-radius:16px;padding:10px;margin-bottom:8px;box-shadow:0 8px 22px rgba(15,23,42,.07)}.shift-card.draft{border-left:5px solid #94a3b8}.shift-card.published{border-left:5px solid #22c55e}.shift-card.open-job{border-left-color:#f59e0b}.shift-card-head{display:flex;gap:10px;align-items:center}.shift-card-head b{display:block}.shift-card-head small{display:block;color:#64748b}.mini-avatar{width:34px;height:34px;border-radius:999px;background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;display:grid;place-items:center;font-weight:900;overflow:hidden;flex:0 0 auto}.mini-avatar img{width:100%;height:100%;object-fit:cover}.shift-meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.shift-meta span{font-size:11px;border-radius:999px;background:rgba(148,163,184,.14);padding:4px 7px;color:var(--text,#0f172a)}.shift-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.add-shift-cell{width:100%;border:1px dashed rgba(37,99,235,.45);border-radius:12px;padding:8px;background:rgba(37,99,235,.05);cursor:pointer;color:#2563eb;font-weight:800}.availability-grid{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:8px;margin:10px 0}.availability-grid label{border:1px solid rgba(148,163,184,.25);border-radius:12px;padding:10px;background:rgba(148,163,184,.07);text-align:center}.modal{position:fixed;inset:0;z-index:9999;background:rgba(2,6,23,.62);display:grid;place-items:center;padding:20px}.modal-card{background:var(--card,#fff);color:var(--text,#0f172a);border-radius:24px;border:1px solid rgba(148,163,184,.25);box-shadow:0 30px 80px rgba(2,6,23,.35);padding:20px;max-height:92vh;overflow:auto;width:min(720px,100%)}.modal-card.wide{width:min(850px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head button{border:0;background:rgba(148,163,184,.18);border-radius:12px;font-size:24px;width:40px;height:40px;cursor:pointer}.btn.success{background:#16a34a;color:#fff}.btn.danger{background:#dc2626;color:#fff}.btn.tiny{font-size:12px;padding:6px 9px}.hidden{display:none!important}html.vila-dark .schedule-header-cell,html.vila-dark .schedule-day-head,html.vila-dark .schedule-user-head,html.vila-dark .schedule-job-head,html.vila-dark .shift-card,html.vila-dark .modal-card{background:#111827;color:#e5e7eb;border-color:rgba(255,255,255,.12)}html.vila-dark .schedule-cell{background:rgba(15,23,42,.45)}html.vila-dark .shift-card-head small{color:#94a3b8}@media(max-width:800px){.schedule-main .schedule-hero{flex-direction:column;align-items:flex-start}.schedule-controls{justify-content:flex-start}.availability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-board{min-width:980px}.schedule-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Advanced User Management + Audit Log Center */
.user-mgmt-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(29,78,216,.85),rgba(6,182,212,.65));color:#fff;overflow:hidden}.user-mgmt-hero h1{margin:.25rem 0;font-size:clamp(1.7rem,3vw,2.6rem)}.user-mgmt-kpis{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:12px;min-width:min(430px,100%)}.user-mgmt-kpis div{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:14px}.user-mgmt-kpis b{display:block;font-size:28px}.user-mgmt-kpis span{font-size:12px;opacity:.9}.user-mgmt-tabs,.audit-tabs{display:flex;gap:8px;overflow:auto;padding:8px 0;margin:14px 0}.user-mgmt-tabs button,.audit-tabs button{border:1px solid rgba(148,163,184,.32);background:var(--card,#fff);color:inherit;border-radius:999px;padding:10px 14px;white-space:nowrap;cursor:pointer;font-weight:700}.user-mgmt-tabs button.active,.audit-tabs button.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.user-mgmt-controls .grid.four,.audit-controls .grid.four{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.um-table th,.audit-table th{text-align:left;white-space:nowrap}.um-user-cell{display:flex;align-items:center;gap:10px;min-width:210px}.um-user-cell small{display:block;color:var(--muted,#64748b)}.um-avatar{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#1d4ed8,#06b6d4);color:#fff;display:grid;place-items:center;font-weight:900;overflow:hidden;flex:0 0 auto}.um-avatar img{width:100%;height:100%;object-fit:cover}.um-avatar.big{width:78px;height:78px;border-radius:24px;font-size:24px}.um-badge,.audit-sev{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:rgba(100,116,139,.12);font-size:12px;font-weight:800;margin:2px}.um-badge.ok,.audit-sev.info{background:rgba(34,197,94,.14);color:#15803d}.um-badge.warn,.audit-sev.warning{background:rgba(245,158,11,.18);color:#92400e}.um-badge.bad,.audit-sev.critical{background:rgba(239,68,68,.15);color:#b91c1c}.um-badge.role,.audit-sev.security{background:rgba(29,78,216,.14);color:#1d4ed8}.um-badge.info,.audit-sev.compliance{background:rgba(6,182,212,.14);color:#0e7490}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:14px 0}.permission-grid label,.security-box{border:1px solid rgba(148,163,184,.25);border-radius:14px;background:rgba(148,163,184,.07);padding:12px}.um-drawer{position:fixed;inset:0;background:rgba(2,6,23,.55);z-index:10000;display:flex;justify-content:flex-end}.um-drawer.hidden{display:none}.um-drawer-panel{width:min(560px,100%);height:100%;overflow:auto;background:var(--card,#fff);color:var(--text,#0f172a);box-shadow:-20px 0 70px rgba(2,6,23,.35);padding:22px;position:relative}.um-drawer-close{position:absolute;top:14px;right:14px;border:0;border-radius:14px;background:rgba(148,163,184,.16);width:42px;height:42px;font-size:26px;color:inherit}.um-drawer-user{display:flex;gap:15px;align-items:center;margin-bottom:18px;padding-right:48px}.um-drawer-user h2{margin:0}.um-drawer-grid,.audit-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.um-drawer-grid>div,.audit-detail-grid>div{border:1px solid rgba(148,163,184,.22);border-radius:14px;padding:12px;background:rgba(148,163,184,.07)}.um-drawer-grid b,.audit-detail-grid b{display:block;font-size:12px;text-transform:uppercase;color:var(--muted,#64748b)}.um-drawer-grid span,.audit-detail-grid span{word-break:break-word}.um-timeline{display:grid;gap:10px}.um-timeline-row{display:grid;grid-template-columns:18px 1fr;gap:10px}.um-timeline-row>span{width:12px;height:12px;border-radius:50%;background:#1d4ed8;margin-top:4px}.um-timeline-row div{border-left:2px solid rgba(148,163,184,.3);padding-left:12px;padding-bottom:12px}.um-timeline-row small{display:block;color:var(--muted,#64748b)}.audit-header-line{display:flex;align-items:center;justify-content:space-between;gap:14px}.audit-json{white-space:pre-wrap;background:rgba(15,23,42,.07);border:1px solid rgba(148,163,184,.22);border-radius:14px;padding:12px;max-height:420px;overflow:auto}.btn.tiny{padding:6px 9px;font-size:12px;border-radius:9px}.actions.wrap{display:flex;gap:8px;flex-wrap:wrap}html.vila-dark .um-drawer-panel,body.dark .um-drawer-panel{background:#0f172a;color:#e5e7eb}html.vila-dark .permission-grid label,html.vila-dark .security-box,html.vila-dark .um-drawer-grid>div,html.vila-dark .audit-detail-grid>div,body.dark .permission-grid label,body.dark .security-box,body.dark .um-drawer-grid>div,body.dark .audit-detail-grid>div{background:#111827;border-color:rgba(148,163,184,.25)}@media(max-width:900px){.user-mgmt-hero{flex-direction:column;align-items:stretch}.user-mgmt-controls .grid.four,.audit-controls .grid.four{grid-template-columns:1fr 1fr}.um-drawer-grid,.audit-detail-grid{grid-template-columns:1fr}}@media(max-width:640px){.user-mgmt-controls .grid.four,.audit-controls .grid.four{grid-template-columns:1fr}.um-user-cell{min-width:180px}.audit-header-line{display:block}.um-drawer-panel{padding:18px 14px}.user-mgmt-kpis{grid-template-columns:1fr 1fr}}

/* Schedule split portal cleanup */
.user-week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px;overflow:auto}.user-day-card{border:1px solid rgba(148,163,184,.25);border-radius:18px;padding:14px;background:var(--card,#fff);min-height:160px}.user-day-card h4{margin:0 0 10px}.user-shift-pill,.timeoff-day,.empty-day{border-radius:14px;padding:10px;margin:8px 0;background:rgba(37,99,235,.08);border:1px solid rgba(37,99,235,.18)}.timeoff-day{background:rgba(34,197,94,.10);border-color:rgba(34,197,94,.25)}.empty-day{background:rgba(148,163,184,.08);color:var(--muted,#64748b)}.user-shift-pill b,.timeoff-day b{display:block}.user-shift-pill small,.timeoff-day small,.user-shift-pill span{display:block;color:var(--muted,#64748b);font-size:.85rem}.schedule-board{display:grid;grid-template-columns:190px repeat(7,minmax(170px,1fr));gap:8px;min-width:1380px}.schedule-board.jobs-view{grid-template-columns:190px repeat(7,minmax(180px,1fr))}.schedule-head,.schedule-user-name,.schedule-cell{border:1px solid rgba(148,163,184,.22);border-radius:14px;background:var(--card,#fff);padding:10px}.schedule-head{font-weight:800;text-align:center;background:rgba(37,99,235,.08)}.schedule-user-name{position:sticky;left:0;z-index:2}.schedule-cell{min-height:140px}.shift-card{border-radius:14px;border:1px solid rgba(148,163,184,.28);padding:10px;margin-bottom:8px;background:rgba(255,255,255,.92);cursor:grab}.shift-card.draft{border-style:dashed;background:rgba(148,163,184,.09)}.shift-card.published{border-color:rgba(34,197,94,.35)}.shift-card b,.shift-card small,.shift-card span{display:block}.shift-card small,.shift-card span{font-size:.82rem;color:var(--muted,#64748b)}.shift-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.shift-actions button,.cell-add,.chip{border:1px solid rgba(37,99,235,.25);border-radius:999px;background:rgba(37,99,235,.08);color:#1d4ed8;font-weight:700;padding:6px 9px;cursor:pointer}.cell-add{width:100%;margin-top:8px}.schedule-kpis{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.schedule-kpis .metric{min-width:140px}.dark .user-day-card,.dark .schedule-head,.dark .schedule-user-name,.dark .schedule-cell,.dark .shift-card{background:#111827;border-color:rgba(255,255,255,.12)}@media(max-width:900px){.user-week-grid{grid-template-columns:1fr}.schedule-board{min-width:1200px}.schedule-scroll{overflow:auto}}

/* Account Settings v2 redesign */
.account-main{max-width:1480px}.account-topbar{align-items:flex-start}.account-quick-actions{justify-content:flex-end}.account-hero-v2{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(29,78,216,.86),rgba(6,182,212,.62));color:#fff;overflow:hidden;position:relative}.account-hero-v2:after{content:"";position:absolute;inset:auto -40px -80px auto;width:220px;height:220px;background:rgba(255,255,255,.08);border-radius:50%}.account-hero-left{display:flex;align-items:center;gap:18px;position:relative;z-index:1}.account-avatar-shell{position:relative;display:grid;place-items:center;gap:8px}.account-avatar{width:96px;height:96px;border-radius:28px;object-fit:cover;background:#fff;border:3px solid rgba(255,255,255,.7);box-shadow:0 20px 45px rgba(2,6,23,.25)}.avatar-status-dot{position:absolute;right:10px;top:72px;width:17px;height:17px;background:#22c55e;border:3px solid #fff;border-radius:999px}.account-identity h3{font-size:28px;margin:0 0 5px}.account-hero-v2 .sub,.account-hero-v2 .status-pill{color:#e0f2fe}.account-completion-card{position:relative;z-index:1;min-width:280px;display:flex;align-items:center;gap:14px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);border-radius:22px;padding:14px;backdrop-filter:blur(8px)}.completion-ring{--pct:0%;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#22c55e var(--pct),rgba(255,255,255,.22) 0);font-weight:900}.completion-ring span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#0f172a;color:#fff}.account-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0}.account-overview-card{display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid rgba(148,163,184,.22);border-radius:18px;background:var(--card,#fff);padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.06);cursor:pointer;color:inherit}.account-overview-card span{font-size:25px}.account-overview-card b{font-size:16px}.account-overview-card small{color:var(--muted,#64748b)}.account-overview-card:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.45)}.account-layout-v2{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}.account-tab-rail{position:sticky;top:84px;display:grid;gap:8px;padding:12px}.account-tab-rail button{display:grid;grid-template-columns:34px 1fr;gap:4px 10px;align-items:center;text-align:left;border:1px solid transparent;background:transparent;color:inherit;border-radius:14px;padding:10px;cursor:pointer}.account-tab-rail button span{grid-row:1/3;width:34px;height:34px;border-radius:12px;background:rgba(37,99,235,.10);display:grid;place-items:center}.account-tab-rail button small{color:var(--muted,#64748b)}.account-tab-rail button.active{background:rgba(37,99,235,.12);border-color:rgba(37,99,235,.28)}.account-content-stack{min-width:0}.account-panel{display:none}.account-panel.active{display:block;animation:accountFade .18s ease-out}@keyframes accountFade{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.section-head h3{margin:0 0 3px}.nested-card{background:rgba(148,163,184,.07);box-shadow:none;margin-top:14px}.account-form-grid input,.account-form-grid textarea,.account-form-grid select{min-height:44px}.grid.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.account-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.account-check-grid label{display:flex;align-items:center;gap:10px;border:1px solid rgba(148,163,184,.22);background:rgba(148,163,184,.07);border-radius:14px;padding:12px}.privacy-action-grid,.support-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.privacy-action-card{border:1px solid rgba(148,163,184,.24);background:var(--card,#fff);color:inherit;border-radius:18px;padding:15px;text-align:left;display:flex;flex-direction:column;gap:5px;cursor:pointer}.privacy-action-card span{color:var(--muted,#64748b);font-size:13px}.privacy-action-card:hover{border-color:rgba(37,99,235,.45);background:rgba(37,99,235,.06)}.danger-card{border-color:rgba(239,68,68,.25)}.danger-card b{color:#dc2626}.account-summary-grid{margin:12px 0}.account-table-wrap table{min-width:760px}.enhanced-list .mini-item{border:1px solid rgba(148,163,184,.22);background:rgba(148,163,184,.06);border-radius:14px;padding:12px;margin-bottom:8px}.legal-links-row{margin:12px 0}.bottom{align-items:end}.span-2{grid-column:span 2}.vila-dark .account-overview-card,.vila-dark .privacy-action-card{background:#111827;border-color:rgba(255,255,255,.12)}.vila-dark .nested-card,.vila-dark .account-check-grid label,.vila-dark .enhanced-list .mini-item{background:#0b1220;border-color:rgba(255,255,255,.12)}@media(max-width:1020px){.account-layout-v2{grid-template-columns:1fr}.account-tab-rail{position:relative;top:0;grid-template-columns:repeat(2,minmax(0,1fr))}.account-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-hero-v2{align-items:flex-start;flex-direction:column}.account-completion-card{width:100%}}@media(max-width:700px){.account-tab-rail{display:flex;overflow:auto;padding:10px}.account-tab-rail button{min-width:190px}.account-overview-grid,.privacy-action-grid,.support-action-grid,.account-check-grid,.grid.two,.grid.three{grid-template-columns:1fr}.section-head{flex-direction:column}.account-hero-left{align-items:flex-start}.account-avatar{width:78px;height:78px;border-radius:22px}.avatar-status-dot{top:56px}.account-identity h3{font-size:23px}.span-2{grid-column:auto}.account-quick-actions{justify-content:flex-start}.account-completion-card{min-width:0}}

/* Team Feed Advanced + Profile Linked Chat Polish */
.team-feed-main .topbar{align-items:center}.team-feed-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,rgba(15,23,42,.96),rgba(29,78,216,.8),rgba(6,182,212,.55));color:#fff;overflow:hidden}.team-feed-hero .sub{color:rgba(255,255,255,.82)}.team-feed-stats{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));gap:10px}.team-feed-stats div{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:13px;text-align:center}.team-feed-stats b{display:block;font-size:28px}.team-feed-stats span{font-size:12px;color:rgba(255,255,255,.82)}.team-feed-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;margin-top:18px}.team-feed-left,.team-feed-list,.team-feed-pinned{display:grid;gap:14px}.team-feed-side{display:grid;gap:16px;align-content:start}.team-feed-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px}.team-feed-tabs{display:flex;gap:8px;flex-wrap:wrap}.team-feed-tabs button{border:1px solid rgba(148,163,184,.28);background:rgba(148,163,184,.08);border-radius:999px;padding:9px 13px;color:inherit;cursor:pointer}.team-feed-tabs button.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.team-feed-search input{min-width:260px;border:1px solid rgba(148,163,184,.32);border-radius:14px;padding:11px 13px;background:var(--input-bg,#fff);color:inherit}.team-feed-composer{margin-top:18px}.check-row{display:flex;gap:8px;align-items:center;font-weight:700}.feed-post-card{background:var(--card,#fff);border:1px solid rgba(148,163,184,.25);border-radius:20px;padding:16px;box-shadow:0 14px 35px rgba(15,23,42,.07)}.feed-post-card.unread{border-left:4px solid #1d4ed8}.feed-post-card.pinned{background:linear-gradient(135deg,rgba(29,78,216,.08),rgba(6,182,212,.05));border-color:rgba(29,78,216,.28)}.feed-post-card header{display:flex;gap:12px;align-items:center;margin-bottom:10px}.feed-post-avatar{width:44px;height:44px;border:0;border-radius:14px;background:linear-gradient(135deg,#1d4ed8,#06b6d4);color:#fff;display:grid;place-items:center;overflow:hidden;cursor:pointer;flex:0 0 auto}.feed-post-avatar img{width:100%;height:100%;object-fit:cover}.feed-post-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.feed-post-card p{line-height:1.55;margin:10px 0 12px}.feed-post-card footer{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid rgba(148,163,184,.18);padding-top:10px}.feed-reactions{display:flex;gap:6px;flex-wrap:wrap}.feed-reactions button,.feed-comment-toggle,.feed-admin-action{border:1px solid rgba(148,163,184,.25);background:rgba(148,163,184,.08);border-radius:999px;padding:7px 10px;color:inherit;cursor:pointer}.feed-admin-action.danger{color:#dc2626}.feed-pill{font-size:11px;border-radius:999px;padding:4px 8px;font-weight:800;background:rgba(148,163,184,.16)}.feed-pill.pin{background:rgba(29,78,216,.14);color:#1d4ed8}.feed-pill.important{background:#fef3c7;color:#92400e}.feed-pill.critical{background:#fee2e2;color:#991b1b}.feed-comments{margin-top:12px;border-top:1px solid rgba(148,163,184,.18);padding-top:12px}.feed-comments-list{display:grid;gap:8px}.feed-comment{background:rgba(148,163,184,.08);border-radius:14px;padding:9px 11px}.feed-comment b,.feed-comment span,.feed-comment small{display:block}.feed-comment small{color:var(--muted,#64748b);font-size:12px}.feed-comment-compose{display:flex;gap:8px;margin-top:10px}.feed-comment-compose input{flex:1;border:1px solid rgba(148,163,184,.32);border-radius:14px;padding:10px 12px;background:var(--input-bg,#fff);color:inherit}.linked-msg-avatar,.msg-profile-avatar,.msg-avatar,.msg-avatar-fallback{width:36px;height:36px;border-radius:12px;border:0;background:linear-gradient(135deg,#1d4ed8,#06b6d4);color:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto;cursor:pointer;float:left;margin-right:9px}.linked-msg-avatar img,.msg-profile-avatar img,.msg-avatar img{width:100%;height:100%;object-fit:cover}.profile-clickable{cursor:pointer}.profile-clickable:hover{text-decoration:underline}.profile-quick-pop{position:fixed;z-index:10050;width:min(320px,calc(100vw - 24px));filter:drop-shadow(0 22px 50px rgba(15,23,42,.22))}.profile-quick-modal{position:fixed;inset:0;background:rgba(2,6,23,.55);z-index:10060;display:flex;align-items:center;justify-content:center;padding:16px}.profile-quick-card{position:relative;width:min(420px,100%)}.profile-quick-close{position:absolute;top:10px;right:10px;z-index:3;border:0;border-radius:999px;width:36px;height:36px;background:rgba(255,255,255,.85);cursor:pointer}.vila-mini-profile{background:var(--card,#fff);border:1px solid rgba(148,163,184,.28);border-radius:20px;overflow:hidden;color:var(--text,#0f172a)}.vila-mini-cover{height:54px;background:linear-gradient(135deg,#0f172a,#1d4ed8,#06b6d4)}.vila-mini-head{display:flex;gap:12px;align-items:center;padding:0 16px 12px;margin-top:-24px}.vila-mini-avatar{position:relative;width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,#1d4ed8,#06b6d4);display:grid;place-items:center;color:#fff;border:3px solid var(--card,#fff);overflow:hidden;flex:0 0 auto}.vila-mini-avatar img{width:100%;height:100%;object-fit:cover}.vila-mini-avatar i{position:absolute;right:2px;bottom:2px;width:14px;height:14px;border-radius:50%;border:2px solid var(--card,#fff);background:#94a3b8}.vila-mini-avatar i.on{background:#22c55e}.vila-mini-head h3{margin:0}.vila-mini-head p{margin:2px 0 0;color:var(--muted,#64748b)}.vila-mini-profile dl{display:grid;gap:8px;padding:0 16px 16px;margin:0}.vila-mini-profile dl div{display:flex;justify-content:space-between;gap:10px;background:rgba(148,163,184,.08);border-radius:12px;padding:9px}.vila-mini-profile dt{font-weight:800}.vila-mini-profile dd{margin:0;color:var(--muted,#64748b);text-align:right}.vila-reaction-fixed{position:relative;display:inline-flex}.vila-reaction-toggle{border:1px solid rgba(148,163,184,.25);background:rgba(148,163,184,.09);border-radius:999px;width:32px;height:32px;cursor:pointer}.vila-reaction-menu{display:none;position:absolute;left:0;bottom:36px;gap:6px;background:var(--card,#fff);border:1px solid rgba(148,163,184,.28);box-shadow:0 16px 35px rgba(15,23,42,.18);border-radius:999px;padding:7px;z-index:20}.vila-reaction-fixed.open .vila-reaction-menu{display:flex}.vila-reaction-choice{border:0;background:transparent;font-size:18px;width:30px;height:30px;border-radius:50%;cursor:pointer}.vila-reaction-choice:hover{background:rgba(148,163,184,.16)}.conversation-item-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}@media(max-width:980px){.team-feed-layout{grid-template-columns:1fr}.team-feed-side{order:-1}.team-feed-toolbar{display:block}.team-feed-search input{width:100%;min-width:0;margin-top:10px}.team-feed-hero{display:block}.team-feed-stats{margin-top:12px}.feed-comment-compose{display:block}.feed-comment-compose button{margin-top:8px;width:100%}}
html.vila-dark .feed-post-card,html.vila-dark .vila-mini-profile{background:#111827;color:#e5e7eb;border-color:rgba(255,255,255,.12)}html.vila-dark .feed-comment,html.vila-dark .vila-mini-profile dl div{background:#0b1220}html.vila-dark .feed-comment-compose input,html.vila-dark .team-feed-search input{background:#0b1220;color:#e5e7eb;border-color:rgba(255,255,255,.15)}


/* Instant sidebar / no-delay shell */
.sidebar{content-visibility:auto;contain-intrinsic-size:280px 900px;}
.sidebar[data-instant-rendered="true"] .instant-nav a{animation:none!important;}
.sidebar .brand img.logo{display:block;}
.page-shell{min-height:100vh;}
@media (min-width: 900px){.sidebar{min-width:260px;}}

/* Team Lite crash fix + stable directory/chat UI */
.directory-person-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid rgba(148,163,184,.24);border-radius:18px;background:var(--card,#fff);margin-bottom:10px;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.directory-person-main{display:flex;align-items:center;gap:12px;min-width:0}.directory-person-name{border:0;background:transparent;text-align:left;color:inherit;cursor:pointer;padding:0}.directory-person-name b{display:block}.directory-person-name small{display:block;color:var(--muted,#64748b);margin-top:2px}.directory-avatar,.vila-avatar-sm,.linked-msg-avatar{width:42px;height:42px;border-radius:50%;border:1px solid rgba(148,163,184,.3);background:linear-gradient(135deg,#1d4ed8,#06b6d4);color:#fff;display:inline-grid;place-items:center;position:relative;overflow:hidden;cursor:pointer;flex:0 0 auto}.directory-avatar{width:52px;height:52px}.directory-avatar img,.vila-avatar-sm img,.linked-msg-avatar img,.conversation-item-avatar img{width:100%;height:100%;object-fit:cover}.directory-avatar i,.vila-avatar-sm i,.linked-msg-avatar i{position:absolute;right:1px;bottom:1px;width:11px;height:11px;border-radius:50%;background:#94a3b8;border:2px solid var(--card,#fff)}.directory-avatar i.on,.vila-avatar-sm i.on,.linked-msg-avatar i.on{background:#22c55e}.conversation-item{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;border-radius:16px;padding:11px;text-align:left;color:inherit;cursor:pointer}.conversation-item:hover,.conversation-item.active{background:rgba(37,99,235,.09)}.conversation-item-avatar{width:38px;height:38px;border-radius:14px;background:rgba(37,99,235,.12);display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.conversation-item span:last-child{min-width:0}.conversation-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-item small{display:block;color:var(--muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg{margin:10px 0}.msg-main{display:flex;align-items:flex-start;gap:10px}.msg.me .msg-main{flex-direction:row-reverse}.msg-bubble{max-width:min(680px,82%);background:var(--card,#fff);border:1px solid rgba(148,163,184,.24);border-radius:18px;padding:10px 12px;box-shadow:0 6px 18px rgba(15,23,42,.05)}.msg.me .msg-bubble{background:rgba(37,99,235,.12);border-color:rgba(37,99,235,.22)}.msg-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.msg-name{border:0;background:transparent;color:inherit;font-weight:800;padding:0;cursor:pointer}.msg-head small{color:var(--muted,#64748b);font-size:12px}.msg-text{white-space:pre-wrap;overflow-wrap:anywhere}.chat-photo{max-width:260px;max-height:220px;border-radius:14px;display:block;margin-top:8px;cursor:zoom-in}.reaction-wrap{position:relative;display:flex;align-items:center;gap:7px;margin-top:7px}.reaction-toggle{border:1px solid rgba(148,163,184,.25);background:rgba(148,163,184,.08);border-radius:999px;padding:4px 7px;cursor:pointer}.reaction-menu{display:none;position:absolute;left:0;bottom:28px;background:var(--card,#fff);border:1px solid rgba(148,163,184,.25);border-radius:999px;padding:6px;box-shadow:0 18px 45px rgba(15,23,42,.18);z-index:40;gap:3px}.reaction-wrap.open .reaction-menu{display:flex}.reaction-menu button{border:0;background:transparent;border-radius:50%;width:30px;height:30px;cursor:pointer}.reaction-menu button:hover{background:rgba(148,163,184,.12)}.reaction-summary{font-size:12px;color:var(--muted,#64748b)}.profile-quick-modal.hidden{display:none}.profile-quick-modal{position:fixed;inset:0;background:rgba(2,6,23,.55);z-index:10000;display:grid;place-items:center;padding:16px}.profile-quick-card{width:min(390px,100%);background:var(--card,#fff);border:1px solid rgba(148,163,184,.25);border-radius:24px;box-shadow:0 28px 80px rgba(2,6,23,.34);position:relative;overflow:hidden}.profile-quick-close{position:absolute;right:10px;top:10px;border:0;background:rgba(255,255,255,.86);border-radius:999px;width:34px;height:34px;font-size:22px;cursor:pointer;z-index:2}.vila-mini-cover{height:70px;background:linear-gradient(135deg,#0f172a,#1d4ed8,#06b6d4)}.vila-mini-head{display:flex;gap:14px;align-items:center;padding:0 18px 12px;margin-top:-22px}.vila-mini-avatar{width:72px;height:72px;border-radius:24px;background:linear-gradient(135deg,#1d4ed8,#06b6d4);display:grid;place-items:center;color:#fff;border:4px solid var(--card,#fff);overflow:hidden;position:relative;flex:0 0 auto}.vila-mini-avatar img{width:100%;height:100%;object-fit:cover}.vila-mini-avatar i{position:absolute;right:4px;bottom:4px;width:12px;height:12px;border-radius:50%;background:#94a3b8;border:2px solid #fff}.vila-mini-avatar i.on{background:#22c55e}.vila-mini-head h3{margin:0}.vila-mini-head p{margin:3px 0 0;color:var(--muted,#64748b)}.vila-mini-profile dl{display:grid;gap:8px;padding:0 18px 18px;margin:0}.vila-mini-profile dl div{display:flex;justify-content:space-between;gap:14px;border-top:1px solid rgba(148,163,184,.18);padding-top:8px}.vila-mini-profile dt{color:var(--muted,#64748b)}.vila-mini-profile dd{margin:0;font-weight:700;text-align:right}.chat-image-lightbox.hidden{display:none}.chat-image-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.84);z-index:10001;display:grid;place-items:center;padding:20px}.chat-image-lightbox img{max-width:92vw;max-height:86vh;border-radius:16px}.lightbox-close{position:fixed;right:18px;top:18px;width:42px;height:42px;border-radius:999px;border:0;background:#fff;font-size:28px;cursor:pointer}html.vila-dark .directory-person-card,html.vila-dark .msg-bubble,html.vila-dark .profile-quick-card,html.vila-dark .reaction-menu{background:#111827;border-color:rgba(255,255,255,.12);color:#e5e7eb}html.vila-dark .msg.me .msg-bubble{background:rgba(59,130,246,.18)}
@media(max-width:780px){.directory-person-card{align-items:flex-start}.directory-person-main{min-width:0}.directory-person-card .btn{padding:8px 10px}.msg-bubble{max-width:calc(100vw - 105px)}.conversation-hub-shell{grid-template-columns:1fr}.conversation-members-panel{display:none}}

/* Stable Chatrooms restoration */
.stable-msg{display:flex;gap:10px;align-items:flex-start;margin:10px 0}.stable-msg.mine{justify-content:flex-end}.stable-msg.mine .msg-body-wrap{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.stable-msg.mine .msg-body-wrap a{color:#fff;text-decoration:underline}.msg-body-wrap{max-width:min(720px,82%);background:var(--card,#fff);border:1px solid rgba(148,163,184,.25);border-radius:18px;padding:10px 12px;box-shadow:0 8px 22px rgba(15,23,42,.06)}.msg-avatar{width:38px;height:38px;border-radius:999px;border:0;overflow:hidden;background:linear-gradient(135deg,#0f172a,#2563eb);color:#fff;font-weight:800;display:grid;place-items:center;flex:0 0 auto;cursor:pointer}.msg-avatar img{width:100%;height:100%;object-fit:cover}.sender-name{border:0;background:transparent;color:inherit;font-weight:800;padding:0;cursor:pointer}.msg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.msg-head small{opacity:.7;font-size:12px}.msg-role{font-size:11px;border-radius:999px;padding:2px 7px;background:rgba(148,163,184,.18)}.msg-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.reaction-wrap{position:relative;display:inline-flex}.reaction-icon{border:1px solid rgba(148,163,184,.35);background:rgba(148,163,184,.12);border-radius:999px;width:30px;height:30px;cursor:pointer}.reaction-popup{position:absolute;bottom:34px;left:0;display:flex;gap:4px;background:var(--card,#fff);border:1px solid rgba(148,163,184,.3);border-radius:16px;padding:6px;box-shadow:0 14px 40px rgba(15,23,42,.22);z-index:50}.reaction-popup button{border:0;background:transparent;font-size:18px;cursor:pointer;border-radius:10px;padding:5px}.reaction-popup button:hover{background:rgba(148,163,184,.18)}.reaction-count{font-size:12px;border-radius:999px;background:rgba(148,163,184,.16);padding:3px 7px}.chat-lightbox{position:fixed;inset:0;background:rgba(2,6,23,.84);display:flex;align-items:center;justify-content:center;z-index:99999;padding:22px;flex-direction:column;gap:12px}.chat-lightbox img{max-width:94vw;max-height:78vh;border-radius:18px;box-shadow:0 20px 80px rgba(0,0,0,.45)}.chat-lightbox-close{position:absolute;right:20px;top:16px;border:0;border-radius:999px;width:42px;height:42px;font-size:28px;background:#fff;color:#0f172a;cursor:pointer}.team-profile-popup{position:fixed;right:18px;bottom:86px;width:min(360px,calc(100vw - 28px));background:var(--card,#fff);color:var(--text,#0f172a);border:1px solid rgba(148,163,184,.3);border-radius:22px;box-shadow:0 24px 80px rgba(15,23,42,.32);z-index:99998;padding:16px}.close-profile{position:absolute;right:10px;top:10px;border:0;border-radius:999px;width:30px;height:30px;background:rgba(148,163,184,.15);cursor:pointer}.profile-pop-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.profile-pop-grid{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:13px}.profile-pop-grid span{color:var(--muted,#64748b)}.conversation-avatar.mini.person img{width:100%;height:100%;object-fit:cover;border-radius:999px}.hidden{display:none!important}@media(max-width:720px){.msg-body-wrap{max-width:86%}.team-profile-popup{left:14px;right:14px;bottom:76px;width:auto}}


/* Chatroom message layout repair: prevents one-letter-per-line wrapping */
.conversation-messages .msg.stable-msg,
.chat-box .msg.stable-msg{
  width:100% !important;
  max-width:100% !important;
  align-self:stretch !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  display:flex !important;
  gap:10px !important;
  box-sizing:border-box !important;
}
.conversation-messages .msg.stable-msg.mine,
.chat-box .msg.stable-msg.mine{
  justify-content:flex-end !important;
}
.conversation-messages .msg.stable-msg .msg-body-wrap,
.chat-box .msg.stable-msg .msg-body-wrap{
  display:block !important;
  width:auto !important;
  min-width:180px !important;
  max-width:min(720px, 78%) !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
.conversation-messages .msg.stable-msg p,
.chat-box .msg.stable-msg p,
.msg-body-wrap p{
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  max-width:100% !important;
  white-space:pre-wrap !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  line-break:auto !important;
  letter-spacing:normal !important;
  margin:6px 0 !important;
}
.conversation-messages .msg.stable-msg .msg-head,
.chat-box .msg.stable-msg .msg-head{
  white-space:normal !important;
}
@media(max-width:720px){
  .conversation-messages .msg.stable-msg .msg-body-wrap,
  .chat-box .msg.stable-msg .msg-body-wrap{
    max-width:calc(100% - 56px) !important;
    min-width:160px !important;
  }
  .conversation-messages .msg.stable-msg.mine .msg-body-wrap,
  .chat-box .msg.stable-msg.mine .msg-body-wrap{
    max-width:86% !important;
  }
}

/* VILA Ops Stability & Cleanup Build */
.vila-version-badge{position:fixed;left:18px;bottom:14px;z-index:850;border:1px solid rgba(148,163,184,.32);background:rgba(15,23,42,.88);color:#fff;border-radius:999px;padding:7px 10px;font-size:11px;box-shadow:0 10px 30px rgba(2,6,23,.25);backdrop-filter:blur(10px);cursor:pointer}.vila-version-badge b{font-weight:800}.vila-global-toast-stack{position:fixed;right:18px;top:82px;z-index:10050;display:grid;gap:10px;max-width:360px}.vila-global-toast{background:#fff;border:1px solid rgba(148,163,184,.28);border-left:5px solid #2563eb;border-radius:16px;padding:12px 14px;box-shadow:0 18px 45px rgba(2,6,23,.18);display:grid;gap:4px}.vila-global-toast b{color:#0f172a}.vila-global-toast span{font-size:13px;color:#475569}.vila-global-toast button{margin-top:6px;border:0;background:#2563eb;color:#fff;border-radius:10px;padding:7px 10px;font-weight:800}.health-list{display:grid;gap:10px}.health-row{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:rgba(148,163,184,.08)}.health-row.ok{border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.07)}.health-row.bad{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.07)}.health-row b{display:block}.health-row small{display:block;color:#64748b;margin-top:3px}.version-panel{display:grid;gap:5px;padding:16px;border-radius:18px;background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(14,165,233,.08));border:1px solid rgba(37,99,235,.18)}.version-panel span{font-weight:800}.quick-actions-grid{display:flex;flex-wrap:wrap;gap:10px}.checklist{display:grid;gap:10px}.checklist label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:rgba(148,163,184,.07)}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:16px;margin-top:16px}.help-hero{background:linear-gradient(135deg,#0f172a,#1d4ed8,#0891b2);color:#fff}.help-hero h1{margin:.25rem 0}.help-hero .eyebrow{background:rgba(255,255,255,.15);color:#fff}.responsive-table{max-width:100%;overflow-x:auto}.vila-stability-build .chat-box,.vila-stability-build .conversation-messages{word-break:normal;overflow-wrap:break-word}.vila-stability-build .chat-message,.vila-stability-build .message-bubble,.vila-stability-build .conversation-message{white-space:normal;word-break:normal;overflow-wrap:break-word}.vila-stability-build .chat-compose{position:sticky;bottom:0;background:var(--card-bg,#fff);z-index:5;padding-top:8px}.vila-stability-build .main{animation:vilaPageFade .16s ease-out}@keyframes vilaPageFade{from{opacity:.88;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:760px){.vila-version-badge{left:12px;bottom:12px;max-width:175px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vila-global-toast-stack{right:10px;left:10px;top:72px;max-width:none}.quick-actions-grid .btn{width:100%}.help-grid{grid-template-columns:1fr}.conversation-hub-shell{min-height:calc(100vh - 120px)}.conversation-detail-panel{min-width:0}.conversation-messages{max-height:calc(100vh - 285px)}}
html.vila-dark .vila-global-toast,.vila-dark .vila-global-toast{background:#111827;border-color:rgba(255,255,255,.14)}html.vila-dark .vila-global-toast b,.vila-dark .vila-global-toast b{color:#f8fafc}html.vila-dark .vila-global-toast span,.vila-dark .vila-global-toast span{color:#cbd5e1}html.vila-dark .chat-compose,.vila-dark .chat-compose{background:#111827}
@media(prefers-reduced-motion:reduce){.vila-stability-build .main{animation:none!important}.launch-card,.card{transition:none!important}}


/* VILA Ops Final Stability Build */
.vila-error-boundary{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:10050;width:min(680px,calc(100% - 28px));background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;border-radius:18px;padding:14px 16px;box-shadow:0 20px 60px rgba(15,23,42,.22);display:grid;gap:8px}.vila-error-boundary b{font-size:15px}.vila-error-boundary span{font-size:13px}.vila-error-boundary div{display:flex;gap:8px;flex-wrap:wrap}.vila-error-boundary button,.stability-retry-btn{border:1px solid rgba(15,23,42,.12);border-radius:10px;background:#fff;padding:7px 10px;cursor:pointer}.skeleton-notice{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(148,163,184,.10),rgba(148,163,184,.30),rgba(148,163,184,.10));background-size:220% 100%;animation:vilaSkeleton 1.2s linear infinite;color:transparent!important}.skeleton-notice::after{content:'Loading…';color:#64748b;position:absolute;left:14px;top:50%;transform:translateY(-50%)}@keyframes vilaSkeleton{to{background-position:-220% 0}}.vila-diagnostics-mini{position:fixed;right:18px;bottom:194px;z-index:9990;width:38px;height:38px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0f172a;color:white;box-shadow:0 12px 36px rgba(15,23,42,.22);cursor:pointer}.safe-wrap-text,.safe-wrap-text *{overflow-wrap:anywhere;word-break:normal;white-space:normal}.diagnostics-output{white-space:pre-wrap;background:#0f172a;color:#dbeafe;border-radius:16px;padding:14px;max-height:300px;overflow:auto}.inventory-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.inventory-grid>div{border:1px solid rgba(148,163,184,.25);border-radius:16px;padding:14px;background:rgba(148,163,184,.07)}.inventory-grid span{display:block;padding:6px 0;border-bottom:1px dashed rgba(148,163,184,.2);font-size:13px}.issue-row{padding:12px;border:1px solid rgba(148,163,184,.25);border-radius:14px;margin:8px 0;background:rgba(148,163,184,.06)}.issue-row small{display:block;color:#64748b}.responsive-table{width:100%;border-collapse:collapse}@media(max-width:760px){.responsive-table thead{display:none}.responsive-table tr{display:block;margin:10px 0;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:10px}.responsive-table td{display:flex;justify-content:space-between;gap:10px;border:0!important}.vila-version-badge{display:none}.vila-diagnostics-mini{right:14px;bottom:180px}.vila-error-boundary{bottom:12px}}.vila-dark .vila-error-boundary,html.vila-dark .vila-error-boundary{background:#431407;color:#fed7aa;border-color:#9a3412}.vila-dark .vila-error-boundary button,html.vila-dark .vila-error-boundary button{background:#111827;color:#e5e7eb;border-color:#374151}


/* Profile required / profile cleanup */
.profile-required-modal{position:fixed;inset:0;z-index:100000;background:rgba(2,6,23,.72);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:18px}.profile-required-modal.hidden{display:none!important}.profile-required-card{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;color:#0f172a;border-radius:24px;box-shadow:0 30px 90px rgba(0,0,0,.4);padding:22px;border:1px solid rgba(148,163,184,.35)}.profile-required-card h2{margin:0 0 6px}.profile-required-avatar-row{display:flex;align-items:center;gap:14px;margin:16px 0}.profile-required-initials{width:86px;height:86px;border-radius:28px;background:linear-gradient(135deg,#0f172a,#2563eb);color:#fff;display:grid;place-items:center;font-size:32px;font-weight:900;overflow:hidden}.profile-required-initials img{width:100%;height:100%;object-fit:cover}.profile-required-card input{width:100%}.profile-required-card .btn{justify-content:center}.avatar-preview-initials{background:linear-gradient(135deg,#0f172a,#2563eb)}.password-match-hint{margin:6px 0 10px}.password-match-hint.good{color:#15803d}.password-match-hint.bad{color:#b91c1c}
html[data-theme="dark"] .profile-required-card,body.dark .profile-required-card{background:#0f172a;color:#e5e7eb;border-color:rgba(255,255,255,.12)}
@media(max-width:720px){.profile-required-card{border-radius:18px;padding:16px}.profile-required-avatar-row{flex-direction:column;align-items:flex-start}}

/* Final Core Stability Lock */
.vila-version-badge{position:fixed;right:12px;bottom:8px;z-index:999;color:#64748b;background:rgba(255,255,255,.82);border:1px solid rgba(148,163,184,.35);border-radius:999px;padding:5px 9px;font-size:11px;backdrop-filter:blur(8px)}.vila-update-banner{position:sticky;top:0;z-index:9999;background:#0f172a;color:#fff;display:flex;gap:10px;align-items:center;justify-content:center;padding:10px 12px}.vila-update-banner button{background:#fff;color:#0f172a;border:0;border-radius:999px;padding:7px 12px;font-weight:800}.vila-soft-error{background:#fff1f2;border:1px solid #fecdd3;color:#881337;border-radius:16px;padding:14px;margin:12px 0}.vila-soft-error button,.vila-soft-error a{display:inline-block;margin:4px 6px 0 0;border:0;border-radius:10px;background:#be123c;color:#fff;text-decoration:none;padding:8px 10px}.vila-toast-stack{position:fixed;right:18px;top:82px;z-index:10050;display:grid;gap:10px}.vila-toast{background:#0f172a;color:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 14px 34px rgba(15,23,42,.28);max-width:340px}.vila-toast b{display:block}.vila-toast span{font-size:13px;color:#dbeafe}.table-wrap{overflow:auto}.chat-message,.message-bubble,.conversation-message{word-break:normal!important;overflow-wrap:anywhere!important;white-space:pre-wrap!important}.conversation-messages{contain:content}.user-avatar-img{object-fit:cover}@media(max-width:740px){.vila-version-badge{display:none}.vila-toast-stack{left:12px;right:12px;top:auto;bottom:80px}.vila-toast{max-width:none}.vila-update-banner{font-size:13px;flex-wrap:wrap}.um-table,.audit-table{min-width:760px}}

/* VILA Ops Unified Modal System */
body.vila-modal-open{overflow:hidden}.vila-modal-root.hidden{display:none!important}.vila-modal-root{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:18px}.vila-modal-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.68);backdrop-filter:blur(10px)}.vila-modal-card{position:relative;width:min(560px,100%);max-height:90vh;overflow:auto;border:1px solid rgba(148,163,184,.25);border-radius:26px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 30px 90px rgba(2,6,23,.45);padding:22px;animation:vilaModalIn .18s ease-out;color:#0f172a}.vila-modal-x{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;border-radius:14px;background:rgba(15,23,42,.06);font-size:24px;line-height:1;cursor:pointer;color:#0f172a}.vila-modal-icon{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-weight:900;font-size:24px;color:#fff;background:linear-gradient(135deg,#1d4ed8,#06b6d4);box-shadow:0 12px 30px rgba(29,78,216,.25);margin-bottom:14px}.vila-modal-icon.success{background:linear-gradient(135deg,#16a34a,#22c55e)}.vila-modal-icon.warning,.vila-modal-icon.question{background:linear-gradient(135deg,#f59e0b,#f97316)}.vila-modal-icon.danger{background:linear-gradient(135deg,#dc2626,#ef4444)}.vila-modal-icon.input{background:linear-gradient(135deg,#7c3aed,#2563eb)}.vila-modal-content h2{margin:0 40px 6px 0;font-size:22px;letter-spacing:-.02em}.vila-modal-content p{margin:0 0 14px;color:#475569;line-height:1.55}.vila-modal-label{display:block;font-weight:800;margin:10px 0 7px;color:#334155}.vila-modal-card input,.vila-modal-card textarea{width:100%;border:1px solid rgba(148,163,184,.45);border-radius:16px;padding:12px 14px;background:#fff;color:#0f172a;font:inherit;box-sizing:border-box}.vila-modal-card textarea{resize:vertical}.vila-modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}.vila-modal-btn{min-width:110px}.vila-modal-btn.danger{background:#dc2626;color:#fff}.vila-modal-btn.primary{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff}.vila-modal-btn.secondary{background:#e2e8f0;color:#0f172a}.vila-modal-root .hidden{display:none!important}@keyframes vilaModalIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
html[data-theme="dark"] .vila-modal-card,body.dark .vila-modal-card,.vila-dark .vila-modal-card{background:linear-gradient(180deg,#111827,#0f172a);color:#e5e7eb;border-color:rgba(255,255,255,.14)}html[data-theme="dark"] .vila-modal-x,body.dark .vila-modal-x,.vila-dark .vila-modal-x{background:rgba(255,255,255,.08);color:#e5e7eb}html[data-theme="dark"] .vila-modal-content p,body.dark .vila-modal-content p,.vila-dark .vila-modal-content p{color:#cbd5e1}html[data-theme="dark"] .vila-modal-label,body.dark .vila-modal-label,.vila-dark .vila-modal-label{color:#e2e8f0}html[data-theme="dark"] .vila-modal-card input,html[data-theme="dark"] .vila-modal-card textarea,body.dark .vila-modal-card input,body.dark .vila-modal-card textarea,.vila-dark .vila-modal-card input,.vila-dark .vila-modal-card textarea{background:#0b1220;color:#e5e7eb;border-color:rgba(255,255,255,.18)}html[data-reduced-motion="true"] .vila-modal-card{animation:none}@media(max-width:640px){.vila-modal-root{align-items:end;padding:0}.vila-modal-card{width:100%;border-radius:26px 26px 0 0;max-height:88vh;padding:20px}.vila-modal-actions{display:grid;grid-template-columns:1fr 1fr}.vila-modal-actions .btn{width:100%;min-width:0}.vila-modal-content h2{font-size:20px}}

/* Unified reason/select modal controls */
.vila-modal-card select,
.vila-modal-card textarea,
.vila-modal-card input{width:100%;border:1px solid rgba(148,163,184,.35);border-radius:14px;padding:12px 14px;background:var(--card-bg,#fff);color:var(--text,#0f172a);font:inherit;outline:none}.vila-modal-card select:focus,.vila-modal-card textarea:focus,.vila-modal-card input:focus{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.14)}.vila-modal-card .note-label{margin-top:12px}.vila-modal-error{margin-top:8px;color:#b91c1c;font-weight:700;font-size:.9rem}.vila-modal-error.hidden{display:none}.vila-modal-card select{appearance:auto}.dark .vila-modal-card select,.dark .vila-modal-card textarea,.dark .vila-modal-card input,html[data-theme="dark"] .vila-modal-card select,html[data-theme="dark"] .vila-modal-card textarea,html[data-theme="dark"] .vila-modal-card input{background:#0f172a;color:#e5e7eb;border-color:rgba(148,163,184,.35)}

/* Notification/menu cleanup + completed profile hiding */
.profile-complete-hidden{display:none!important}.contact-security-card{margin-bottom:16px}.user-menu-dropdown.enhanced-dropdown a[href*="california-privacy"],.user-menu-dropdown.enhanced-dropdown a[href*="privacy-request-status"],.user-menu-dropdown.enhanced-dropdown a[href*="privacy.html"],.user-menu-dropdown.enhanced-dropdown a[href*="cookies.html"]{display:none!important}

/* Time Off Admin Improvements */
.timeoff-admin-edit{margin-top:14px;padding:14px;border:1px solid rgba(148,163,184,.28);border-radius:16px;background:rgba(148,163,184,.08)}.timeoff-admin-edit.hidden{display:none!important}.grid.four{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.timeoff-admin-card .notice.bad,#timeOffBlackoutBanner,#adminTimeOffBlackoutBanner{border-left:5px solid #dc2626;background:#fef2f2;color:#991b1b}.timeoff-request-card small code{display:none}

/* Admin Time-Off Employee Select */
.grid .span-two{grid-column:span 2}.timeoff-form select#manualEmployeeSelect{min-height:44px}.timeoff-form input[readonly]{background:rgba(148,163,184,.10);color:var(--text,#0f172a)}@media(max-width:760px){.grid .span-two{grid-column:span 1}}

/* Advanced Time-Off Features */
.timeoff-section-head{display:flex;align-items:end;justify-content:space-between;gap:14px;flex-wrap:wrap}.timeoff-calendar-title{font-weight:900;font-size:1.1rem;margin:0 0 10px}.timeoff-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(90px,1fr));gap:8px;overflow:auto}.cal-head{font-weight:900;color:#475569;text-align:center;font-size:.82rem}.timeoff-cal-cell{min-height:94px;border:1px solid rgba(148,163,184,.28);border-radius:14px;background:rgba(255,255,255,.72);padding:9px;display:flex;flex-direction:column;gap:5px}.timeoff-cal-cell.empty{background:transparent;border:0}.timeoff-cal-cell.blackout{background:rgba(220,38,38,.08);border-color:rgba(220,38,38,.25)}.cal-tag{display:inline-flex;width:max-content;border-radius:999px;padding:3px 7px;font-size:.72rem;font-weight:800}.cal-tag.approved{background:#dcfce7;color:#166534}.cal-tag.pending{background:#fef3c7;color:#92400e}.cal-tag.rejected{background:#fee2e2;color:#991b1b}.cal-tag.bad{background:#fee2e2;color:#991b1b}.timeoff-conflict-list{margin:0;padding-left:18px}.timeoff-conflict-list li{margin:8px 0}.timeoff-conflict-list li.bad{color:#991b1b}.timeoff-conflict-list li.warn{color:#92400e}.timeoff-conflicts{display:grid;gap:6px;margin:10px 0}.timeoff-timeline{list-style:none;margin:14px 0;padding:0;display:grid;gap:8px}.timeoff-timeline li{border-left:4px solid #cbd5e1;padding:8px 10px;background:rgba(148,163,184,.08);border-radius:10px}.timeoff-timeline li.done{border-color:#16a34a}.timeoff-timeline li.current{border-color:#2563eb}.timeoff-timeline li.rejected{border-color:#dc2626}.timeoff-timeline li.cancelled{border-color:#64748b}.timeoff-timeline b{display:block}.timeoff-timeline span{font-size:.84rem;color:#64748b}.history-row{border:1px solid rgba(148,163,184,.28);border-radius:12px;padding:10px;margin:8px 0}.history-row b{text-transform:capitalize}.history-row small{display:block;color:#64748b}@media(max-width:760px){.timeoff-calendar-grid{grid-template-columns:repeat(7, minmax(130px,1fr));}.timeoff-section-head{align-items:stretch}.timeoff-section-head>div{width:100%}}


/* Time Off request grouping */
.timeoff-request-group{border:1px solid rgba(148,163,184,.28);border-radius:20px;padding:14px;margin:16px 0;background:rgba(248,250,252,.72)}.timeoff-request-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.timeoff-request-group-head h4{margin:0;font-size:1.05rem}.timeoff-request-group-head span{display:inline-grid;place-items:center;min-width:34px;height:28px;border-radius:999px;background:#0f172a;color:#fff;font-weight:800;font-size:.85rem}.timeoff-request-group.pending{border-color:rgba(245,158,11,.35);background:rgba(255,251,235,.7)}.timeoff-request-group.approved{border-color:rgba(34,197,94,.35);background:rgba(240,253,244,.7)}.timeoff-request-group.rejected{border-color:rgba(239,68,68,.35);background:rgba(254,242,242,.7)}.timeoff-request-group.cancelled{border-color:rgba(100,116,139,.35);background:rgba(248,250,252,.9)}.timeoff-order-warning{margin:6px 0 12px}.dark .timeoff-request-group,html[data-theme="dark"] .timeoff-request-group{background:rgba(15,23,42,.72);border-color:rgba(148,163,184,.22)}.dark .timeoff-request-group-head span,html[data-theme="dark"] .timeoff-request-group-head span{background:#e5e7eb;color:#0f172a}
