/* ==========================================================================
   LiveMentorHub Support Trainer — Design System
   ========================================================================== */

:root {
  --navy-950: #0a1526;
  --navy-900: #0e1e36;
  --navy-800: #142948;
  --navy-700: #1c3a63;
  --navy-600: #274d81;
  --blue-600: #2563eb;
  --blue-500: #3b82f6;
  --blue-400: #60a5fa;
  --blue-100: #dbeafe;
  --blue-50: #eff6ff;
  --gold-600: #b8790a;
  --gold-500: #d99a1f;
  --gold-400: #f0ad2f;
  --gold-100: #fdf0d8;
  --gold-50: #fff8ea;
  --green-600: #15803d;
  --green-500: #22c55e;
  --green-100: #dcfce7;
  --red-600: #dc2626;
  --red-500: #ef4444;
  --red-100: #fee2e2;
  --amber-600: #d97706;
  --amber-500: #f59e0b;
  --amber-100: #fef3c7;
  --gray-900: #111827;
  --gray-800: #1f2937;
  --gray-700: #374151;
  --gray-600: #4b5563;
  --gray-500: #6b7280;
  --gray-400: #9ca3af;
  --gray-300: #d1d5db;
  --gray-200: #e5e7eb;
  --gray-100: #f3f4f6;
  --gray-50: #f8fafc;
  --white: #ffffff;

  --surface: #f5f7fb;
  --card: #ffffff;
  --border: #e6eaf1;
  --text-primary: #10192b;
  --text-secondary: #55617a;
  --text-muted: #8994a8;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;

  --shadow-sm: 0 1px 2px rgba(16, 25, 43, 0.06);
  --shadow-md: 0 4px 14px rgba(16, 25, 43, 0.08);
  --shadow-lg: 0 12px 32px rgba(16, 25, 43, 0.12);
  --shadow-card: 0 1px 3px rgba(16, 25, 43, 0.06), 0 1px 2px rgba(16, 25, 43, 0.04);

  --sidebar-w: 236px;

  font-size: 16px;
}

* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  width: 100%;
  /* `clip` prevents horizontal scroll without turning body/html into a
     scroll container, which would break `position: sticky` on the topbar. */
  overflow-x: clip;
  background: var(--surface);
  color: var(--text-primary);
}
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 13px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
#app { min-width: 0; width: 100%; }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }
input, textarea, select { font-family: inherit; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--blue-100); }

.hidden { display: none !important; }

/* Scrollbars */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #c3cbdb; border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: #a6b1c7; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 9px 16px;
  border-radius: var(--radius-sm);
  font-size: 12.5px;
  font-weight: 600;
  border: 1px solid transparent;
  transition: all .15s ease;
  white-space: nowrap;
  line-height: 1.2;
}
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primary {
  background: linear-gradient(135deg, var(--blue-600), var(--navy-700));
  color: #fff;
  box-shadow: 0 2px 8px rgba(37, 99, 235, .25);
}
.btn-primary:hover:not(:disabled) { filter: brightness(1.06); box-shadow: 0 4px 14px rgba(37,99,235,.32); }
.btn-gold {
  background: linear-gradient(135deg, var(--gold-500), var(--gold-600));
  color: #fff;
  box-shadow: 0 2px 8px rgba(217, 154, 31, .3);
}
.btn-gold:hover:not(:disabled) { filter: brightness(1.05); }
.btn-secondary {
  background: var(--white);
  color: var(--text-primary);
  border-color: var(--border);
}
.btn-secondary:hover:not(:disabled) { background: var(--gray-50); border-color: var(--gray-300); }
.btn-ghost { background: transparent; color: var(--text-secondary); }
.btn-ghost:hover:not(:disabled) { background: var(--gray-100); color: var(--text-primary); }
.btn-danger { background: var(--red-500); color: #fff; }
.btn-danger:hover:not(:disabled) { filter: brightness(1.05); }
.btn-sm { padding: 6px 12px; font-size: 11.5px; }
.btn-lg { padding: 12px 22px; font-size: 13.5px; }
.btn-block { width: 100%; }

/* ==========================================================================
   Login
   ========================================================================== */
.login-screen {
  min-height: 100vh; width: 100%;
  display: flex; align-items: center; justify-content: center;
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(59,130,246,.35), transparent 60%),
    radial-gradient(900px 500px at 110% 110%, rgba(217,154,31,.25), transparent 60%),
    linear-gradient(160deg, var(--navy-950), var(--navy-900) 55%, #0c1a30);
  padding: 24px;
}
.login-card {
  width: 100%; max-width: 396px;
  background: rgba(255,255,255,0.98);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  padding: 36px 34px 30px;
  position: relative;
}
.login-logo { width: 120px; height: 120px; object-fit: contain; margin: 0 auto 12px; }
.login-brandrow { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 22px; }
.login-brand-name { font-size: 19px; font-weight: 800; color: var(--navy-900); letter-spacing: .2px; }
.login-brand-tag { font-size: 10.5px; font-weight: 700; letter-spacing: 1.6px; color: var(--gold-600); margin-top: 2px; }
.login-product { font-size: 12px; color: var(--text-secondary); margin-top: 10px; }
.field { margin-bottom: 16px; }
.field label { display: block; font-size: 11.5px; font-weight: 600; color: var(--text-secondary); margin-bottom: 6px; letter-spacing: .2px; }
.field input {
  width: 100%; padding: 11px 13px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13.5px;
  color: var(--text-primary);
  background: var(--gray-50);
  transition: border-color .15s, box-shadow .15s;
}
.field input:focus { outline: none; border-color: var(--blue-500); box-shadow: 0 0 0 3px var(--blue-100); background: #fff; }
.login-error {
  background: var(--red-100); color: var(--red-600);
  border: 1px solid #fecaca;
  padding: 9px 12px; border-radius: var(--radius-sm);
  font-size: 12px; font-weight: 600; margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.login-hint { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--border); font-size: 11px; color: var(--text-muted); text-align: center; line-height: 1.6; }
.login-hint b { color: var(--text-secondary); }
.login-footer { text-align: center; margin-top: 22px; font-size: 10.5px; color: rgba(255,255,255,.55); letter-spacing: .3px; }

/* ==========================================================================
   App shell
   ========================================================================== */
.app-shell {
  display: block;
  min-height: 100vh;
  width: 100%;
}
.sidebar {
  background: linear-gradient(180deg, var(--navy-950), var(--navy-900));
  color: #fff;
  display: flex; flex-direction: column;
  padding: 20px 14px;
  position: fixed; left: 0; top: 0; bottom: 0; height: 100vh; z-index: 1000; overflow-y: auto; overflow-x: hidden;
  min-width: 0; width: var(--sidebar-w); box-sizing: border-box;
}
.sidebar-brand { display: flex; align-items: center; gap: 10px; padding: 4px 8px 18px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 14px; }
.sidebar-logo { width: 42px; height: 42px; padding: 5px; box-sizing: border-box; object-fit: contain; flex: 0 0 42px; background: #fff; border-radius: 11px; box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.sidebar-brand-text { min-width: 0; }
.sidebar-brand-name { font-size: 14.5px; font-weight: 800; line-height: 1.15; }
.sidebar-brand-sub { font-size: 8.5px; font-weight: 700; letter-spacing: 1.4px; color: var(--gold-400); margin-top: 2px; }
.sidebar-label { font-size: 10px; font-weight: 700; letter-spacing: 1.2px; color: rgba(255,255,255,.35); padding: 10px 12px 6px; }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px; border-radius: var(--radius-sm);
  color: rgba(255,255,255,.72);
  font-size: 12.5px; font-weight: 600;
  transition: background .12s, color .12s;
  min-width: 0;
}
.nav-item .ic { width: 16px; height: 16px; flex-shrink: 0; opacity: .85; }
.nav-item span.lbl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.nav-item.active { background: linear-gradient(135deg, rgba(59,130,246,.35), rgba(59,130,246,.12)); color: #fff; box-shadow: inset 0 0 0 1px rgba(96,165,250,.35); }
.sidebar-spacer { flex: 1; }
.sidebar-footer { padding: 12px 12px 4px; border-top: 1px solid rgba(255,255,255,.08); }
.sidebar-footer-title { font-size: 11px; font-weight: 700; color: rgba(255,255,255,.75); }
.sidebar-footer-sub { font-size: 9.5px; color: rgba(255,255,255,.4); margin-top: 2px; margin-bottom: 10px; }
.signout-btn {
  display: flex; align-items: center; gap: 8px; width: 100%;
  padding: 8px 12px; border-radius: var(--radius-sm);
  background: rgba(255,255,255,.06); color: rgba(255,255,255,.85);
  font-size: 12px; font-weight: 600; border: 1px solid rgba(255,255,255,.08);
}
.signout-btn:hover { background: rgba(239,68,68,.18); color: #fff; }

.main {
  margin-left: var(--sidebar-w);
  min-width: 0; width: calc(100% - var(--sidebar-w));
  display: flex; flex-direction: column;
}
.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 28px; background: var(--card); border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 20;
  min-width: 0;
  gap: 12px;
}
.topbar-title { font-size: 18px; font-weight: 800; color: var(--navy-900); min-width: 0; }
.topbar-sub { font-size: 11.5px; color: var(--text-muted); margin-top: 1px; }
.topbar-right { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.user-chip { display: flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 999px; background: var(--gray-50); border: 1px solid var(--border); }
.user-avatar { width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(135deg, var(--blue-500), var(--navy-700)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.user-chip-name { font-size: 12px; font-weight: 700; color: var(--text-primary); }
.user-chip-role { font-size: 9.5px; color: var(--text-muted); }

.content { padding: 24px 28px 48px; min-width: 0; width: 100%; flex: 1; }
.view { min-width: 0; width: 100%; }

/* ==========================================================================
   Generic layout helpers
   ========================================================================== */
.grid { display: grid; gap: 16px; min-width: 0; }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.flex { display: flex; min-width: 0; }
.flex-col { display: flex; flex-direction: column; min-width: 0; }
.gap-8 { gap: 8px; } .gap-12 { gap: 12px; } .gap-16 { gap: 16px; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.mt-8{margin-top:8px;} .mt-12{margin-top:12px;} .mt-16{margin-top:16px;} .mt-24{margin-top:24px;}
.mb-8{margin-bottom:8px;} .mb-12{margin-bottom:12px;} .mb-16{margin-bottom:16px;}
.section-title { font-size: 15.5px; font-weight: 800; color: var(--navy-900); margin: 0 0 4px; }
.section-sub { font-size: 11.5px; color: var(--text-muted); margin: 0 0 16px; }
.muted { color: var(--text-muted); }
.small { font-size: 11px; }

/* ==========================================================================
   Cards
   ========================================================================== */
.card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 18px;
  min-width: 0;
}
.card-pad-lg { padding: 22px 24px; }
.stat-card { display: flex; flex-direction: column; gap: 6px; }
.stat-card .stat-label { font-size: 10.5px; font-weight: 700; letter-spacing: .4px; color: var(--text-muted); text-transform: uppercase; }
.stat-card .stat-value { font-size: 25px; font-weight: 800; color: var(--navy-900); }
.stat-card .stat-foot { font-size: 11px; color: var(--text-secondary); }
.stat-icon-row { display: flex; align-items: center; justify-content: space-between; }
.stat-icon { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 16px; flex-shrink: 0; }

.badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: 999px;
  font-size: 10.5px; font-weight: 700; letter-spacing: .2px;
  white-space: nowrap;
}
.badge-blue { background: var(--blue-100); color: var(--blue-600); }
.badge-gold { background: var(--gold-100); color: var(--gold-600); }
.badge-green { background: var(--green-100); color: var(--green-600); }
.badge-red { background: var(--red-100); color: var(--red-600); }
.badge-amber { background: var(--amber-100); color: var(--amber-600); }
.badge-gray { background: var(--gray-100); color: var(--gray-600); }
.badge-navy { background: var(--navy-800); color: #fff; }

/* Progress bars */
.pbar { width: 100%; height: 8px; border-radius: 999px; background: var(--gray-100); overflow: hidden; }
.pbar > span { display: block; height: 100%; border-radius: 999px; transition: width .35s cubic-bezier(.4,0,.2,1); }
.pbar.thin { height: 6px; }
.pbar-fill-blue { background: linear-gradient(90deg, var(--blue-500), var(--blue-600)); }
.pbar-fill-gold { background: linear-gradient(90deg, var(--gold-400), var(--gold-600)); }
.pbar-fill-green { background: linear-gradient(90deg, #4ade80, var(--green-600)); }
.pbar-fill-red { background: linear-gradient(90deg, #f87171, var(--red-600)); }
.pbar-fill-amber { background: linear-gradient(90deg, #fbbf24, var(--amber-600)); }

.qa-metric { margin-bottom: 12px; }
.qa-metric-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.qa-metric-name { font-size: 11px; font-weight: 700; color: var(--text-secondary); }
.qa-metric-val { font-size: 12px; font-weight: 800; color: var(--navy-900); }

/* ==========================================================================
   Dashboard
   ========================================================================== */
.mastery-hero {
  background: linear-gradient(135deg, var(--navy-950), var(--navy-800) 60%, var(--navy-700));
  border-radius: var(--radius-xl);
  color: #fff; padding: 26px 28px;
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px;
  align-items: center;
  position: relative; overflow: hidden;
}
.mastery-hero::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(500px 260px at 100% 0%, rgba(217,154,31,.25), transparent 60%);
  pointer-events: none;
}
.mastery-hero-value { font-size: 46px; font-weight: 800; line-height: 1; }
.mastery-hero-label { font-size: 11px; font-weight: 700; letter-spacing: .6px; color: rgba(255,255,255,.6); text-transform: uppercase; margin-bottom: 6px; }
.mastery-ring { width: 108px; height: 108px; flex-shrink: 0; }
.dash-progress-row { display: flex; align-items: center; gap: 18px; margin-top: 14px; flex-wrap: wrap; }
.dash-progress-item { font-size: 12px; color: rgba(255,255,255,.85); }
.dash-progress-item b { font-size: 14px; }

.current-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 16px; }
.current-block { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px 16px; background: var(--gray-50); }
.current-block .cb-label { font-size: 10px; font-weight: 700; letter-spacing: .4px; color: var(--text-muted); text-transform: uppercase; margin-bottom: 4px; }
.current-block .cb-title { font-size: 13.5px; font-weight: 700; color: var(--navy-900); }
.current-block .cb-sub { font-size: 11px; color: var(--text-secondary); margin-top: 2px; }

.metric-strip { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 12px; }
.metric-tile { text-align: center; border: 1px solid var(--border); border-radius: var(--radius-md); padding: 12px 8px; background: var(--card); }
.metric-tile .mt-val { font-size: 18px; font-weight: 800; color: var(--navy-900); }
.metric-tile .mt-lbl { font-size: 9.5px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; margin-top: 3px; }

/* ==========================================================================
   Trainings
   ========================================================================== */
.training-row {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--card); margin-bottom: 10px; transition: box-shadow .15s, border-color .15s;
}
.training-row:hover { box-shadow: var(--shadow-md); border-color: #cfd8e8; }
.training-row.locked { opacity: .62; }
.training-num {
  width: 38px; height: 38px; border-radius: 10px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 13px; color: #fff;
  background: linear-gradient(135deg, var(--navy-700), var(--navy-900));
}
.training-num.done { background: linear-gradient(135deg, #4ade80, var(--green-600)); }
.training-num.locked-num { background: var(--gray-300); color: var(--gray-600); }
.training-info { min-width: 0; flex: 1; }
.training-title { font-size: 13.5px; font-weight: 700; color: var(--navy-900); }
.training-desc { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.training-meta { display: flex; gap: 8px; flex-shrink: 0; align-items: center; }
.training-score { font-size: 13px; font-weight: 800; color: var(--navy-900); min-width: 42px; text-align: right; }

.training-detail-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 18px; flex-wrap: wrap; }
.tab-btn { padding: 9px 14px; font-size: 12px; font-weight: 700; color: var(--text-muted); border-bottom: 2px solid transparent; cursor: pointer; }
.tab-btn.active { color: var(--blue-600); border-color: var(--blue-600); }
.tab-btn:hover { color: var(--navy-900); }
.tab-btn-disabled { cursor: default; opacity: .5; }
.tab-btn-disabled:hover { color: var(--text-muted); }

.topic-block { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px 18px; margin-bottom: 12px; background: var(--card); }
.topic-block h4 { margin: 0 0 8px; font-size: 13px; font-weight: 800; color: var(--navy-900); }
.topic-block p { margin: 0 0 8px; font-size: 12.5px; color: var(--text-secondary); line-height: 1.65; }
.topic-block .example-box { background: var(--blue-50); border: 1px solid var(--blue-100); border-radius: var(--radius-sm); padding: 10px 12px; font-size: 12px; color: var(--navy-800); margin-top: 8px; }
.topic-block .example-box b { color: var(--blue-600); }

.obj-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; }
.obj-list li { display: flex; gap: 8px; font-size: 12.5px; color: var(--text-secondary); align-items: flex-start; }
.obj-list li::before { content: "✓"; color: var(--green-600); font-weight: 800; flex-shrink: 0; }

.quiz-q { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px 18px; margin-bottom: 14px; background: var(--card); }
.quiz-q .qq-num { font-size: 10.5px; font-weight: 700; color: var(--blue-600); text-transform: uppercase; letter-spacing: .3px; margin-bottom: 6px; }
.quiz-q .qq-text { font-size: 13px; font-weight: 700; color: var(--navy-900); margin-bottom: 12px; line-height: 1.5; }
.quiz-opt {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 10px 12px; border: 1.5px solid var(--border); border-radius: var(--radius-sm);
  margin-bottom: 8px; font-size: 12.5px; color: var(--text-primary);
  transition: border-color .12s, background .12s;
}
.quiz-opt:hover { border-color: var(--blue-400); background: var(--blue-50); }
.quiz-opt.selected { border-color: var(--blue-600); background: var(--blue-50); box-shadow: 0 0 0 1px var(--blue-600) inset; }
.quiz-opt.correct { border-color: var(--green-600); background: var(--green-100); }
.quiz-opt.incorrect { border-color: var(--red-500); background: var(--red-100); }
.quiz-opt .opt-radio { width: 15px; height: 15px; border-radius: 50%; border: 2px solid var(--gray-400); flex-shrink: 0; margin-top: 1px; position: relative; }
.quiz-opt.selected .opt-radio { border-color: var(--blue-600); }
.quiz-opt.selected .opt-radio::after { content: ""; position: absolute; inset: 2px; border-radius: 50%; background: var(--blue-600); }
.quiz-explain { margin-top: 10px; font-size: 11.5px; padding: 9px 11px; border-radius: var(--radius-sm); background: var(--gray-50); color: var(--text-secondary); border-left: 3px solid var(--blue-400); }

.assessment-result { text-align: center; padding: 30px 20px; }
.assessment-score { font-size: 52px; font-weight: 800; }
.assessment-verdict { font-size: 15px; font-weight: 800; margin-top: 4px; }

.threshold-note { display: flex; gap: 10px; align-items: flex-start; background: var(--gold-50); border: 1px solid var(--gold-100); border-radius: var(--radius-sm); padding: 10px 13px; font-size: 12px; color: var(--gold-600); font-weight: 600; margin-top: 10px; }

/* ==========================================================================
   Scenario Library
   ========================================================================== */
.filter-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; align-items: center; }
.filter-select, .filter-search {
  padding: 8px 12px; border: 1.5px solid var(--border); border-radius: var(--radius-sm);
  font-size: 12px; background: var(--card); color: var(--text-primary);
}
.filter-search { min-width: 200px; flex: 1; }
.filter-select:focus, .filter-search:focus { outline: none; border-color: var(--blue-500); }

.scenario-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.scenario-card {
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--card);
  padding: 16px; display: flex; flex-direction: column; gap: 8px; min-width: 0;
  transition: box-shadow .15s, transform .12s;
}
.scenario-card:not(.locked):hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.scenario-card.locked { background: var(--gray-50); }
.sc-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.sc-card-title { font-size: 13px; font-weight: 700; color: var(--navy-900); line-height: 1.35; }
.sc-card-meta { font-size: 11px; color: var(--text-muted); display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.sc-card-foot { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 8px; border-top: 1px dashed var(--border); }
.sc-lock-note { font-size: 10.5px; color: var(--text-muted); line-height: 1.5; }
.difficulty-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }

/* ==========================================================================
   Practice / Simulation
   ========================================================================== */
.sim-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr) 260px; gap: 16px; align-items: start; min-width: 0; }
.sim-panel { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius-lg); min-width: 0; }
.customer-panel { padding: 16px; }
.customer-avatar { width: 52px; height: 52px; border-radius: 50%; background: linear-gradient(135deg, var(--blue-500), var(--navy-800)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 800; margin: 0 auto 10px; }
.customer-name { text-align: center; font-size: 13.5px; font-weight: 800; color: var(--navy-900); }
.customer-type { text-align: center; font-size: 10.5px; color: var(--text-muted); margin-top: 1px; margin-bottom: 10px; }
.customer-status-pill { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 10.5px; font-weight: 700; padding: 5px 10px; border-radius: 999px; margin: 0 auto 12px; width: fit-content; }
.online-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green-500); box-shadow: 0 0 0 3px rgba(34,197,94,.2); }
.cust-info-block { font-size: 11.5px; margin-bottom: 10px; }
.cust-info-block .lbl { font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; font-size: 9.5px; margin-bottom: 3px; }
.cust-info-block .val { color: var(--text-secondary); line-height: 1.5; }
.emotion-tag { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; }

.chat-col { display: flex; flex-direction: column; min-width: 0; height: calc(100vh - 128px); min-height: 480px; }
.chat-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
.chat-header-title { font-size: 13px; font-weight: 800; color: var(--navy-900); }
.chat-header-sub { font-size: 10.5px; color: var(--text-muted); }
.chat-scroll { flex: 1; overflow-y: auto; padding: 16px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.msg-row { display: flex; flex-direction: column; max-width: 74%; min-width: 0; }
.msg-row.customer { align-self: flex-start; align-items: flex-start; }
.msg-row.trainee { align-self: flex-end; align-items: flex-end; }
.msg-row.system { align-self: center; align-items: center; max-width: 90%; }
.msg-label { font-size: 9px; font-weight: 800; letter-spacing: .5px; color: var(--text-muted); margin-bottom: 3px; padding: 0 4px; }
.msg-bubble { padding: 10px 13px; border-radius: 14px; font-size: 12.5px; line-height: 1.55; word-wrap: break-word; overflow-wrap: anywhere; }
.msg-row.customer .msg-bubble { background: #fff; border: 1px solid var(--border); color: var(--text-primary); border-bottom-left-radius: 4px; box-shadow: var(--shadow-sm); }
.msg-row.trainee .msg-bubble { background: var(--blue-100); color: var(--navy-900); border-bottom-right-radius: 4px; }
.msg-row.system .msg-bubble { background: var(--gray-100); color: var(--text-muted); font-size: 11px; font-weight: 600; padding: 7px 14px; border-radius: 999px; }
.msg-time { font-size: 9px; color: var(--text-muted); margin-top: 3px; padding: 0 4px; }
.typing-indicator { display: flex; gap: 4px; padding: 10px 13px; background: #fff; border: 1px solid var(--border); border-radius: 14px; border-bottom-left-radius: 4px; width: fit-content; }
.typing-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gray-400); animation: typingBounce 1.2s infinite ease-in-out; }
.typing-dot:nth-child(2){ animation-delay: .15s; } .typing-dot:nth-child(3){ animation-delay: .3s; }
@keyframes typingBounce { 0%,60%,100%{ transform: translateY(0); opacity:.5;} 30%{ transform: translateY(-4px); opacity:1;} }

.chat-input-area { border-top: 1px solid var(--border); padding: 12px 14px; flex-shrink: 0; }
.chat-input-row { display: flex; gap: 8px; align-items: flex-end; }
.chat-input-row textarea {
  flex: 1; min-width: 0; resize: none; border: 1.5px solid var(--border); border-radius: var(--radius-md);
  padding: 10px 12px; font-size: 12.5px; font-family: inherit; max-height: 110px; min-height: 40px;
  background: var(--gray-50); color: var(--text-primary);
}
.chat-input-row textarea:focus { outline: none; border-color: var(--blue-500); background: #fff; }
.chat-input-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }
.chat-hint { font-size: 10px; color: var(--text-muted); }
.chat-actions { display: flex; gap: 8px; }

.qa-panel { padding: 16px; position: sticky; top: 76px; }
.qa-live-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.qa-live-title { font-size: 12.5px; font-weight: 800; color: var(--navy-900); }
.live-dot-wrap { display: flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 800; color: var(--red-600); }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--red-600); animation: pulseLive 1.3s infinite; }
@keyframes pulseLive { 0%,100%{opacity:1;} 50%{opacity:.35;} }
.coach-box { margin-top: 4px; padding: 11px 12px; border-radius: var(--radius-sm); font-size: 11.5px; line-height: 1.55; border-left: 3px solid var(--blue-500); background: var(--blue-50); color: var(--navy-800); }
.coach-box.warn { border-color: var(--amber-500); background: var(--amber-100); color: #7a4a04; }
.coach-box.risk { border-color: var(--red-500); background: var(--red-100); color: var(--red-600); }
.coach-box.good { border-color: var(--green-500); background: var(--green-100); color: var(--green-600); }
.patience-block { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.patience-label-row { display: flex; justify-content: space-between; font-size: 11px; font-weight: 700; margin-bottom: 6px; }

/* ==========================================================================
   My Sessions
   ========================================================================== */
.session-row {
  display: grid; grid-template-columns: minmax(0,2fr) repeat(4, minmax(0,1fr)) auto;
  gap: 10px; align-items: center;
  padding: 12px 16px; border: 1px solid var(--border); border-radius: var(--radius-md);
  background: var(--card); margin-bottom: 8px; font-size: 12px;
}
.session-row-head { font-size: 10px; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: .3px; padding: 0 16px; margin-bottom: 6px; }
.session-row:hover { box-shadow: var(--shadow-sm); }
.sess-title { font-weight: 700; color: var(--navy-900); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sess-sub { font-size: 10.5px; color: var(--text-muted); }

/* ==========================================================================
   Modal
   ========================================================================== */
.modal-overlay { position: fixed; inset: 0; background: rgba(10,16,30,.55); display: flex; align-items: center; justify-content: center; z-index: 100; padding: 24px; }
.modal-box { background: #fff; border-radius: var(--radius-lg); max-width: 720px; width: 100%; max-height: 86vh; overflow-y: auto; box-shadow: var(--shadow-lg); min-width: 0; }
.modal-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: #fff; z-index: 2; }
.modal-title { font-size: 15px; font-weight: 800; color: var(--navy-900); }
.modal-close { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 16px; }
.modal-close:hover { background: var(--gray-100); }
.modal-body { padding: 18px 20px 24px; }

/* ---------------- Admin: training access checklist ---------------- */
.access-group { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 12px 14px; }
.access-group-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.access-group-head b { font-size: 12.5px; color: var(--navy-900); }
.access-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 12.5px; cursor: pointer; }
.access-row input { width: 15px; height: 15px; cursor: pointer; flex-shrink: 0; }
.modal-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ==========================================================================
   Certification
   ========================================================================== */
.cert-card { background: linear-gradient(135deg, var(--navy-950), var(--navy-800)); border-radius: var(--radius-xl); padding: 40px; text-align: center; color: #fff; position: relative; overflow: hidden; }
.cert-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(600px 300px at 50% -10%, rgba(217,154,31,.3), transparent 60%); }
.cert-badge-icon { width: 66px; height: 66px; margin: 0 auto 14px; border-radius: 50%; background: linear-gradient(135deg, var(--gold-400), var(--gold-600)); display: flex; align-items: center; justify-content: center; font-size: 28px; box-shadow: 0 8px 24px rgba(217,154,31,.4); }
.cert-title { font-size: 22px; font-weight: 800; position: relative; }
.cert-status { font-size: 12px; font-weight: 800; letter-spacing: 1px; margin-top: 6px; color: var(--gold-400); position: relative; }
.cert-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 26px; position: relative; }
.cert-stat { background: rgba(255,255,255,.06); border-radius: var(--radius-md); padding: 14px; }
.cert-stat .cs-val { font-size: 19px; font-weight: 800; }
.cert-stat .cs-lbl { font-size: 9.5px; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .3px; margin-top: 3px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
  .sim-layout { grid-template-columns: minmax(0,1fr); }
  .qa-panel { position: static; }
  .chat-col { height: auto; }
  .customer-panel { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 16px; align-items: start; }
  .customer-avatar, .customer-name, .customer-type, .customer-status-pill { grid-column: 1 / -1; }
  .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .metric-strip { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .scenario-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .cert-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 860px) {
  .app-shell { grid-template-columns: minmax(0,1fr); }
  .sidebar { position: static; height: auto; flex-direction: row; align-items: center; padding: 10px 12px; overflow-x: auto; overflow-y: hidden; width: 100%; }
  .main { margin-left: 0; }
  .sidebar-brand { border: none; padding: 0 10px 0 0; margin: 0; }
  .sidebar-label { display: none; }
  .nav-list { flex-direction: row; }
  .sidebar-spacer { display: none; }
  .sidebar-footer { display: none; }
  .nav-item span.lbl { display: none; }
  .content { padding: 16px; }
  .grid-2-1 { grid-template-columns: minmax(0,1fr); }
  .current-panel { grid-template-columns: minmax(0,1fr); }
  .mastery-hero { grid-template-columns: minmax(0,1fr); text-align: center; }
  .metric-strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .grid-4, .grid-3, .grid-2 { grid-template-columns: minmax(0,1fr); }
  .scenario-grid { grid-template-columns: minmax(0,1fr); }
  .session-row { grid-template-columns: minmax(0,1fr); }
  .cert-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .topbar { padding: 12px 16px; }
  .msg-row { max-width: 90%; }
}

/* ---------------- Admin report table ---------------- */
.table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-sm); }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 560px; }
.admin-table th, .admin-table td { padding: 10px 14px; text-align: left; white-space: nowrap; }
.admin-table thead th { background: var(--gray-50); color: var(--text-muted); font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; border-bottom: 1px solid var(--border); }
.admin-table tbody tr { border-bottom: 1px solid var(--border); }
.admin-table tbody tr:last-child { border-bottom: none; }
.admin-table tbody tr:hover { background: var(--gray-50); }

/* ==========================================================================
   VOICE PROCESS + SALES ROLEPLAY simulators (virtual tracks)
   ========================================================================== */
.vp-callout, .sr-callout { background: var(--gold-50); border: 1px solid var(--gold-100); color: #7a5b1d; font-size: 12px; line-height: 1.55; border-radius: var(--radius-md); padding: 12px 14px; }
.sr-callout { background: var(--blue-50); border-color: var(--blue-100); color: var(--navy-800); }

.vp-grid, .sr-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.vp-card, .sr-card { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px; cursor: pointer; background: var(--card); transition: border-color .15s, box-shadow .15s, transform .15s; }
.vp-card:hover, .sr-card:hover { border-color: var(--blue-400); box-shadow: var(--shadow-md); transform: translateY(-2px); }
.vp-card-top, .sr-card-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.vp-card-title, .sr-card-title { font-size: 13px; font-weight: 700; color: var(--navy-900); line-height: 1.3; }
.vp-card-sub, .sr-card-sub { font-size: 11px; color: var(--text-secondary); margin-top: 4px; }
.vp-card-foot, .sr-card-foot { font-size: 10.5px; color: var(--text-muted); margin-top: 10px; border-top: 1px solid var(--border); padding-top: 8px; }

.vp-workspace { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 14px; }
.sr-workspace { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 14px; }
.vp-panel, .sr-panel { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--card); overflow: hidden; min-width: 0; }
.vp-panel-head, .sr-panel-head { padding: 11px 14px; border-bottom: 1px solid var(--border); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--navy-700); }
.vp-panel-body, .sr-panel-body { padding: 14px; }
.vp-cust, .sr-cust { display: flex; align-items: center; gap: 10px; }
.vp-avatar, .sr-avatar { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--navy-700), var(--blue-500)); flex-shrink: 0; }
.vp-hint, .sr-hint { background: var(--gold-50); border: 1px solid var(--gold-100); color: #73551e; font-size: 10.5px; line-height: 1.5; border-radius: var(--radius-sm); padding: 10px; }
.sr-open { font-size: 12.5px; font-style: italic; color: var(--navy-900); background: var(--gray-50); border-left: 3px solid var(--blue-400); padding: 10px 12px; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; margin-top: 4px; }

.vp-call, .sr-chat { display: flex; flex-direction: column; min-height: 460px; }
.vp-call-status { display: flex; justify-content: space-between; align-items: center; padding: 11px 14px; border-bottom: 1px solid var(--border); }
.vp-status-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; background: var(--gray-300); margin-right: 7px; }
.vp-status-dot.live { background: var(--green-500); box-shadow: 0 0 0 4px var(--green-100); }
.vp-transcript, .sr-scroll { flex: 1; padding: 14px; overflow: auto; max-height: 380px; background: var(--gray-50); }
.vp-line, .sr-line { margin-bottom: 10px; display: flex; flex-direction: column; }
.vp-line.trainee, .sr-line.me { align-items: flex-end; }
.vp-lbl, .sr-lbl { font-size: 8.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted); margin-bottom: 3px; }
.vp-bubble, .sr-bubble { max-width: 82%; padding: 9px 12px; border-radius: 12px; font-size: 12px; line-height: 1.5; border: 1px solid var(--border); background: var(--card); }
.vp-line.ai .vp-bubble, .sr-line.cust .sr-bubble { border-top-left-radius: 3px; }
.vp-line.trainee .vp-bubble, .sr-line.me .sr-bubble { background: var(--blue-50); border-color: var(--blue-100); border-top-right-radius: 3px; }
.vp-controls { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--border); flex-wrap: wrap; }
.vp-type, .sr-input-row { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--border); }
.vp-type textarea, .sr-input-row textarea { flex: 1; resize: none; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 9px 11px; font: inherit; font-size: 12.5px; outline: none; }
.vp-type textarea:focus, .sr-input-row textarea:focus { border-color: var(--blue-400); box-shadow: 0 0 0 3px var(--blue-50); }
.vp-note { padding: 8px 12px 12px; }
.vp-mic.vp-recording, .btn.vp-recording { background: var(--red-600) !important; color: #fff !important; }

.vp-rubric { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.vp-rubric-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 9px 11px; font-size: 11px; }
.vp-rubric-item b { color: var(--navy-900); }
.sr-brief { border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px; }

@media (max-width: 900px) {
  .vp-grid, .sr-grid { grid-template-columns: 1fr 1fr; }
  .vp-workspace, .sr-workspace { grid-template-columns: 1fr; }
  .vp-rubric { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .vp-grid, .sr-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ADMIN V2
   ========================================================================== */
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--border,#e5e7eb);padding-bottom:8px}
.admin-tab{border:0;background:transparent;padding:10px 14px;border-radius:9px;font:inherit;font-weight:700;color:var(--text-muted,#667085);cursor:pointer}
.admin-tab:hover{background:var(--surface-2,#f5f7fa);color:var(--text,#101828)}
.admin-tab.active{background:var(--navy,#14213d);color:#fff}
.admin-tab-panel{display:none}.admin-tab-panel.active{display:block}
.admin-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--text-muted,#667085)}
.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#98a2b3}
.status-dot.online{background:#12b76a}.status-dot.away{background:#f79009}.status-dot.offline{background:#98a2b3}
.staff-detail-row{display:none;background:var(--surface-2,#f8fafc)}.staff-detail-row td{padding:0!important;border-top:0!important}
.staff-detail-row .staff-detail-inner{padding:0 18px 18px}
.staff-detail-row.open{display:table-row}
.staff-period-tabs{display:flex;gap:6px;margin:14px 0 10px}
.period-tab{border:1px solid var(--border,#d0d5dd);background:#fff;padding:7px 12px;border-radius:7px;font-weight:700;cursor:pointer}
.period-tab.active{background:var(--navy,#14213d);color:#fff;border-color:var(--navy,#14213d)}
.staff-detail-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:8px}
.employee-progress-list{display:grid;gap:10px}
.employee-progress-card{border:1px solid var(--border,#e4e7ec);border-radius:12px;background:#fff;overflow:hidden}
.employee-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}
.employee-progress-body{padding:0 16px 16px}
.assignment-list{display:grid;gap:10px}
.assignment-list-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,2fr) auto;align-items:center;gap:14px;border:1px solid var(--border,#e4e7ec);border-radius:10px;padding:12px 14px}
.assignment-list-current{font-size:12px;color:var(--text-muted,#667085)}
.assignment-modal-intro{padding:12px 14px;border-radius:10px;background:var(--surface-2,#f5f7fa);font-size:13px;line-height:1.5;margin-bottom:12px}
.assignment-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.course-assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:55vh;overflow:auto;padding:2px}
.course-assignment-card{position:relative;display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border,#d0d5dd);border-radius:11px;padding:13px;cursor:pointer;background:#fff;transition:.15s}
.course-assignment-card:hover{border-color:#98a2b3}
.course-assignment-card:has(input:checked){border-color:#344054;box-shadow:0 0 0 2px rgba(52,64,84,.08);background:#f8fafc}
.course-assignment-card input{margin-top:3px}
.course-assignment-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.course-assignment-title{font-weight:800;font-size:13px}
.course-assignment-sub{font-size:11px;color:var(--text-muted,#667085);line-height:1.4}
.course-assignment-count{font-size:10px;font-weight:700;color:#475467;margin-top:3px}
.course-assignment-check{margin-left:auto;opacity:0;color:#12b76a;font-weight:900}
.course-assignment-card:has(input:checked) .course-assignment-check{opacity:1}
@media(max-width:1100px){.admin-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.assignment-list-row{grid-template-columns:1fr}.course-assignment-grid{grid-template-columns:1fr}}
@media(max-width:700px){.admin-kpis,.staff-detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-tabs{overflow:auto;flex-wrap:nowrap}.admin-tab{white-space:nowrap}}

/* ========================================================================== 
   Academy learning hub — enterprise SaaS redesign
   Clean hierarchy inspired by modern enterprise/product interfaces.
   ========================================================================== */
.academy-page { display:flex; flex-direction:column; gap:18px; }
.academy-hero {
  display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:28px; align-items:center;
  padding:30px 32px; border-radius:20px; color:#fff; overflow:hidden;
  background: radial-gradient(500px 220px at 100% 0%, rgba(96,165,250,.18), transparent 70%), linear-gradient(135deg,#0a1526 0%,#12284a 100%);
  box-shadow:0 12px 30px rgba(10,21,38,.12); position:relative;
}
.academy-hero::after { content:""; position:absolute; width:220px; height:220px; right:180px; bottom:-150px; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.academy-eyebrow,.academy-kicker { font-size:10px; font-weight:800; letter-spacing:1.3px; text-transform:uppercase; }
.academy-eyebrow { color:#a9c7f4; }
.academy-eyebrow span { color:#f0ad2f; margin:0 5px; }
.academy-hero h1 { margin:8px 0 8px; font-size:30px; line-height:1.12; letter-spacing:-.7px; }
.academy-hero p { margin:0; max-width:700px; color:rgba(255,255,255,.68); font-size:13px; line-height:1.65; }
.academy-overall { padding:18px; border:1px solid rgba(255,255,255,.1); border-radius:15px; background:rgba(255,255,255,.055); backdrop-filter:blur(8px); }
.academy-overall-label { color:rgba(255,255,255,.55); font-size:9.5px; font-weight:800; letter-spacing:1px; }
.academy-overall-row { display:flex; align-items:baseline; gap:9px; margin:5px 0 10px; }
.academy-overall-row strong { font-size:30px; letter-spacing:-1px; }
.academy-overall-row span { font-size:11px; color:rgba(255,255,255,.58); }
.academy-progress,.academy-dept-progress { height:5px; background:rgba(255,255,255,.12); border-radius:99px; overflow:hidden; }
.academy-progress i,.academy-dept-progress i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#60a5fa,#f0ad2f); }
.academy-section { background:#fff; border:1px solid var(--border); border-radius:18px; padding:25px 26px; box-shadow:var(--shadow-card); }
.academy-section-head,.academy-learning-head { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:18px; }
.academy-kicker { color:var(--blue-600); margin-bottom:5px; }
.academy-section h2,.academy-learning-head h2 { margin:0; color:var(--navy-900); font-size:20px; letter-spacing:-.25px; }
.academy-section-head p,.academy-learning-head p { margin:5px 0 0; color:var(--text-muted); font-size:12px; }
.academy-dept-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.academy-dept-card { min-width:0; display:grid; grid-template-columns:42px minmax(0,1fr) 16px; grid-template-rows:auto 5px; column-gap:12px; row-gap:10px; text-align:left; padding:15px; border:1px solid var(--border); border-radius:14px; background:#fff; color:inherit; transition:.18s ease; }
.academy-dept-card:hover { border-color:#b9c8df; transform:translateY(-1px); box-shadow:0 7px 18px rgba(16,25,43,.07); }
.academy-dept-card.active { border-color:#2563eb; background:linear-gradient(180deg,#f8fbff,#fff); box-shadow:0 0 0 2px rgba(37,99,235,.08); }
.academy-dept-icon { grid-row:1 / 3; width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--gray-50); font-size:19px; }
.academy-dept-card.active .academy-dept-icon { background:var(--blue-50); }
.academy-dept-copy { min-width:0; display:flex; flex-direction:column; gap:3px; }
.academy-dept-title { font-size:13px; font-weight:800; color:var(--navy-900); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.academy-dept-meta { color:var(--text-muted); font-size:10.5px; }
.academy-dept-progress { grid-column:2 / 3; background:var(--gray-100); }
.academy-dept-progress i { background:var(--blue-600); }
.academy-dept-arrow { grid-column:3; grid-row:1 / 3; align-self:center; color:var(--gray-400); font-size:18px; }
.academy-dept-card.active .academy-dept-arrow { color:var(--blue-600); }
.academy-learning-section { padding-bottom:28px; }
.academy-track-progress { flex:0 0 auto; text-align:right; }
.academy-track-progress strong { display:block; color:var(--blue-600); font-size:25px; letter-spacing:-.5px; }
.academy-track-progress span { display:block; color:var(--text-muted); font-size:10px; }
.academy-track-nav { display:flex; gap:7px; overflow-x:auto; padding:3px 0 15px; margin-bottom:4px; scrollbar-width:thin; }
.academy-track-pill { display:inline-flex; align-items:center; gap:9px; flex:0 0 auto; border:1px solid var(--border); background:#fff; color:var(--text-secondary); border-radius:9px; padding:9px 12px; font-size:11.5px; font-weight:700; }
.academy-track-pill strong { color:var(--text-muted); font-size:10px; font-weight:700; }
.academy-track-pill.active { color:var(--blue-600); border-color:#9fc0ff; background:var(--blue-50); box-shadow:0 0 0 1px rgba(37,99,235,.05); }
.academy-track-pill.active strong { color:var(--blue-600); }
.academy-track-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:3px 0 16px; }
.academy-track-summary > div { display:flex; align-items:center; gap:10px; padding:12px 14px; background:var(--gray-50); border:1px solid #edf0f5; border-radius:11px; }
.academy-summary-icon { width:28px; height:28px; display:flex; align-items:center; justify-content:center; border-radius:8px; background:#fff; font-size:12px; box-shadow:var(--shadow-sm); }
.academy-track-summary b { display:block; font-size:11.5px; color:var(--navy-900); }
.academy-track-summary small { display:block; color:var(--text-muted); font-size:9.5px; margin-top:1px; }
.academy-session-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.academy-session-card { border:1px solid var(--border); border-radius:13px; padding:16px; background:#fff; cursor:pointer; transition:.18s ease; min-width:0; }
.academy-session-card:hover { border-color:#b8c9e2; box-shadow:0 8px 20px rgba(16,25,43,.07); transform:translateY(-1px); }
.academy-session-card.locked { cursor:default; opacity:.62; background:#fafbfc; }
.academy-session-card.passed { border-color:#d7eadc; }
.academy-session-top { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.academy-session-number { width:31px; height:31px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:var(--navy-900); color:#fff; font-size:10px; font-weight:800; }
.academy-session-number.done { background:var(--green-100); color:var(--green-600); }
.academy-session-number.locked { background:var(--gray-100); color:var(--gray-500); }
.academy-status { padding:4px 8px; border-radius:99px; font-size:9px; font-weight:800; }
.academy-status.success { background:var(--green-100); color:var(--green-600); }
.academy-status.ready { background:var(--blue-50); color:var(--blue-600); }
.academy-status.muted { background:var(--gray-100); color:var(--gray-500); }
.academy-session-title { margin-top:12px; color:var(--navy-900); font-size:13.5px; font-weight:800; line-height:1.35; }
.academy-session-desc { margin-top:5px; color:var(--text-muted); font-size:10.5px; line-height:1.55; min-height:34px; }
.academy-session-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid #eef1f5; margin-top:14px; padding-top:11px; color:var(--text-muted); font-size:9.5px; }
.academy-session-footer b { color:var(--navy-900); }
.academy-session-action { color:var(--blue-600); font-weight:800; white-space:nowrap; }
.academy-virtual-grid { display:grid; gap:10px; }
.academy-virtual-card { display:flex; align-items:center; gap:15px; border:1px solid #dbe5f5; border-radius:14px; padding:17px; background:linear-gradient(90deg,#f7faff,#fff); cursor:pointer; transition:.18s ease; }
.academy-virtual-card:hover { border-color:#9fc0ff; box-shadow:0 8px 20px rgba(37,99,235,.08); transform:translateY(-1px); }
.academy-virtual-icon { width:46px; height:46px; flex:0 0 46px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--navy-900); color:#fff; font-size:20px; }
.academy-virtual-main { min-width:0; flex:1; }
.academy-virtual-eyebrow { color:var(--blue-600); font-size:9px; font-weight:800; letter-spacing:1px; }
.academy-virtual-title { margin-top:2px; color:var(--navy-900); font-size:14px; font-weight:800; }
.academy-virtual-desc { color:var(--text-muted); font-size:10.5px; line-height:1.5; margin-top:3px; max-width:900px; }
.academy-virtual-cta { flex:0 0 auto; color:var(--blue-600); font-size:10.5px; font-weight:800; white-space:nowrap; }
.academy-empty { grid-column:1/-1; padding:28px; text-align:center; color:var(--text-muted); background:var(--gray-50); border:1px dashed var(--border); border-radius:12px; }
@media (max-width:1000px) { .academy-dept-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .academy-hero { grid-template-columns:1fr; } }
@media (max-width:700px) { .academy-section { padding:18px; } .academy-hero { padding:24px 20px; } .academy-hero h1 { font-size:25px; } .academy-dept-grid,.academy-session-grid,.academy-track-summary { grid-template-columns:1fr; } .academy-learning-head { align-items:flex-start; } .academy-virtual-card { align-items:flex-start; } .academy-virtual-cta { display:none; } }

/* ==========================================================================\n   ACADEMY V4 — FLAT LEARNING HIERARCHY\n   Departments -> Modules -> Sessions. Modules are no longer hidden inside\n   small secondary tabs, making the structure immediately scannable.\n   ========================================================================== */
.academy-dept-card { position:relative; grid-template-columns:30px 42px minmax(0,1fr) 18px; grid-template-rows:auto 5px; padding:16px; column-gap:11px; }
.academy-dept-index { grid-row:1 / 3; align-self:center; color:var(--blue-600); font-size:10px; font-weight:900; letter-spacing:.7px; }
.academy-dept-icon { grid-column:2; grid-row:1 / 3; }
.academy-dept-copy { grid-column:3; }
.academy-dept-progress { grid-column:3 / 4; }
.academy-dept-arrow { grid-column:4; }
.academy-dept-card.active { box-shadow:0 8px 22px rgba(37,99,235,.10); }

.academy-module-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:2px 0 18px; }
.academy-module-card { position:relative; min-width:0; min-height:176px; display:grid; grid-template-columns:34px 42px minmax(0,1fr) auto; grid-template-rows:auto 5px; column-gap:11px; row-gap:13px; align-items:start; text-align:left; padding:18px; border:1px solid var(--border); border-radius:16px; background:#fff; color:inherit; cursor:pointer; transition:.18s ease; overflow:hidden; }
.academy-module-card:hover { border-color:#b6c9e8; transform:translateY(-2px); box-shadow:0 10px 26px rgba(16,25,43,.08); }
.academy-module-card.active { border-color:#7eaeff; background:linear-gradient(180deg,#f7faff 0%,#fff 100%); box-shadow:0 0 0 2px rgba(37,99,235,.08),0 10px 26px rgba(37,99,235,.08); }
.academy-module-card.practice.active { border-color:#e3b75d; box-shadow:0 0 0 2px rgba(240,173,47,.10),0 10px 26px rgba(16,25,43,.08); }
.academy-module-number { color:var(--blue-600); font-size:10px; font-weight:900; letter-spacing:.8px; padding-top:3px; }
.academy-module-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--gray-50); font-size:19px; }
.academy-module-card.active .academy-module-icon { background:var(--blue-50); }
.academy-module-card.practice .academy-module-icon { background:#fff6df; }
.academy-module-body { min-width:0; display:flex; flex-direction:column; gap:4px; }
.academy-module-eyebrow { color:var(--text-muted); font-size:8.5px; font-weight:900; letter-spacing:1px; }
.academy-module-title { color:var(--navy-900); font-size:14px; font-weight:850; line-height:1.3; }
.academy-module-desc { color:var(--text-muted); font-size:10.5px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.academy-module-side { display:flex; align-items:center; gap:8px; color:var(--text-secondary); font-size:10px; font-weight:800; white-space:nowrap; padding-top:2px; }
.academy-module-side b { color:var(--blue-600); font-size:16px; }
.academy-module-progress { grid-column:2 / 5; height:4px; background:var(--gray-100); border-radius:99px; overflow:hidden; }
.academy-module-progress i { display:block; height:100%; border-radius:99px; background:var(--blue-600); }

.academy-selected-module { border:1px solid var(--border); border-radius:16px; background:#fff; padding:20px; }
.academy-selected-module-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid #edf0f5; }
.academy-selected-module-head h3 { margin:4px 0 0; color:var(--navy-900); font-size:17px; letter-spacing:-.2px; }
.academy-selected-module-head p { margin:5px 0 0; color:var(--text-muted); font-size:10.5px; line-height:1.55; max-width:760px; }
.academy-track-summary-inline { flex:0 0 auto; min-width:72px; text-align:right; }
.academy-track-summary-inline b { display:block; color:var(--blue-600); font-size:20px; }
.academy-track-summary-inline span { display:block; color:var(--text-muted); font-size:9px; }
.academy-selected-module .academy-track-summary { margin-top:0; }

@media (max-width:1100px) { .academy-module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) {
  .academy-module-grid { grid-template-columns:1fr; }
  .academy-module-card { min-height:145px; }
  .academy-selected-module { padding:15px; }
  .academy-selected-module-head { align-items:flex-start; }
  .academy-dept-card { grid-template-columns:26px 40px minmax(0,1fr) 16px; }
}

/* ==========================================================================\n   ADMIN ATTENDANCE CALENDAR\n   ========================================================================== */
.attendance-card{overflow:hidden}
.attendance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.attendance-controls{display:flex;gap:6px;align-items:center;flex:0 0 auto}
.attendance-month{min-width:150px;font-weight:800;cursor:default!important}
.attendance-legend{display:flex;gap:16px;flex-wrap:wrap;padding:11px 13px;margin-bottom:14px;border:1px solid var(--border);background:var(--gray-50);border-radius:10px;font-size:11px;color:var(--text-secondary)}
.att-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.att-dot.present{background:#12b76a}.att-dot.late{background:#f79009}.att-dot.short{background:#f04438}.att-dot.open{background:#2563eb}.att-dot.none{background:#d0d5dd}
.attendance-calendar-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px}
.attendance-calendar{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:11px}
.attendance-calendar th,.attendance-calendar td{border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4}
.attendance-calendar thead th{height:55px;background:#f8fafc;color:var(--text-muted);font-weight:700;text-align:center;position:sticky;top:0;z-index:2}
.attendance-calendar thead th span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em}
.attendance-calendar thead th b{display:block;margin-top:3px;font-size:13px;color:var(--navy-900)}
.attendance-calendar .employee-col{width:190px;min-width:190px;text-align:left;padding-left:14px;position:sticky;left:0;z-index:4}
.attendance-calendar .employee-cell{width:190px;min-width:190px;text-align:left;padding:9px 12px;background:#fff;position:sticky;left:0;z-index:3}
.attendance-calendar .employee-cell div{font-size:12px;font-weight:800;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.attendance-calendar .employee-cell small{display:block;margin-top:2px;color:var(--text-muted);font-size:9.5px}
.attendance-calendar thead th.outside,.attendance-calendar td.outside{background:#fafafa;color:#b8bec8}
.att-cell{width:52px;min-width:52px;height:52px;text-align:center;cursor:pointer;transition:.12s;background:#fff}
.att-cell:hover{box-shadow:inset 0 0 0 2px #98a2b3}
.att-cell span{display:block;font-weight:900;font-size:9px}
.att-cell small{display:block;margin-top:3px;font-size:8px;color:inherit;opacity:.8}
.att-cell.present{background:#ecfdf3;color:#087443}.att-cell.late{background:#fff7e8;color:#a15c00}.att-cell.short{background:#fff1f0;color:#b42318}.att-cell.open{background:#eff6ff;color:#175cd3}.att-cell.none{background:#f8fafc;color:#98a2b3}
.att-cell.today{box-shadow:inset 0 0 0 2px #2563eb}
.attendance-day-detail{margin-top:14px}
.attendance-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}
.attendance-detail-head b{display:block;color:var(--navy-900);font-size:13px}.attendance-detail-head span{display:block;margin-top:3px;color:var(--text-muted);font-size:10.5px}
.attendance-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:9px}
.attendance-session{display:flex;flex-direction:column;gap:5px;padding:11px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:10.5px}.attendance-session b{font-size:11px;color:var(--navy-900)}.attendance-session span:not(.badge){color:var(--text-muted)}.attendance-session strong{font-size:14px;color:var(--navy-900)}
.attendance-empty{padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--text-muted);font-size:11px;margin-top:9px}
@media(max-width:900px){.attendance-head{flex-direction:column}.attendance-controls{width:100%;justify-content:flex-start}.attendance-detail-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.attendance-detail-grid{grid-template-columns:1fr}.attendance-month{min-width:125px}}

/* ADMIN ATTENDANCE CALENDAR */
.attendance-card{overflow:hidden}.attendance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.attendance-controls{display:flex;gap:6px;align-items:center;flex:0 0 auto}.attendance-month{min-width:150px;font-weight:800;cursor:default!important}.attendance-legend{display:flex;gap:16px;flex-wrap:wrap;padding:11px 13px;margin-bottom:14px;border:1px solid var(--border);background:var(--gray-50);border-radius:10px;font-size:11px;color:var(--text-secondary)}.att-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:-1px}.att-dot.present{background:#12b76a}.att-dot.late{background:#f79009}.att-dot.short{background:#f04438}.att-dot.open{background:#2563eb}.att-dot.none{background:#d0d5dd}.attendance-calendar-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px}.attendance-calendar{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;font-size:11px}.attendance-calendar th,.attendance-calendar td{border-right:1px solid #edf0f4;border-bottom:1px solid #edf0f4}.attendance-calendar thead th{height:55px;background:#f8fafc;color:var(--text-muted);font-weight:700;text-align:center;position:sticky;top:0;z-index:2}.attendance-calendar thead th span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.attendance-calendar thead th b{display:block;margin-top:3px;font-size:13px;color:var(--navy-900)}.attendance-calendar .employee-col{width:190px;min-width:190px;text-align:left;padding-left:14px;position:sticky;left:0;z-index:4}.attendance-calendar .employee-cell{width:190px;min-width:190px;text-align:left;padding:9px 12px;background:#fff;position:sticky;left:0;z-index:3}.attendance-calendar .employee-cell div{font-size:12px;font-weight:800;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendance-calendar .employee-cell small{display:block;margin-top:2px;color:var(--text-muted);font-size:9.5px}.attendance-calendar thead th.outside,.attendance-calendar td.outside{background:#fafafa;color:#b8bec8}.att-cell{width:52px;min-width:52px;height:52px;text-align:center;cursor:pointer;transition:.12s;background:#fff}.att-cell:hover{box-shadow:inset 0 0 0 2px #98a2b3}.att-cell span{display:block;font-weight:900;font-size:9px}.att-cell small{display:block;margin-top:3px;font-size:8px;color:inherit;opacity:.8}.att-cell.present{background:#ecfdf3;color:#087443}.att-cell.late{background:#fff7e8;color:#a15c00}.att-cell.short{background:#fff1f0;color:#b42318}.att-cell.open{background:#eff6ff;color:#175cd3}.att-cell.none{background:#f8fafc;color:#98a2b3}.att-cell.today{box-shadow:inset 0 0 0 2px #2563eb}.attendance-day-detail{margin-top:14px}.attendance-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}.attendance-detail-head b{display:block;color:var(--navy-900);font-size:13px}.attendance-detail-head span{display:block;margin-top:3px;color:var(--text-muted);font-size:10.5px}.attendance-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:9px}.attendance-session{display:flex;flex-direction:column;gap:5px;padding:11px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:10.5px}.attendance-session b{font-size:11px;color:var(--navy-900)}.attendance-session span:not(.badge){color:var(--text-muted)}.attendance-session strong{font-size:14px;color:var(--navy-900)}.attendance-empty{padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--text-muted);font-size:11px;margin-top:9px}@media(max-width:900px){.attendance-head{flex-direction:column}.attendance-controls{width:100%;justify-content:flex-start}.attendance-detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.attendance-detail-grid{grid-template-columns:1fr}.attendance-month{min-width:125px}}


/* ==========================================================================
   TEAM CHAT — enterprise messaging UI
   ========================================================================== */
.chat-page{display:flex;flex-direction:column;gap:18px;min-height:calc(100vh - 150px)}
.chat-page .card{background:#fff;border:1px solid #e3e8f0;border-radius:20px;box-shadow:0 8px 30px rgba(15,34,65,.05)}
.chat-header{padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.chat-header h2{margin:5px 0 3px;font-size:27px;color:#0b2346}
.chat-header p{margin:0;color:#7b8ba3;font-size:14px}.chat-header-note{font-size:13px;color:#60718b;background:#f5f8fc;border:1px solid #e5ebf3;padding:10px 14px;border-radius:999px;white-space:nowrap}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;color:#2864d7}
.chat-layout{display:grid;grid-template-columns:320px minmax(0,1fr);overflow:hidden;min-height:620px;flex:1}
.chat-sidebar{border-right:1px solid #e7ebf2;background:#fbfcfe;display:flex;flex-direction:column;min-width:0}
.chat-sidebar-head{padding:18px;border-bottom:1px solid #e7ebf2}.chat-sidebar-head>div{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.chat-sidebar-head b{font-size:15px;color:#132744}.chat-sidebar-head small{font-size:11px;color:#93a0b3}.chat-search{width:100%;height:40px;border:1px solid #dfe6ef;background:#fff;border-radius:10px;padding:0 12px;font:inherit;font-size:13px;outline:none}.chat-search:focus{border-color:#8db2ff;box-shadow:0 0 0 3px rgba(40,100,215,.08)}
.chat-contacts{padding:8px;overflow:auto}.chat-contact{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:11px;text-align:left;padding:11px 10px;border-radius:12px;cursor:pointer;color:inherit}.chat-contact:hover{background:#f1f5fa}.chat-contact.active{background:#eaf1ff}.chat-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#173d78,#2c6bdc);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800;flex:0 0 auto}.chat-contact-copy{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}.chat-contact-copy b{font-size:13px;color:#172b49;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-contact-copy small{font-size:11px;color:#8795aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-presence-dot{width:8px;height:8px;border-radius:50%;background:#c9d2df;flex:0 0 auto}.chat-contact.active .chat-presence-dot{background:#22a35a;box-shadow:0 0 0 3px rgba(34,163,90,.1)}
.chat-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;background:#fff}.chat-conversation-head{min-height:72px;padding:14px 20px;border-bottom:1px solid #e7ebf2;display:flex;align-items:center;gap:12px}.chat-conversation-head>div{display:flex;flex-direction:column;gap:3px}.chat-conversation-head b{font-size:14px;color:#132744}.chat-conversation-head small{font-size:11px;color:#8795aa}.chat-messages{padding:24px;overflow:auto;background:linear-gradient(180deg,#fbfcfe 0%,#f7f9fc 100%);display:flex;flex-direction:column;gap:10px}.chat-message-row{display:flex;width:100%}.chat-message-row.mine{justify-content:flex-end}.chat-bubble{max-width:min(70%,620px);padding:11px 13px;border-radius:14px 14px 14px 4px;background:#fff;border:1px solid #e0e6ef;color:#233653;font-size:13px;line-height:1.5;box-shadow:0 3px 10px rgba(15,34,65,.035)}.chat-message-row.mine .chat-bubble{background:#173a70;color:#fff;border-color:#173a70;border-radius:14px 14px 4px 14px}.chat-bubble small{display:block;margin-top:5px;font-size:10px;opacity:.62;text-align:right}.chat-empty,.chat-loading{height:100%;min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8997aa;gap:7px;text-align:center}.chat-empty b{color:#263a57;font-size:15px}.chat-empty span{font-size:12px}.chat-empty-icon{width:54px;height:54px;border-radius:16px;background:#edf3ff;display:grid;place-items:center;font-size:24px;margin-bottom:4px}.chat-composer{border-top:1px solid #e7ebf2;padding:14px;display:flex;gap:10px;background:#fff}.chat-composer textarea{flex:1;resize:none;min-height:44px;max-height:120px;border:1px solid #dce4ee;border-radius:12px;padding:12px 13px;font:inherit;font-size:13px;outline:none}.chat-composer textarea:focus{border-color:#7da5f5;box-shadow:0 0 0 3px rgba(40,100,215,.08)}.chat-composer .btn{align-self:stretch;min-width:92px}.chat-composer-disabled{flex:1;border:1px dashed #d7dfe9;border-radius:12px;padding:12px;color:#96a2b3;font-size:12px;background:#fafbfd}.chat-no-results{padding:30px 12px;text-align:center;color:#9aa6b7;font-size:12px}
@media(max-width:900px){.chat-layout{grid-template-columns:250px}.chat-bubble{max-width:82%}}
@media(max-width:680px){.chat-page{min-height:auto}.chat-header{align-items:flex-start;flex-direction:column}.chat-layout{grid-template-columns:1fr;min-height:700px}.chat-sidebar{border-right:0;border-bottom:1px solid #e7ebf2;max-height:260px}.chat-main{min-height:500px}.chat-contacts{display:grid;grid-template-columns:1fr 1fr}.chat-contact{min-width:0}.chat-bubble{max-width:90%}}

/* ==========================================================================
   Premium login experience
   ========================================================================== */
.premium-login{position:fixed;inset:0;overflow:hidden;background:#061329;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;isolation:isolate}
.login-visual{position:absolute;inset:-5%;z-index:-2;background:radial-gradient(800px 500px at 18% 25%,rgba(38,115,255,.42),transparent 65%),radial-gradient(700px 500px at 88% 75%,rgba(238,165,34,.20),transparent 65%),linear-gradient(135deg,#061329 0%,#0a2347 48%,#071427 100%);transition:filter .7s ease,transform .8s ease}
.login-grid{position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 75%,transparent)}
.login-orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.65}.login-orb-a{width:460px;height:460px;left:-150px;top:-130px;background:radial-gradient(circle at 55% 55%,rgba(39,124,255,.35),transparent 68%)}.login-orb-b{width:520px;height:520px;right:-170px;bottom:-180px;background:radial-gradient(circle at 35% 35%,rgba(237,163,34,.22),transparent 68%)}
.login-glow{position:absolute;inset:0;background:radial-gradient(500px 300px at 50% 50%,rgba(255,255,255,.06),transparent 70%)}
.login-wave{position:absolute;width:75vw;height:190px;left:-8vw;bottom:8vh;border-radius:50%;border-top:1px solid rgba(52,139,255,.45);box-shadow:0 -18px 0 -17px rgba(52,139,255,.3),0 -38px 0 -37px rgba(241,173,43,.18);transform:rotate(-9deg);filter:blur(.2px)}.login-wave-b{left:42vw;bottom:15vh;width:62vw;transform:rotate(8deg);opacity:.55}
.login-splash{width:min(680px,90vw);text-align:center;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:opacity .45s ease,transform .6s ease}.premium-login-logo{width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 16px 28px rgba(0,0,0,.32));margin-bottom:2px}.premium-login-kicker{font-size:12px;letter-spacing:4px;font-weight:800;color:#f2b43c;margin-top:-12px}.login-splash h1{font-size:54px;line-height:1.03;margin:18px 0 12px;font-weight:800;letter-spacing:-1.8px}.login-splash h1 span{color:#2e83ff}.login-splash p{font-size:16px;color:rgba(255,255,255,.68);margin:0;max-width:480px;line-height:1.7}.login-enter{margin-top:36px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;border-radius:999px;padding:13px 20px 13px 24px;font:600 13px Inter;backdrop-filter:blur(14px);box-shadow:0 12px 40px rgba(0,0,0,.22);transition:.2s}.login-enter span{display:inline-block;margin-left:12px;color:#4da0ff;font-size:18px;transition:transform .2s}.login-enter:hover{background:rgba(255,255,255,.12);border-color:rgba(77,160,255,.55)}.login-enter:hover span{transform:translateX(4px)}.login-splash-foot{position:fixed;bottom:24px;display:flex;gap:10px;color:rgba(255,255,255,.42);font-size:10px;letter-spacing:.4px}
.login-modal{position:absolute;width:min(430px,calc(100vw - 36px));padding:38px 38px 28px;border:1px solid rgba(255,255,255,.20);background:linear-gradient(145deg,rgba(20,43,77,.82),rgba(8,23,46,.78));border-radius:28px;box-shadow:0 35px 100px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);opacity:0;transform:translateY(24px) scale(.96);pointer-events:none;transition:opacity .45s ease,transform .55s cubic-bezier(.2,.75,.2,1)}
.login-active .login-visual{filter:blur(14px) saturate(.82);transform:scale(1.07)}.login-active .login-splash{opacity:0;transform:scale(.96);pointer-events:none}.login-active .login-modal{opacity:1;transform:none;pointer-events:auto}
.login-close{position:absolute;right:18px;top:15px;width:30px;height:30px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:rgba(255,255,255,.7);font-size:21px;line-height:1}.login-modal-brand{text-align:center}.login-modal-brand img{width:92px;height:92px;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(0,0,0,.24))}.login-modal-kicker{text-align:center;font-size:9px;letter-spacing:2.2px;font-weight:800;color:#f0b039;margin-top:2px}.login-modal h2{text-align:center;font-size:28px;margin:12px 0 5px;letter-spacing:-.7px}.login-modal-sub{text-align:center;color:rgba(255,255,255,.58);font-size:12.5px;margin:0 0 24px}.premium-field{margin-bottom:15px}.premium-field label{display:block;font-size:10.5px;color:rgba(255,255,255,.68);font-weight:700;margin:0 0 7px}.premium-input{display:flex;align-items:center;height:50px;border-radius:13px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.055);transition:.2s}.premium-input:focus-within{border-color:rgba(67,145,255,.9);box-shadow:0 0 0 4px rgba(43,125,255,.13);background:rgba(255,255,255,.08)}.premium-input>span{width:40px;text-align:center;color:#6daaff;font-size:13px}.premium-input input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#fff;font:500 13px Inter;height:100%;padding:0}.premium-input input::placeholder{color:rgba(255,255,255,.34)}.password-eye{border:0;background:transparent;color:rgba(255,255,255,.55);padding:12px;cursor:pointer}.login-options{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 18px;font-size:10.5px;color:rgba(255,255,255,.62)}.login-options label{display:flex;align-items:center;gap:6px}.login-options input{accent-color:#2f7cf6}.login-help{white-space:nowrap}.premium-signin{width:100%;height:50px;border:0;border-radius:13px;background:linear-gradient(100deg,#1789ff,#2856dc);color:#fff;font:700 13px Inter;box-shadow:0 12px 28px rgba(25,102,236,.30);transition:.2s}.premium-signin span{float:right;margin-right:16px;font-size:17px}.premium-signin:hover{filter:brightness(1.08);transform:translateY(-1px)}.premium-signin:disabled{opacity:.65;transform:none}.premium-login-error{background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.25);color:#fecaca;border-radius:10px;padding:9px 11px;font-size:11px;margin-bottom:14px}.login-security{text-align:center;border-top:1px solid rgba(255,255,255,.09);margin-top:22px;padding-top:16px;color:rgba(255,255,255,.38);font-size:9.5px}

/* Login history — enterprise accordion */
.login-history-page{min-width:0}.login-history-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:6px 2px 22px;position:relative;overflow:hidden}.login-history-hero:after{content:"";position:absolute;right:-90px;top:-90px;width:460px;height:180px;background:radial-gradient(ellipse,rgba(45,125,245,.13),transparent 68%);pointer-events:none}.login-history-hero h2{font-size:27px;margin:7px 0 5px;letter-spacing:-.8px}.login-history-hero p{margin:0;color:var(--text-muted);font-size:12.5px}.login-history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.lh-search{width:320px;height:40px;border:1px solid var(--border);background:#fff;border-radius:11px;display:flex;align-items:center;padding:0 12px;box-shadow:0 2px 8px rgba(14,35,70,.03)}.lh-search span{font-size:17px;color:var(--text-muted);margin-right:8px}.lh-search input{border:0;outline:0;width:100%;font:500 12px Inter;color:var(--text-primary);background:transparent}.lh-toolbar-note{font-size:10.5px;color:var(--text-muted)}.login-history-card{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 8px 30px rgba(14,35,70,.05)}.login-history-head,.login-history-row{display:grid;grid-template-columns:minmax(260px,1.8fr) minmax(120px,.8fr) minmax(190px,1.1fr) minmax(120px,.75fr) minmax(140px,.8fr) 38px;align-items:center;column-gap:18px}.login-history-head{padding:12px 18px;background:linear-gradient(180deg,#f8fafc,#f4f7fb);border-bottom:1px solid var(--border);font-size:9.5px;font-weight:800;letter-spacing:.55px;color:#73849c;text-transform:uppercase}.login-history-employee{border-bottom:1px solid #edf1f6}.login-history-employee:last-child{border-bottom:0}.login-history-row{padding:15px 18px;min-height:70px;cursor:pointer;transition:background .15s}.login-history-row:hover{background:#f8fbff}.lh-employee{display:flex;align-items:center;gap:12px;min-width:0}.lh-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#e8f1ff,#cfe2ff);color:#1760d2;font-size:11px;font-weight:800;flex:none}.lh-employee b{display:block;font-size:12.5px;color:var(--navy-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lh-employee small{display:block;color:var(--text-muted);font-size:10px;margin-top:3px}.lh-last{font-size:11.5px;color:var(--text-secondary)}.lh-metric b{font-size:12px;color:var(--navy-900);display:block}.lh-metric small{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.lh-expand{width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:#fff;color:#54708f;font-size:16px;transition:.2s}.login-history-employee.expanded .lh-expand{transform:rotate(180deg);background:#edf5ff;color:#1766dd;border-color:#b9d4ff}.login-history-detail{display:none;padding:0 18px 18px 68px;background:#f8fbff}.login-history-employee.expanded .login-history-detail{display:block}.lh-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 10px}.lh-detail-head b{display:block;font-size:12px;color:var(--navy-900)}.lh-detail-head span{font-size:9.5px;color:var(--text-muted);margin-left:8px}.lh-detail-table{margin:0;background:#fff;border:1px solid #e4ebf4;border-radius:12px;overflow:hidden}.lh-detail-table th{font-size:9px!important}.lh-detail-table td{font-size:10.5px!important;padding:11px 12px!important}.lh-view-all{border:0;background:transparent;color:#1767df;font:700 10.5px Inter;padding:12px 0 0;cursor:pointer}.empty-state{padding:40px;text-align:center;color:var(--text-muted);font-size:12px}
@media(max-width:900px){.login-history-head{display:none}.login-history-row{grid-template-columns:minmax(220px,1fr) 110px 32px;gap:12px}.login-history-row>.lh-last,.login-history-row>.lh-metric{display:none}.login-history-detail{padding-left:18px}.login-history-hero{align-items:flex-start;flex-direction:column}.login-history-toolbar{align-items:flex-start;flex-direction:column}.lh-search{width:100%}}
@media(max-width:600px){.login-splash h1{font-size:40px}.premium-login-logo{width:150px;height:150px}.login-modal{padding:32px 22px 24px}.login-options{align-items:flex-start;flex-direction:column}.login-help{white-space:normal}.login-splash-foot{display:none}}

/* ========================================================================== 
   V8 PREMIUM LOGIN — welcome first, credentials second
   ========================================================================== */
.premium-login{position:fixed;inset:0;overflow:hidden;background:#06142b;color:#fff;font-family:Inter,sans-serif;isolation:isolate;display:grid;place-items:center}
.login-backdrop{position:absolute;inset:-4%;overflow:hidden;background:radial-gradient(900px 600px at 18% 20%,rgba(31,105,239,.38),transparent 62%),radial-gradient(760px 540px at 85% 82%,rgba(244,170,42,.16),transparent 65%),linear-gradient(135deg,#041127 0%,#0a2450 48%,#06152e 100%);transition:filter .7s ease,transform .9s cubic-bezier(.2,.8,.2,1);z-index:0}
.login-backdrop:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.035),transparent 30%,rgba(255,255,255,.025) 70%,transparent);pointer-events:none}
.login-mesh{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at center,#000 0%,transparent 78%)}
.login-stars{position:absolute;inset:0;opacity:.55;background-image:radial-gradient(circle,rgba(255,255,255,.7) 0 1px,transparent 1.5px);background-size:120px 120px;background-position:20px 30px}
.login-aurora{position:absolute;border-radius:50%;filter:blur(30px);mix-blend-mode:screen}.aurora-a{width:620px;height:620px;left:-180px;top:-190px;background:radial-gradient(circle,rgba(37,119,255,.42),transparent 67%);animation:lmhFloat 12s ease-in-out infinite}.aurora-b{width:680px;height:680px;right:-220px;bottom:-250px;background:radial-gradient(circle,rgba(247,175,45,.20),transparent 67%);animation:lmhFloat 15s ease-in-out infinite reverse}
.login-orbit{position:absolute;border:1px solid rgba(100,168,255,.16);border-radius:50%;transform:rotate(-18deg)}.orbit-a{width:720px;height:280px;left:50%;top:54%;margin:-140px 0 0 -360px}.orbit-b{width:900px;height:360px;left:50%;top:54%;margin:-180px 0 0 -450px;border-color:rgba(255,255,255,.08);transform:rotate(22deg)}
.login-visual-card{position:absolute;width:170px;padding:15px 16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);border-radius:18px;backdrop-filter:blur(18px);box-shadow:0 18px 50px rgba(0,0,0,.22);display:flex;flex-direction:column;gap:3px;animation:lmhCardFloat 7s ease-in-out infinite}.login-visual-card span{font-size:9px;color:#6aa8ff;font-weight:800;letter-spacing:1.5px}.login-visual-card b{font-size:15px}.login-visual-card small{font-size:10px;color:rgba(255,255,255,.55)}.card-a{left:9vw;top:22vh}.card-b{right:9vw;top:28vh;animation-delay:-2.4s}.card-c{right:13vw;bottom:17vh;animation-delay:-4.5s}
.login-splash{position:relative;z-index:2;width:min(720px,90vw);text-align:center;display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:opacity .45s ease,transform .65s cubic-bezier(.2,.8,.2,1)}.premium-login-logo{width:190px;height:190px;object-fit:contain;filter:drop-shadow(0 20px 34px rgba(0,0,0,.34));margin-bottom:-4px}.premium-login-kicker{font-size:11px;letter-spacing:4px;font-weight:800;color:#f2b43c;margin-top:-8px}.login-splash h1{font-size:56px;line-height:1.02;margin:18px 0 12px;font-weight:800;letter-spacing:-2.3px}.login-splash h1 span{background:linear-gradient(90deg,#5ba4ff,#2f6fe8);-webkit-background-clip:text;background-clip:text;color:transparent}.login-splash p{font-size:15px;color:rgba(255,255,255,.66);margin:0;max-width:510px;line-height:1.75}.login-enter{margin-top:34px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.075);color:#fff;border-radius:999px;padding:14px 20px 14px 17px;font:650 13px Inter;backdrop-filter:blur(18px);box-shadow:0 16px 44px rgba(0,0,0,.22);transition:.25s;display:flex;align-items:center;gap:12px}.login-enter:hover{background:rgba(255,255,255,.12);border-color:rgba(92,164,255,.5);transform:translateY(-2px)}.login-enter b{font-size:18px;color:#62aaff;margin-left:8px}.enter-dot{width:8px;height:8px;border-radius:50%;background:#38d39f;box-shadow:0 0 0 5px rgba(56,211,159,.12)}.login-splash-foot{position:fixed;bottom:24px;display:flex;gap:11px;align-items:center;color:rgba(255,255,255,.38);font-size:9.5px;letter-spacing:.35px}.login-splash-foot i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.22)}
.login-modal{position:absolute;z-index:5;width:min(430px,calc(100vw - 34px));padding:34px 36px 25px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(145deg,rgba(247,250,255,.97),rgba(232,240,251,.95));color:#081b39;border-radius:28px;box-shadow:0 42px 120px rgba(0,0,0,.45),0 2px 0 rgba(255,255,255,.8) inset;backdrop-filter:blur(26px);opacity:0;transform:translateY(28px) scale(.95);pointer-events:none;transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.login-active .login-backdrop{filter:blur(18px) saturate(.78);transform:scale(1.075)}.login-active .login-splash{opacity:0;transform:scale(.96) translateY(-10px);pointer-events:none}.login-active .login-modal{opacity:1;transform:none;pointer-events:auto}
.login-close{position:absolute;right:16px;top:15px;width:31px;height:31px;border-radius:50%;border:1px solid #dce5f1;background:#fff;color:#6b7b92;font-size:20px;line-height:1;cursor:pointer}.login-modal-brand{text-align:center}.login-modal-brand img{width:78px;height:78px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(14,49,95,.16))}.login-modal-kicker{text-align:center;font-size:8.5px;letter-spacing:2.2px;font-weight:800;color:#d18b12;margin-top:-1px}.login-modal h2{text-align:center;font-size:27px;margin:10px 0 4px;letter-spacing:-.8px}.login-modal-sub{text-align:center;color:#6d7d95;font-size:11.5px;margin:0 0 22px}.premium-field{margin-bottom:14px}.premium-field label{display:block;font-size:10px;color:#5f718b;font-weight:750;margin:0 0 7px}.premium-input{display:flex;align-items:center;height:52px;border-radius:13px;border:1px solid #d9e2ee;background:#fff;transition:.2s;box-shadow:0 3px 12px rgba(20,50,90,.035)}.premium-input:focus-within{border-color:#3478ed;box-shadow:0 0 0 4px rgba(52,120,237,.11),0 5px 16px rgba(20,50,90,.05)}.field-icon{width:42px;text-align:center;color:#356fd2;font-size:10px;font-weight:800}.premium-input input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#102748;font:500 13px Inter;height:100%;padding:0}.premium-input input::placeholder{color:#9aa8ba}.password-eye{border:0;background:transparent;color:#8191a7;padding:12px;cursor:pointer}.login-options{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0 18px;font-size:9.5px;color:#718098}.login-options label{display:flex;align-items:center;gap:6px}.login-options input{accent-color:#2f70e6}.login-help{white-space:nowrap}.premium-signin{width:100%;height:51px;border:0;border-radius:13px;background:linear-gradient(100deg,#1768e8,#284fbf);color:#fff;font:750 12.5px Inter;box-shadow:0 14px 28px rgba(35,93,203,.24);transition:.2s;cursor:pointer}.premium-signin span{float:right;margin-right:15px;font-size:17px}.premium-signin:hover{filter:brightness(1.04);transform:translateY(-1px)}.premium-signin:disabled{opacity:.65;transform:none}.premium-login-error{background:#fff0f0;border:1px solid #f3c7c7;color:#b33a3a;border-radius:10px;padding:9px 11px;font-size:10.5px;margin-bottom:13px}.login-security{text-align:center;border-top:1px solid #dde5ef;margin-top:20px;padding-top:14px;color:#8492a5;font-size:8.8px}.login-security span{color:#1ba56e;font-weight:800}.login-security i{display:inline-block;width:3px;height:3px;background:#c4cfdd;border-radius:50%;margin:0 8px;vertical-align:middle}
@keyframes lmhFloat{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(24px,-18px,0)}}@keyframes lmhCardFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(max-width:800px){.login-visual-card{display:none}.login-splash h1{font-size:43px}.premium-login-logo{width:155px;height:155px}.login-splash p{font-size:13px;padding:0 15px}.login-splash-foot{display:none}.login-modal{padding:30px 23px 23px}.login-options{align-items:flex-start;flex-direction:column}.login-help{white-space:normal}}

/* ========================================================================== 
   V8 TEAM CHAT visual layer
   ========================================================================== */
.chat-page{display:flex;flex-direction:column;gap:16px}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border:1px solid #e5ebf3!important;box-shadow:0 8px 28px rgba(14,35,70,.045)!important}.chat-header h2{margin:5px 0 4px}.chat-header p{margin:0;color:var(--text-muted);font-size:12px}.chat-layout{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:620px;overflow:hidden;border:1px solid #e5ebf3!important;box-shadow:0 10px 35px rgba(14,35,70,.05)!important}.chat-sidebar{border-right:1px solid #e7edf4;background:linear-gradient(180deg,#fbfcfe,#f7faff)}.chat-sidebar-head{padding:18px;border-bottom:1px solid #e8edf4}.chat-sidebar-head b{display:block;font-size:13px;color:var(--navy-900)}.chat-sidebar-head small{display:block;margin-top:3px;font-size:9.5px;color:var(--text-muted)}.chat-search{margin-top:14px;width:100%;height:38px;border:1px solid #dce5ef;border-radius:10px;background:#fff;padding:0 11px;outline:none;font:500 11px Inter}.chat-search:focus{border-color:#6ca1ed;box-shadow:0 0 0 3px rgba(55,117,225,.09)}.chat-contacts{padding:9px}.chat-item{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;border-radius:12px;padding:10px;cursor:pointer;text-align:left;transition:.15s}.chat-item:hover{background:#edf4ff}.chat-item.active{background:#e6f0ff;box-shadow:inset 3px 0 #2d6fe7}.chat-item-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:10px;font-weight:800;flex:none;background:#e8eef8;color:#49617f}.chat-item-icon.general{background:#e7f8f0;color:#16805b}.chat-item-icon.group{background:#fff1d9;color:#ad6c05}.chat-item-icon.dm{background:#e8efff;color:#2f68cf}.chat-item span:nth-child(2){min-width:0}.chat-item b{display:block;font-size:11.5px;color:#142945;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item small{display:block;font-size:9px;color:#8493a7;margin-top:3px}.chat-main{display:flex;flex-direction:column;min-width:0;background:#fff}.chat-conversation-head{display:flex;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid #e8edf4;background:#fff}.chat-conversation-head .chat-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eaf2ff;color:#2e6cdb;font-size:11px;font-weight:800}.chat-conversation-head b{display:block;font-size:12.5px;color:#132846}.chat-conversation-head small{display:block;font-size:9.5px;color:#8795a7;margin-top:3px}.chat-messages{flex:1;overflow:auto;padding:24px 24px 12px;background:radial-gradient(600px 300px at 50% 0%,#f6faff,transparent 72%)}.chat-message-row{display:flex;flex-direction:column;margin:8px 0}.chat-message-row.mine{align-items:flex-end}.chat-message-row.theirs{align-items:flex-start}.chat-bubble{max-width:min(70%,520px);padding:10px 13px;border-radius:15px;background:#f0f4f9;color:#24364f;font-size:11px;line-height:1.55;box-shadow:0 2px 8px rgba(20,45,80,.035)}.chat-message-row.mine .chat-bubble{background:linear-gradient(135deg,#216fe7,#3158c9);color:#fff;border-bottom-right-radius:5px}.chat-message-row.theirs .chat-bubble{border-bottom-left-radius:5px}.chat-bubble small{display:block;margin-top:5px;font-size:8px;opacity:.6}.chat-composer{display:flex;gap:10px;padding:14px 16px;border-top:1px solid #e8edf4;background:#fff}.chat-composer textarea{flex:1;min-height:44px;max-height:130px;resize:vertical;border:1px solid #dce5ef;border-radius:12px;padding:11px 12px;outline:none;font:500 11px Inter;color:#19304e}.chat-composer textarea:focus{border-color:#6ca1ed;box-shadow:0 0 0 3px rgba(55,117,225,.09)}.chat-empty{height:100%;min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#8493a7;gap:7px}.chat-empty b{color:#18304e;font-size:13px}.chat-empty span{font-size:10px}.chat-empty-icon{width:46px;height:46px;border-radius:15px;background:#edf4ff;color:#3673d6;display:grid;place-items:center;font-weight:800;font-size:18px;margin-bottom:5px}.chat-main-empty{min-height:520px}.chat-no-results{padding:22px 10px;text-align:center;font-size:10px;color:#91a0b2}
@media(max-width:900px){.chat-layout{grid-template-columns:230px}.chat-bubble{max-width:82%}}@media(max-width:680px){.chat-layout{grid-template-columns:1fr;min-height:720px}.chat-sidebar{border-right:0;border-bottom:1px solid #e7ebf2;max-height:290px}.chat-contacts{display:grid;grid-template-columns:1fr 1fr}.chat-bubble{max-width:90%}.chat-header{align-items:flex-start;flex-direction:column}}

/* ============================================================================
   ATTENDANCE + DASHBOARD PROCESS PROGRESS — premium v9 refinement
   ============================================================================ */
.employee-attendance-page{display:flex;flex-direction:column;gap:18px}
.attendance-page-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:2px 2px 4px}
.attendance-page-hero h2{margin:4px 0 5px;font-size:25px;letter-spacing:-.5px;color:var(--navy-900)}
.attendance-page-hero p{margin:0;color:var(--text-muted);font-size:12px}
.attendance-month-controls{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:5px;box-shadow:var(--shadow-card)}
.attendance-month-controls strong{min-width:138px;text-align:center;font-size:12px;color:var(--navy-900)}
.attendance-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.attendance-kpi{display:flex;align-items:center;gap:13px;padding:17px 18px;background:linear-gradient(180deg,#fff,#f9fbfe);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-card)}
.attendance-kpi .kpi-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eef4ff;color:#2563eb;font-size:18px;font-weight:800}
.attendance-kpi .kpi-icon.success{background:#eafaf0;color:#15935a}.attendance-kpi .kpi-icon.leave{background:#fff4e5;color:#d78a13}
.attendance-kpi b{display:block;font-size:22px;line-height:1;color:var(--navy-900);letter-spacing:-.4px}.attendance-kpi span:not(.kpi-icon){display:block;margin-top:5px;font-size:10.5px;font-weight:650;color:#667994}.attendance-kpi em{font-style:normal;font-weight:500;color:#94a1b2}
.employee-calendar-card{padding:20px}.employee-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.employee-day{min-height:92px;text-align:left;border:1px solid #e2e8f1;background:#fff;border-radius:13px;padding:10px 10px 8px;display:flex;flex-direction:column;gap:3px;transition:.16s;cursor:pointer;color:var(--navy-900)}
.employee-day:hover{transform:translateY(-1px);border-color:#9dbcf0;box-shadow:0 7px 18px rgba(23,53,93,.07)}
.employee-day .day-name{font-size:9px;color:#8a98aa;text-transform:uppercase;letter-spacing:.6px;font-weight:750}.employee-day b{font-size:18px;line-height:1}.employee-day small{margin-top:auto;font-size:9px;font-weight:800;letter-spacing:.25px}.employee-day em{font-style:normal;font-size:8.5px;color:#73849a}.employee-day.present{background:linear-gradient(180deg,#f3fcf7,#fff);border-color:#ccebd9}.employee-day.present small{color:#15935a}.employee-day.late{background:linear-gradient(180deg,#fffaf0,#fff);border-color:#f2ddb1}.employee-day.late small{color:#c78111}.employee-day.short{background:linear-gradient(180deg,#fff5f5,#fff);border-color:#f0cccc}.employee-day.short small{color:#c94b4b}.employee-day.open{background:linear-gradient(180deg,#f1f7ff,#fff);border-color:#c9ddfa}.employee-day.open small{color:#2563eb}.employee-day.none{background:#f7f9fb}.employee-day.none small{color:#8b98a8}.employee-day.weekend{background:#f1f3f6;border-color:#e3e7ec;color:#9aa4b2}.employee-day.weekend small{color:#a1a9b4}.employee-day.outside{opacity:.38}.employee-day.today{box-shadow:0 0 0 2px rgba(37,99,235,.2)}
.attendance-day-detail{margin-top:16px}.employee-attendance-page .attendance-detail-head{border-top:1px solid var(--border);padding-top:15px}
.dashboard-process-section{margin:4px 0 20px}.process-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.process-progress-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#fff,#fbfcff);box-shadow:var(--shadow-card)}.process-progress-card.sales{background:linear-gradient(180deg,#fff,#fffdf7)}.process-progress-icon{width:42px;height:42px;border-radius:13px;background:#edf4ff;color:#2563eb;display:grid;place-items:center;font-size:19px;font-weight:800}.process-progress-card.sales .process-progress-icon{background:#fff3d9;color:#c98b18}.process-progress-copy span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.8px;font-weight:800;color:#8a98aa}.process-progress-copy b{display:block;font-size:13px;color:var(--navy-900);margin-top:2px}.process-progress-copy small{display:block;font-size:9.5px;color:var(--text-muted);margin-top:4px}.process-progress-score{font-size:18px;font-weight:800;color:var(--navy-900);text-align:right}.process-progress-score small{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.4px;color:#8b99aa;font-weight:700}
@media(max-width:900px){.attendance-page-hero{align-items:flex-start;flex-direction:column}.attendance-kpi-grid,.process-progress-grid{grid-template-columns:1fr}.employee-calendar-grid{gap:5px}.employee-day{min-height:76px;padding:8px}.process-progress-card{grid-template-columns:38px minmax(0,1fr);}.process-progress-score{display:none}.process-progress-card .btn{grid-column:2;justify-self:start}}
@media(max-width:600px){.attendance-month-controls{width:100%;justify-content:space-between}.attendance-month-controls strong{min-width:0;flex:1}.employee-calendar-grid{grid-template-columns:repeat(7,minmax(40px,1fr));overflow-x:auto}.employee-day{min-width:48px}.employee-day .day-name{font-size:7px}.employee-day b{font-size:14px}.employee-day small{font-size:7px}.attendance-kpi{padding:14px}}
.employee-day.future{background:#fbfcfd;border-color:#edf0f4;color:#aab3bf}.employee-day.future small{color:#b3bac4}.att-employee-meta{display:block;font-style:normal;font-size:8.5px;color:#9aa7b8;margin-top:3px;font-weight:600}
.attendance-admin-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:2px 0 15px}.attendance-admin-kpis>div{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#fbfcfe}.attendance-admin-kpis b{display:block;font-size:20px;line-height:1;color:var(--navy-900)}.attendance-admin-kpis span{display:block;margin-top:5px;font-size:9.5px;color:#718199;font-weight:650}.attendance-admin-kpis em{font-style:normal;color:#a0aaba;font-weight:500}@media(max-width:700px){.attendance-admin-kpis{grid-template-columns:1fr}}

/* v9.1 — course progress replaces attendance metrics inside Employee Progress */
.course-progress-wrap{padding:18px 0 4px;border-top:1px solid #e5eaf2}
.course-progress-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid #e1e7f0;border-radius:18px;background:#f8fafc;margin-bottom:14px}
.course-progress-summary>div:first-child{display:flex;flex-direction:column;gap:3px}.course-progress-summary .eyebrow{font-size:11px;letter-spacing:.12em;color:#6b7c96;font-weight:800}.course-progress-summary b{font-size:24px;color:#0b2345}.course-progress-summary span:last-child{font-size:12px;color:#7c8ca3}.course-progress-summary-score{display:flex;flex-direction:column;align-items:flex-end}.course-progress-summary-score strong{font-size:30px;color:#2563eb;line-height:1}.course-progress-summary-score span{font-size:12px;color:#7c8ca3;margin-top:5px}
.course-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.course-progress-card{padding:15px 16px;border:1px solid #e1e7f0;border-radius:15px;background:#fff}.course-progress-card-top{display:flex;justify-content:space-between;gap:12px}.course-progress-card-top>div{display:flex;flex-direction:column;gap:2px}.course-progress-label{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#7c8ca3;font-weight:800}.course-progress-card-top b{font-size:14px;color:#102847}.course-progress-card-top strong{font-size:18px;color:#2563eb}.course-progress-bar{height:7px;background:#edf1f6;border-radius:999px;overflow:hidden;margin:12px 0 8px}.course-progress-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2563eb,#4f8df7)}.course-progress-meta{display:flex;justify-content:space-between;color:#7c8ca3;font-size:11px;font-weight:600}
@media(max-width:800px){.course-progress-grid{grid-template-columns:1fr}.course-progress-summary{align-items:flex-start}}

/* ============================================================================
   v10 PREMIUM ADMIN + CHAT NOTIFICATIONS
   ============================================================================ */
.topbar-right{gap:10px}
.notification-wrap{position:relative;z-index:30}
.notification-bell{position:relative;width:40px;height:40px;border:1px solid var(--border);border-radius:12px;background:#fff;color:#19345d;display:grid;place-items:center;font-size:20px;cursor:pointer;box-shadow:0 4px 14px rgba(15,35,70,.05);transition:.18s}
.notification-bell:hover,.notification-bell.has-unread{border-color:#b9d2fb;background:#f5f9ff;transform:translateY(-1px)}
.notification-badge{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#2563eb;color:#fff;border:2px solid #fff;font-size:8px;font-weight:800;display:grid;place-items:center}
.notification-panel{position:absolute;right:0;top:48px;width:360px;background:#fff;border:1px solid #dfe6f0;border-radius:18px;box-shadow:0 22px 60px rgba(15,35,70,.18);overflow:hidden;opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:.18s}
.notification-panel[data-open="1"]{opacity:1;transform:none;pointer-events:auto}
.notification-panel-head{display:flex;align-items:center;justify-content:space-between;padding:15px 16px;border-bottom:1px solid #edf1f6;background:linear-gradient(180deg,#fff,#f9fbfe)}
.notification-panel-head>div{display:flex;flex-direction:column;gap:3px}.notification-panel-head b{font-size:13px;color:var(--navy-900)}.notification-panel-head small{font-size:9.5px;color:#8a98aa}.notification-panel-head>button{border:0;background:transparent;color:#2563eb;font:700 9.5px Inter;cursor:pointer}.notification-panel-actions{display:flex;align-items:center;gap:10px}.notification-panel-actions button:disabled{opacity:.65;cursor:default}.notification-panel-actions button.enabled{color:#15935a}
.notification-list{max-height:420px;overflow:auto}.notification-item{width:100%;border:0;background:#fff;text-align:left;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid #f0f3f7;cursor:pointer;position:relative}.notification-item:hover{background:#f7faff}.notification-item.unread{background:#f8fbff}.notification-item-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none;font-size:12px;font-weight:800;background:#edf4ff;color:#2563eb}.notification-item-icon.dm{background:#eef8f4;color:#15935a}.notification-item-copy{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}.notification-item-copy b{font-size:11px;color:#172b49}.notification-item-copy small{font-size:10px;color:#718199;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item-copy em{font-size:8.5px;color:#9aa7b8;font-style:normal}.notification-unread-dot{width:7px;height:7px;border-radius:50%;background:#2563eb;flex:none;margin-top:7px;box-shadow:0 0 0 4px rgba(37,99,235,.09)}
.notification-empty{min-height:150px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#8492a6}.notification-empty>span{width:38px;height:38px;border-radius:12px;background:#eef8f3;color:#15935a;display:grid;place-items:center;font-weight:900;margin-bottom:3px}.notification-empty b{font-size:11px;color:#344a67}.notification-empty small{font-size:9px}
.chat-notification-toasts{position:fixed;right:22px;bottom:22px;z-index:100;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.chat-notification-toast{width:330px;display:flex;align-items:flex-start;gap:10px;text-align:left;border:1px solid #dbe5f3;background:rgba(255,255,255,.96);border-radius:15px;padding:12px 13px;box-shadow:0 18px 45px rgba(12,35,70,.18);cursor:pointer;animation:lmhToastIn .25s ease}.chat-notification-toast .toast-icon{width:30px;height:30px;border-radius:10px;background:#edf4ff;display:grid;place-items:center;flex:none}.chat-notification-toast span:not(.toast-icon){display:flex;flex-direction:column;gap:3px;min-width:0}.chat-notification-toast b{font-size:10.5px;color:#142a4b}.chat-notification-toast small{font-size:9.5px;color:#718199;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:245px}@keyframes lmhToastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Admin tabs */
.admin-tabs{display:flex;gap:7px;padding:5px;background:#eef3f9;border:1px solid #e0e7f0;border-radius:14px;margin-bottom:16px;overflow:auto}.admin-tab{border:0;background:transparent;color:#718199;padding:10px 14px;border-radius:10px;font:700 11px Inter;white-space:nowrap;cursor:pointer;transition:.18s}.admin-tab:hover{color:#1c4e91;background:rgba(255,255,255,.7)}.admin-tab.active{background:#102b50;color:#fff;box-shadow:0 6px 18px rgba(16,43,80,.16)}
.admin-section-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px;padding:4px 2px}.admin-section-hero h2{margin:5px 0 4px;font-size:25px;letter-spacing:-.7px;color:var(--navy-900)}.admin-section-hero p{margin:0;color:var(--text-muted);font-size:11.5px}.admin-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}.admin-summary-card{padding:15px 16px;border:1px solid #e0e7f0;border-radius:15px;background:linear-gradient(180deg,#fff,#fafcff);box-shadow:0 5px 20px rgba(20,43,75,.035)}.admin-summary-card span{display:block;font-size:8.5px;text-transform:uppercase;letter-spacing:.8px;font-weight:800;color:#8a98aa}.admin-summary-card b{display:block;font-size:23px;line-height:1.05;color:#102b50;margin-top:7px}.admin-summary-card small{display:block;font-size:9px;color:#91a0b3;margin-top:4px}.admin-summary-card.blue{background:linear-gradient(180deg,#f8fbff,#fff);border-color:#d9e7fb}.admin-summary-card.gold{background:linear-gradient(180deg,#fffdf7,#fff);border-color:#f1e5c5}
.employee-progress-list{display:flex;flex-direction:column;gap:9px}.employee-progress-card{border:1px solid #e0e7f0;border-radius:15px;background:#fff;overflow:hidden;transition:.18s}.employee-progress-card:hover{border-color:#c9d9ee;box-shadow:0 7px 22px rgba(20,43,75,.05)}.employee-progress-head{display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(180px,1fr) auto;align-items:center;gap:16px;padding:15px 16px}.employee-progress-identity{display:flex;align-items:center;gap:11px;min-width:0}.employee-progress-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#edf4ff,#dceaff);color:#205cae;display:grid;place-items:center;font-size:11px;font-weight:900;flex:none}.employee-progress-identity b{display:block;font-size:12.5px;color:#142a4b}.employee-progress-identity small{display:block;margin-top:3px;font-size:9px;color:#8b99aa}.employee-progress-inline{display:flex;align-items:center;gap:9px}.employee-progress-inline .mini-bar{width:110px;height:7px;background:#edf1f6;border-radius:999px;overflow:hidden}.employee-progress-inline .mini-bar span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#4d8ef6);border-radius:999px}.employee-progress-inline strong{font-size:12px;color:#2563eb}.employee-progress-chips{display:flex;flex-wrap:wrap;gap:5px}.employee-progress-chip{padding:4px 7px;border-radius:999px;background:#f3f6fa;color:#667994;font-size:8px;font-weight:800}.employee-progress-body{padding:0 16px 16px}.course-progress-wrap{padding-top:14px}
.assignment-list{display:flex;flex-direction:column;gap:8px}.assignment-list-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) auto;align-items:center;gap:15px;padding:13px 14px;border:1px solid #e1e7ef;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfcfe)}.assignment-list-row:hover{border-color:#c9d9ee;box-shadow:0 5px 18px rgba(20,43,75,.04)}.assignment-identity{display:flex;align-items:center;gap:10px;min-width:0}.assignment-avatar{width:34px;height:34px;border-radius:11px;background:#edf4ff;color:#205cae;display:grid;place-items:center;font-size:10px;font-weight:900}.assignment-list-row>b,.assignment-identity b{font-size:11.5px;color:#152b4b}.assignment-list-current{font-size:9.5px;color:#718199;line-height:1.6}.assignment-course-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:999px;background:#f1f5fa;margin:2px 4px 2px 0;color:#45607e;font-size:8px;font-weight:750}.assignment-course-pill.done{background:#edf8f2;color:#148455}.assignment-course-pill.pending{background:#fff7e6;color:#ae7616}
.course-assignment-modal-intro{padding:12px 14px;border-radius:12px;background:#f6f9fd;border:1px solid #e1e8f1}.course-assignment-modal-intro b{font-size:13px;color:#122b4f}.course-assignment-modal-intro p{margin:3px 0 0;font-size:9px;color:#8190a5}
@media(max-width:900px){.notification-panel{right:-50px}.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-progress-head,.assignment-list-row{grid-template-columns:1fr}.employee-progress-inline{justify-content:flex-start}.assignment-list-row .btn{justify-self:start}}
@media(max-width:600px){.notification-panel{position:fixed;right:10px;left:10px;top:60px;width:auto}.chat-notification-toasts{left:12px;right:12px;bottom:12px;align-items:stretch}.chat-notification-toast{width:auto}.admin-summary-grid{grid-template-columns:1fr 1fr}.admin-tab{padding:9px 11px}.admin-section-hero{align-items:flex-start;flex-direction:column}}
.login-trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 20px}.login-trust-row span{display:flex;align-items:center;justify-content:center;gap:5px;min-height:31px;border:1px solid #dce6f2;background:rgba(255,255,255,.58);border-radius:9px;color:#71839b;font-size:8px;font-weight:750;white-space:nowrap}.login-trust-row i{font-style:normal;color:#2581ea;font-size:10px}.login-modal:after{content:"";position:absolute;left:36px;right:36px;bottom:64px;height:1px;background:linear-gradient(90deg,transparent,#dce5f0,transparent);pointer-events:none}
@media(max-width:600px){.login-trust-row{grid-template-columns:1fr}.login-trust-row span{justify-content:flex-start;padding:0 10px}.login-modal:after{left:22px;right:22px}}

/* Team Chat — unread state + Gmail-style minimized conversation */
.chat-item{position:relative}
.chat-item.unread{background:#fff8eb;box-shadow:inset 3px 0 #f59e0b}
.chat-item.unread:hover{background:#fff4df}
.chat-item.unread b{color:#0f2747;font-weight:800}
.chat-item.unread small{color:#b56b00;font-weight:700}
.chat-item.unread .chat-item-icon{background:#fff0d2;color:#b86b00}
.chat-unread-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;flex:none;margin-left:auto;box-shadow:0 0 0 4px rgba(245,158,11,.10)}
.chat-conversation-title{min-width:0;flex:1}
.chat-window-btn{width:30px;height:30px;border:1px solid #e1e7ef;border-radius:9px;background:#fff;color:#5d6e84;font-size:20px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:.15s}
.chat-window-btn:hover{background:#f5f8fc;border-color:#cdd8e6;color:#17345d;transform:translateY(-1px)}
.chat-layout.chat-is-minimized .chat-main{display:none}
.chat-layout.chat-is-minimized{grid-template-columns:280px;min-height:520px}
.chat-minimized-dock{position:fixed;right:24px;bottom:24px;z-index:95;width:300px;min-height:58px;display:flex;align-items:center;gap:10px;padding:9px 10px 9px 9px;border:1px solid #dbe3ee;border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 18px 50px rgba(14,35,70,.20);cursor:pointer;text-align:left;transition:.18s}
.chat-minimized-dock:hover{transform:translateY(-2px);box-shadow:0 22px 58px rgba(14,35,70,.24)}
.chat-dock-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eaf2ff;color:#2e6cdb;font-size:11px;font-weight:800;flex:none}
.chat-dock-copy{min-width:0;display:flex;flex-direction:column;gap:3px;flex:1}
.chat-dock-copy b{font-size:11.5px;color:#132846;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-dock-copy small{font-size:9px;color:#8795a7}
.chat-dock-expand{width:26px;height:26px;border-radius:8px;background:#f1f5fa;color:#52667f;display:grid;place-items:center;font-size:15px;font-weight:800}
.chat-minimized-dock.unread{border-color:#f4c56a;box-shadow:0 18px 50px rgba(154,99,16,.18)}
.chat-minimized-dock.unread .chat-dock-avatar{background:#fff0d2;color:#b86b00}
.chat-minimized-dock.unread .chat-dock-copy b{font-weight:800}
.chat-minimized-dock.unread .chat-dock-copy small{color:#b56b00;font-weight:700}
.chat-dock-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 0 4px rgba(245,158,11,.10);flex:none}
@media(max-width:680px){.chat-minimized-dock{left:12px;right:12px;bottom:12px;width:auto}.chat-layout.chat-is-minimized{grid-template-columns:1fr}.chat-layout.chat-is-minimized .chat-sidebar{max-height:calc(100vh - 230px)}}

/* ==========================================================================
   NEWS & ANNOUNCEMENTS — landing-page rotating ribbons
   ========================================================================== */
.news-announcements{margin:0 0 16px;padding:17px 18px 14px;background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 26px rgba(14,35,70,.045);overflow:hidden}
.news-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 2px 11px}.news-section-head .section-title{font-size:15px;margin-top:2px}.news-rotation-note{font-size:9.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px;white-space:nowrap}.news-live-dot{width:6px;height:6px;border-radius:50%;background:#28a36a;box-shadow:0 0 0 4px rgba(40,163,106,.10)}
.news-carousel{position:relative;min-height:86px}.news-ribbon{position:absolute;inset:0;display:flex;align-items:center;gap:14px;padding:13px 15px;border:1px solid #dfe8f4;border-radius:14px;background:linear-gradient(100deg,#f7fbff,#fff);opacity:0;transform:translateX(18px);pointer-events:none;transition:opacity .42s ease,transform .42s cubic-bezier(.2,.75,.2,1);overflow:hidden}.news-ribbon:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#2e83ff}.news-ribbon.active{opacity:1;transform:none;pointer-events:auto}.news-ribbon.gold:before{background:#e6a52b}.news-ribbon.green:before{background:#2da66c}.news-ribbon-mark{width:36px;height:36px;display:grid;place-items:center;flex:none;border-radius:11px;background:#eaf3ff;color:#1767df;font-size:11px;font-weight:800}.news-ribbon.gold .news-ribbon-mark{background:#fff5df;color:#a46b08}.news-ribbon.green .news-ribbon-mark{background:#e9f8f0;color:#16804e}.news-ribbon-copy{min-width:0;flex:1}.news-tag{display:block;font-size:8.5px;line-height:1;text-transform:uppercase;letter-spacing:.75px;font-weight:800;color:#2e73d5;margin-bottom:5px}.news-ribbon.gold .news-tag{color:#a46b08}.news-ribbon.green .news-tag{color:#16804e}.news-ribbon-copy h3{font-size:13px;line-height:1.25;color:var(--navy-900);margin:0 0 4px;font-weight:800}.news-ribbon-copy p{font-size:10.5px;line-height:1.45;color:var(--text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.news-ribbon-meta{font-size:9px;color:#7a8da6;font-weight:700;white-space:nowrap;padding-left:8px}.news-dots{display:flex;justify-content:center;gap:5px;margin-top:10px}.news-dot{width:5px;height:5px;padding:0;border:0;border-radius:999px;background:#cbd7e7;cursor:pointer;transition:.25s}.news-dot.active{width:18px;background:#2e83ff}.news-ribbon.gold + .news-ribbon{}
@media(max-width:700px){.news-section-head{align-items:flex-start}.news-rotation-note{display:none}.news-carousel{min-height:112px}.news-ribbon{align-items:flex-start;padding:12px}.news-ribbon-meta{display:none}.news-ribbon-copy p{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}

/* --------------------------------------------------------------------------
   ADMIN — News & Announcements manager
   -------------------------------------------------------------------------- */
.admin-news-form{margin-top:2px}.admin-news-form-grid{display:grid;grid-template-columns:1fr 180px;gap:14px}.admin-news-form-grid label{display:flex;flex-direction:column;gap:6px}.admin-news-form-grid label span{font-size:10px;font-weight:800;letter-spacing:.45px;text-transform:uppercase;color:#71839a}.admin-news-form-grid input,.admin-news-form-grid textarea,.admin-news-form-grid select{width:100%;box-sizing:border-box;border:1px solid #dbe4ef;border-radius:11px;background:#fbfdff;padding:11px 12px;font:inherit;font-size:12px;color:var(--navy-900);outline:none;transition:border-color .2s,box-shadow .2s}.admin-news-form-grid textarea{resize:vertical;min-height:82px;line-height:1.5}.admin-news-form-grid input:focus,.admin-news-form-grid textarea:focus,.admin-news-form-grid select:focus{border-color:#8db8f6;box-shadow:0 0 0 3px rgba(46,131,255,.09)}.admin-news-form-grid .span-2{grid-column:1/-1}.admin-news-toggle{align-self:end;flex-direction:row!important;align-items:center;gap:9px!important;padding:0 2px 11px}.admin-news-toggle input{width:16px;height:16px;margin:0;accent-color:#2e83ff}.admin-news-toggle span{text-transform:none!important;letter-spacing:0!important;font-size:11px!important;color:#50647d!important;font-weight:700!important}.admin-news-form-actions{display:flex;align-items:center;gap:9px;margin-top:15px;padding-top:14px;border-top:1px solid #edf2f7}.admin-news-form-actions .small{margin-left:auto}.admin-news-count{min-width:74px;text-align:right}.admin-news-count b{display:block;font-size:24px;line-height:1;color:var(--navy-900)}.admin-news-count span{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:#7c8ea4;font-weight:800}.admin-news-list{display:flex;flex-direction:column;gap:9px;margin-top:15px}.admin-news-row{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid #e4ebf4;border-radius:13px;background:#fbfdff}.admin-news-row.draft{opacity:.72}.admin-news-status{display:flex;align-items:center;gap:8px}.admin-news-tone{width:9px;height:34px;border-radius:999px;background:#2e83ff;display:block}.admin-news-tone.gold{background:#e6a52b}.admin-news-tone.green{background:#2da66c}.admin-news-copy{min-width:0}.admin-news-title-line{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.admin-news-title-line b{font-size:12.5px;color:var(--navy-900)}.admin-news-title-line small{font-size:9px;text-transform:uppercase;letter-spacing:.55px;color:#2e73d5;font-weight:800}.admin-news-copy p{font-size:10.5px;color:#5e7189;margin:5px 0 4px;line-height:1.45}.admin-news-copy>span{font-size:9px;color:#8797aa}.admin-news-actions{display:flex;gap:6px;align-items:center}.btn-danger{border:1px solid #f0caca!important;background:#fff7f7!important;color:#c24b4b!important}.admin-news-empty{padding:34px 20px;text-align:center;border:1px dashed #d9e3ef;border-radius:14px;background:#fbfdff;margin-top:15px}.news-empty-icon{width:40px;height:40px;margin:0 auto 10px;border-radius:12px;display:grid;place-items:center;background:#eef5ff;color:#347fe8;font-size:16px}.admin-news-empty b{display:block;color:var(--navy-900);font-size:12px}.admin-news-empty span{display:block;color:#7a8da6;font-size:10px;margin-top:5px}
@media(max-width:760px){.admin-news-form-grid{grid-template-columns:1fr}.admin-news-form-grid .span-2{grid-column:auto}.admin-news-form-actions{align-items:flex-start;flex-wrap:wrap}.admin-news-form-actions .small{width:100%;margin-left:0}.admin-news-row{grid-template-columns:1fr}.admin-news-status{justify-content:space-between}.admin-news-actions{flex-wrap:wrap}.admin-news-count{text-align:left}}


/* News announcement images */
.field-optional{font-style:normal;text-transform:none;letter-spacing:0;color:#94a3b8;font-weight:600;margin-left:5px}.news-image-picker{position:relative}.news-image-picker>input[type=file]{position:absolute;inset:0;opacity:0;z-index:3;cursor:pointer}.news-image-preview{min-height:104px;border:1px dashed #cbd8e8;border-radius:12px;background:#f8fbff;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.news-image-placeholder{text-align:center;color:#6f829a}.news-image-placeholder b{display:block;color:#2e73d5;font-size:12px;margin-bottom:4px}.news-image-placeholder span{font-size:10px}.news-image-preview img{width:100%;height:150px;object-fit:cover;display:block}.news-image-remove{position:absolute!important;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(10,25,45,.78);color:#fff;font-size:19px;line-height:28px;cursor:pointer;z-index:5}.admin-news-copy{position:relative}.admin-news-thumb{width:68px;height:48px;object-fit:cover;border-radius:9px;float:right;margin:0 0 6px 12px;border:1px solid #e0e8f2}.news-ribbon-image{width:74px;height:58px;object-fit:cover;border-radius:11px;flex:none;border:1px solid #dce7f3}.news-ribbon.has-image .news-ribbon-mark{display:none}
@media(max-width:700px){.news-ribbon-image{width:62px;height:52px}.admin-news-thumb{width:58px;height:42px}}

/* Hub Bulletin — full newsroom + clickable landing announcements */
.news-announcements{cursor:pointer;transition:.18s ease}.news-announcements:hover{border-color:#cbd9eb;box-shadow:0 12px 34px rgba(14,35,70,.07);transform:translateY(-1px)}
.newsroom-page{display:flex;flex-direction:column;gap:16px}.newsroom-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:4px 2px}.newsroom-hero h2{margin:5px 0 4px;font-size:27px;letter-spacing:-.8px;color:var(--navy-900)}.newsroom-hero p{margin:0;color:var(--text-muted);font-size:11.5px}.newsroom-count{min-width:130px;padding:13px 16px;border:1px solid #e1e8f1;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);text-align:center}.newsroom-count b{display:block;font-size:22px;color:#15335b}.newsroom-count span{display:block;margin-top:3px;font-size:8.5px;text-transform:uppercase;letter-spacing:.7px;color:#8998aa;font-weight:800}
.news-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.news-tile{border:1px solid #dfe7f1;border-radius:18px;background:#fff;overflow:hidden;cursor:pointer;box-shadow:0 8px 26px rgba(14,35,70,.045);transition:.2s ease;min-width:0}.news-tile:hover{transform:translateY(-3px);border-color:#bfd1e8;box-shadow:0 16px 38px rgba(14,35,70,.10)}.news-tile:focus{outline:3px solid rgba(45,111,231,.14);outline-offset:2px}.news-tile-media{height:170px;position:relative;overflow:hidden;background:linear-gradient(135deg,#edf4ff,#f9fbff)}.news-tile-media img{width:100%;height:100%;object-fit:cover;display:block}.news-tile-fallback{height:100%;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,#e8f2ff,#f8fbff 60%)}.news-tile-fallback span{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:#fff;box-shadow:0 8px 22px rgba(30,80,150,.12);color:#2d73dc;font-size:24px}.news-tile.gold .news-tile-fallback{background:radial-gradient(circle at 30% 20%,#fff3d7,#fffdf8 60%)}.news-tile.gold .news-tile-fallback span{color:#ad7008}.news-tile.green .news-tile-fallback{background:radial-gradient(circle at 30% 20%,#e4f7ed,#f8fdfb 60%)}.news-tile.green .news-tile-fallback span{color:#17845b}.news-tile-tag{position:absolute;left:12px;top:12px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);color:#2b70d4;font-size:8px;text-transform:uppercase;letter-spacing:.7px;font-weight:850}.news-tile.gold .news-tile-tag{color:#a46b08}.news-tile.green .news-tile-tag{color:#16804e}.news-tile-body{padding:16px 17px 17px}.news-tile-date{font-size:8.5px;text-transform:uppercase;letter-spacing:.55px;color:#92a0b1;font-weight:800;margin-bottom:7px}.news-tile h3{font-size:15px;line-height:1.32;color:#142b4c;margin:0 0 7px;letter-spacing:-.2px}.news-tile p{font-size:10.5px;line-height:1.55;color:#718199;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:49px}.news-read-more{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid #edf1f5;color:#2d70d3;font-size:9.5px;font-weight:850}.news-read-more b{font-size:14px}.news-detail-page{max-width:920px;margin:0 auto;width:100%}.news-back{border:0;background:transparent;color:#47709f;font:750 10px Inter;cursor:pointer;padding:4px 0 12px}.news-back:hover{color:#1f62b8}.news-detail-card{border:1px solid #dfe7f1;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 14px 44px rgba(14,35,70,.07)}.news-detail-cover{max-height:390px;overflow:hidden;background:#f4f8fd}.news-detail-cover img{width:100%;max-height:390px;object-fit:cover;display:block}.news-detail-content{padding:28px 32px 34px}.news-detail-tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf4ff;color:#2d70d3;text-transform:uppercase;letter-spacing:.75px;font-size:8px;font-weight:850}.news-detail-content h1{font-size:30px;line-height:1.18;letter-spacing:-.8px;color:#112b4f;margin:13px 0 8px}.news-detail-meta{font-size:9.5px;color:#8b99aa;font-weight:700;padding-bottom:18px;border-bottom:1px solid #edf1f5}.news-detail-body{padding-top:20px;color:#3e516b;font-size:12.5px;line-height:1.8}.newsroom-empty{text-align:center;padding:60px 20px;display:flex;align-items:center;flex-direction:column;gap:7px}.newsroom-empty b{font-size:14px;color:#233a59}.newsroom-empty span{font-size:10.5px;color:#8998aa}

/* Keep the Team Chat page itself in place when a conversation is minimized. Only the conversation content collapses; the sidebar and chat frame remain visible. */
.chat-layout.chat-is-minimized{grid-template-columns:280px minmax(0,1fr);min-height:620px}.chat-layout.chat-is-minimized .chat-main{display:flex}.chat-layout.chat-is-minimized .chat-messages,.chat-layout.chat-is-minimized .chat-composer{display:none}.chat-layout.chat-is-minimized .chat-conversation-head{border-bottom:0}.chat-minimized-dock{right:24px;bottom:24px}
.nav-chat-badge{margin-left:auto;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:#e45b43;color:#fff;display:inline-grid;place-items:center;font-size:8px;font-weight:850;box-shadow:0 0 0 2px #fff}.nav-chat-badge.hidden{display:none}
@media(max-width:900px){.news-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.newsroom-hero{align-items:flex-start}.chat-layout.chat-is-minimized{grid-template-columns:230px minmax(0,1fr)}}
@media(max-width:650px){.news-tile-grid{grid-template-columns:1fr}.newsroom-hero{flex-direction:column}.newsroom-count{align-self:flex-start}.news-tile-media{height:185px}.news-detail-content{padding:22px 20px 26px}.news-detail-content h1{font-size:24px}.chat-layout.chat-is-minimized{grid-template-columns:1fr}.chat-layout.chat-is-minimized .chat-sidebar{display:none}.chat-minimized-dock{left:12px;right:12px;bottom:12px;width:auto}}

/* V16 — Policies */
.policies-page{display:flex;flex-direction:column;gap:16px}.policies-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:4px 2px}.policies-hero h2{margin:5px 0 4px;font-size:27px;letter-spacing:-.8px;color:var(--navy-900)}.policies-hero p{margin:0;color:var(--text-muted);font-size:11.5px}.policy-count{min-width:130px;padding:13px 16px;border:1px solid #e1e8f1;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fbff);text-align:center}.policy-count b{display:block;font-size:22px;color:#15335b}.policy-count span{display:block;margin-top:3px;font-size:8.5px;text-transform:uppercase;letter-spacing:.7px;color:#8998aa;font-weight:800}.policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.policy-card{border:1px solid #dfe7f1;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 26px rgba(14,35,70,.045);display:flex;flex-direction:column}.policy-card-media{height:170px;background:#f4f8fd;overflow:hidden}.policy-card-media img{width:100%;height:100%;object-fit:cover;display:block}.policy-card-body{padding:17px;display:flex;flex-direction:column;flex:1}.policy-tag{display:inline-flex;align-self:flex-start;padding:5px 8px;border-radius:999px;background:#edf4ff;color:#2d70d3;text-transform:uppercase;letter-spacing:.7px;font-size:8px;font-weight:850}.policy-card h3{font-size:15px;color:#142b4c;margin:11px 0 7px}.policy-card p{font-size:10.5px;line-height:1.55;color:#718199;margin:0 0 16px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;flex:1}.policy-card .btn{align-self:flex-start}.policies-empty{text-align:center;display:flex;align-items:center;flex-direction:column;gap:7px;padding:60px 20px}.policies-empty b{font-size:14px;color:#233a59}.policies-empty span{font-size:10.5px;color:#8998aa}.user-chip-btn{border:0;cursor:pointer;text-align:left;font:inherit;background:transparent;padding:5px 8px;border-radius:12px}.user-chip-btn:hover{background:#f4f8fd}.modal-backdrop{position:fixed;inset:0;background:rgba(15,31,52,.42);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal-card{width:min(680px,100%);max-height:min(88vh,760px);overflow:auto;background:#fff;border:1px solid #dfe7f1;border-radius:20px;box-shadow:0 24px 70px rgba(12,31,57,.2);position:relative}.modal-close{position:absolute;right:14px;top:12px;width:32px;height:32px;border:1px solid #dbe4ef;border-radius:50%;background:#fff;color:#536b87;font-size:20px;cursor:pointer;z-index:2}.policy-modal-image{width:100%;max-height:330px;object-fit:cover;display:block}.policy-modal-content{padding:26px 30px 32px}.policy-modal-content h2{font-size:25px;color:#132d50;margin:12px 0 7px}.policy-modal-body{margin-top:18px;padding-top:18px;border-top:1px solid #edf1f5;color:#3e516b;font-size:12.5px;line-height:1.8}.password-modal{width:min(460px,100%);padding:30px}.password-modal form{display:flex;flex-direction:column;gap:14px;margin-top:18px}.password-modal label{display:flex;flex-direction:column;gap:6px}.password-modal label span{font-size:10px;font-weight:800;letter-spacing:.45px;text-transform:uppercase;color:#71839a}.password-modal input{box-sizing:border-box;width:100%;border:1px solid #dbe4ef;border-radius:11px;background:#fbfdff;padding:11px 12px;font:inherit;font-size:12px;color:var(--navy-900);outline:none}.password-modal input:focus{border-color:#8db8f6;box-shadow:0 0 0 3px rgba(46,131,255,.09)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.password-modal h2{margin:5px 0 0;font-size:24px;color:#132d50}@media(max-width:900px){.policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.policy-grid{grid-template-columns:1fr}.policies-hero{flex-direction:column;align-items:flex-start}.policy-count{text-align:left}.password-modal{padding:24px}.policy-modal-content{padding:22px 20px 26px}}

/* V17 — PDF policies + Outlook mail */
.policy-card-pdf{display:grid;place-items:center;background:radial-gradient(circle at 35% 25%,#eef5ff,#f8fbff 65%)}
.policy-card-pdf span{width:72px;height:82px;border-radius:13px;background:#fff;border:1px solid #dce6f2;display:grid;place-items:center;color:#2d70d3;font-weight:900;font-size:17px;box-shadow:0 10px 28px rgba(20,55,100,.08);position:relative}
.policy-card-pdf span:after{content:'DOCUMENT';position:absolute;bottom:9px;font-size:6px;letter-spacing:1px;color:#8b9bb0}
.policy-current-file{display:block;margin-top:5px;color:#61758e;font-size:9px}
.policy-pdf-modal{width:min(1120px,96vw);height:min(90vh,900px);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.policy-modal-tools{position:absolute;right:54px;top:13px;display:flex;align-items:center;gap:8px;z-index:4}.policy-fullscreen-btn{height:32px;padding:0 10px;border:1px solid #dbe4ef;border-radius:10px;background:#fff;color:#526b88;font:750 9px Inter;cursor:pointer}.policy-fullscreen-btn:hover{background:#f5f8fc}.policy-pdf-modal .modal-close{right:14px;top:12px}.policy-pdf-modal.policy-fullscreen{width:100vw;height:100vh;max-height:none;border-radius:0}.policy-backdrop-fullscreen{padding:0}.policy-fullscreen .policy-pdf-head{padding-right:150px}.policy-fullscreen .policy-pdf-viewer{min-height:0}.policy-fullscreen .policy-pdf-frame{min-height:0}.policy-fullscreen .policy-signoff-panel{padding-bottom:20px}
.policy-pdf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 54px 16px 24px;border-bottom:1px solid #e8edf4;background:#fff;flex:none}
.policy-pdf-head h2{margin:8px 0 4px;font-size:21px;color:#132d50}.policy-pdf-head p{margin:0;color:#7a8ba0;font-size:10.5px;line-height:1.45}.policy-pdf-lock{padding:6px 9px;border-radius:999px;background:#eef8f2;color:#18734d;font-size:7.5px;font-weight:850;letter-spacing:.65px;white-space:nowrap}
.policy-pdf-viewer{min-height:0;flex:1;background:#edf1f5;display:flex;flex-direction:column;position:relative}.policy-pdf-frame{width:100%;height:100%;min-height:0;border:0;background:#fff}.policy-pdf-loading,.policy-pdf-error{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:#8191a5;font-size:11px}.policy-pdf-error b{color:#29415f}.policy-pdf-note{padding:7px 12px;background:#f8fafc;border-top:1px solid #dfe6ef;text-align:center;color:#8a99aa;font-size:8px;flex:none}
@media(max-width:700px){.policy-modal-tools{right:50px}.policy-fullscreen-btn span{display:none}.policy-fullscreen-btn{width:32px;padding:0}.mail-choice-grid{grid-template-columns:1fr}.mail-service-hero{align-items:flex-start}.policy-pdf-modal{width:96vw;height:92vh}.policy-pdf-head{padding:18px 46px 14px 17px}.policy-pdf-lock{display:none}.mail-hero{align-items:flex-start;flex-direction:column}.mail-frame-card{min-height:620px}.mail-frame-wrap{min-height:560px}}

.mail-launch-card{border:1px solid #dfe7f1;border-radius:22px;background:linear-gradient(145deg,#fff,#f8fbff);padding:34px;display:flex;align-items:flex-start;gap:24px;box-shadow:0 14px 40px rgba(14,35,70,.07);max-width:980px}.mail-launch-copy h3{margin:0 0 8px;font-size:24px;color:var(--navy-900)}.mail-launch-copy p{margin:0;max-width:760px;color:#718199;font-size:12px;line-height:1.7}.mail-launch-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.titan-launch-card .mail-choice-icon{width:72px;height:72px;font-size:32px}

/* V22 — Leave application */
.att-dot.leave{background:#7c3aed}
.att-cell.leave{background:#f5f0ff;color:#6d28d9}
.employee-day.leave{background:linear-gradient(180deg,#f7f2ff,#fff);border-color:#ddd0ff}
.employee-day.leave small{color:#6d28d9}
.leave-page{display:flex;flex-direction:column;gap:18px}
.leave-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:2px 2px 4px}
.leave-hero h2{margin:4px 0 5px;font-size:25px;letter-spacing:-.5px;color:var(--navy-900)}
.leave-hero p{margin:0;color:var(--text-muted);font-size:12px;max-width:720px}
.leave-mini-stats{display:flex;gap:8px;flex-wrap:wrap}
.leave-mini-stats>div{min-width:82px;padding:10px 13px;background:#fff;border:1px solid var(--border);border-radius:12px;text-align:center;box-shadow:var(--shadow-card)}
.leave-mini-stats b{display:block;font-size:19px;color:var(--navy-900)}
.leave-mini-stats span{display:block;margin-top:3px;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#7b8aa0;font-weight:800}
.leave-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.9fr);gap:16px;align-items:start}
.leave-form{margin-top:18px}
.leave-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.leave-form-grid label{display:flex;flex-direction:column;gap:7px}
.leave-form-grid label>span{font-size:11px;font-weight:800;color:#5f7391}
.leave-form-grid input,.leave-form-grid select,.leave-form-grid textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:11px;background:#fbfdff;padding:12px 13px;font:500 12px Inter;color:var(--navy-900);outline:none}
.leave-form-grid textarea{resize:vertical;min-height:120px}
.leave-form-grid input:focus,.leave-form-grid select:focus,.leave-form-grid textarea:focus{border-color:#8db0e8;box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.leave-full{grid-column:1/-1}
.leave-form-error{margin-top:12px;padding:10px 12px;border-radius:10px;background:#fff1f1;border:1px solid #f0c8c8;color:#b42318;font-size:11px}
.leave-form-actions{display:flex;justify-content:flex-end;margin-top:14px}
.leave-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.leave-request-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.leave-request-card{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:14px;align-items:start;padding:14px;border:1px solid var(--border);border-radius:13px;background:#fff}
.leave-request-person{display:flex;align-items:center;gap:9px}
.leave-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eef4ff;color:#2459a8;font-size:10px;font-weight:900}
.leave-request-person b{display:block;font-size:11px;color:var(--navy-900)}
.leave-request-person small{display:block;margin-top:3px;font-size:9px;color:#8a98aa}
.leave-request-top{display:flex;align-items:center;gap:8px;justify-content:space-between}
.leave-request-top b{font-size:12px;color:var(--navy-900)}
.leave-request-date{margin-top:5px;font-size:10.5px;font-weight:700;color:#58708f}
.leave-request-main p{margin:8px 0;color:#667994;font-size:11px;line-height:1.55}
.leave-created{color:#9aa7b8;font-size:9px}
.leave-admin-note{margin:7px 0;padding:8px 10px;border-radius:9px;background:#f8fafc;border:1px solid #e7ebf1;color:#667994;font-size:10px}
.leave-request-actions{display:flex;gap:6px;align-items:center}
.leave-empty{padding:30px 16px;text-align:center;border:1px dashed var(--border);border-radius:12px;color:#8190a4;margin-top:14px}
.leave-empty span{display:block;font-size:20px;color:#16a05d;margin-bottom:7px}.leave-empty b{display:block;color:var(--navy-900);font-size:12px}.leave-empty small{display:block;margin-top:4px;font-size:10px}
@media(max-width:900px){.leave-grid{grid-template-columns:1fr}.leave-request-card{grid-template-columns:1fr}.leave-request-actions{justify-content:flex-start}.leave-hero{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.leave-form-grid{grid-template-columns:1fr}.leave-full{grid-column:auto}.leave-mini-stats{width:100%}.leave-mini-stats>div{flex:1}}
.staff-status-select{min-width:112px;padding:7px 28px 7px 10px;border:1px solid var(--border,#dbe3ef);border-radius:9px;background:#fff;color:var(--ink,#0f2747);font:inherit;font-size:12px;font-weight:600}

/* V24 — employment stages + timesheet */
.timesheet-page{display:flex;flex-direction:column;gap:16px}.timesheet-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:3px 2px}.timesheet-hero h2{margin:5px 0 4px;font-size:27px;letter-spacing:-.8px;color:var(--navy-900)}.timesheet-hero p{margin:0;color:var(--text-muted);font-size:11.5px}.timesheet-status{padding:11px 15px;border:1px solid var(--border);background:#fff;border-radius:13px;box-shadow:var(--shadow-card);min-width:190px}.timesheet-status span{display:block;color:#8a98aa;font-size:8px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.timesheet-status b{display:block;margin-top:4px;color:#245eaa;font-size:11px}.timesheet-controls{display:flex;align-items:center;gap:9px}.timesheet-controls strong{min-width:150px;text-align:center;color:var(--navy-900);font-size:13px}.timesheet-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.timesheet-kpis>div{padding:15px 17px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-card)}.timesheet-kpis b{display:block;font-size:20px;color:var(--navy-900)}.timesheet-kpis span{display:block;margin-top:4px;color:#7d8ca1;font-size:9px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.timesheet-table td,.timesheet-table th{vertical-align:middle}.timesheet-table small.block{display:block;margin-top:3px}.timesheet-admin-month{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.timesheet-admin-month b{font-size:15px;color:var(--navy-900)}.timesheet-admin-month span{font-size:10px;color:#8190a4}.timesheet-table .badge{white-space:nowrap}@media(max-width:700px){.timesheet-hero{align-items:flex-start;flex-direction:column}.timesheet-status{width:100%;box-sizing:border-box}.timesheet-kpis{grid-template-columns:1fr}.timesheet-admin-month{align-items:flex-start;flex-direction:column}}

/* V25 — Gmail-style floating Team Chat + attachments */
#floatingChatRoot{position:fixed;inset:0;z-index:9999;pointer-events:none}
#floatingChatRoot>*{pointer-events:auto}
.floating-chat-dock{position:fixed;right:24px;bottom:24px;z-index:9999;width:310px;min-height:62px;display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid #dbe3ee;border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 18px 50px rgba(14,35,70,.20);cursor:pointer;text-align:left;transition:.18s}
.floating-chat-dock:hover{transform:translateY(-2px);box-shadow:0 22px 58px rgba(14,35,70,.24)}
.floating-chat-dock.unread{border-color:#f0c56d}
.chat-dock-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#edf4ff,#dce9ff);color:#2364c7;font-size:12px;font-weight:800;flex:none}
.chat-dock-copy{min-width:0;flex:1}.chat-dock-copy b{display:block;font-size:12px;color:#17304e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-dock-copy small{display:block;font-size:9px;color:#8a99ac;margin-top:2px}
.chat-dock-dot{width:8px;height:8px;border-radius:50%;background:#e5a321;box-shadow:0 0 0 4px rgba(229,163,33,.12)}
.chat-dock-expand{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#f3f7fc;color:#55708e}.chat-dock-expand .lm-icon{width:14px;height:14px}
.floating-chat-window{position:fixed;right:24px;top:24px;bottom:24px;z-index:10000;width:640px;height:min(620px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column;background:#fff;border:1px solid #dbe3ee;border-radius:20px;box-shadow:0 28px 90px rgba(14,35,70,.28);overflow:hidden}
.floating-chat-head{height:72px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-bottom:1px solid #e8edf4;background:linear-gradient(180deg,#fff,#fbfdff)}
.floating-chat-head-person{display:flex;align-items:center;gap:10px;min-width:0}.floating-chat-selected-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#eaf1ff;color:#2364c7;font-size:11px;font-weight:800;flex:none}
.floating-chat-head b{display:block;font-size:13px;color:#132846;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floating-chat-head small{display:block;margin-top:3px;font-size:9.5px;color:#8795a7}
.floating-chat-head-actions{display:flex;gap:6px}.floating-chat-head-actions button{width:32px;height:32px;border:1px solid #e1e7ef;border-radius:9px;background:#fff;color:#52667f;cursor:pointer;display:grid;place-items:center}.floating-chat-head-actions button:hover{background:#f5f8fc;color:#1e5fbf}
.floating-chat-body{min-height:0;flex:1;display:grid;grid-template-columns:190px minmax(0,1fr)}
.floating-chat-contacts{min-width:0;border-right:1px solid #e8edf4;background:#fbfcfe;display:flex;flex-direction:column}.floating-chat-contacts-head{height:54px;flex:none;display:flex;align-items:center;gap:9px;padding:0 12px;border-bottom:1px solid #e8edf4}.floating-chat-contacts-head>span{color:#315f9e;display:grid;place-items:center}.floating-chat-contacts-head .lm-icon{width:17px;height:17px}.floating-chat-contacts-head b{display:block;font-size:10px;color:#263d59}.floating-chat-contacts-head small{display:block;font-size:8px;color:#93a0b1;margin-top:2px}
.floating-chat-contacts-list{height:210px;max-height:210px;flex:0 0 210px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:7px;scrollbar-width:thin}.floating-chat-contact{width:100%;display:flex;align-items:center;gap:8px;border:0;background:transparent;border-radius:10px;padding:8px 7px;cursor:pointer;text-align:left;margin-bottom:2px}.floating-chat-contact:hover{background:#f0f5fc}.floating-chat-contact.active{background:#eaf2ff;box-shadow:inset 2px 0 #3b82f6}.floating-chat-contact-avatar{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;flex:none;background:#e7efff;color:#2d68ca;font-size:8px;font-weight:800}.floating-chat-contact-copy{min-width:0}.floating-chat-contact-copy b{display:block;font-size:9.5px;color:#17304e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floating-chat-contact-copy small{display:block;font-size:7.5px;color:#8a98aa;margin-top:2px}
.floating-chat-thread{min-width:0;display:flex;flex-direction:column;background:#f8fafd}.floating-chat-messages{min-height:0;flex:1;overflow:auto;padding:18px 16px}.floating-chat-messages .chat-message-row{margin:6px 0}.floating-chat-messages .chat-bubble{max-width:82%;font-size:11px;padding:10px 12px}
.floating-chat-composer{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding:11px;border-top:1px solid #e8edf4;background:#fff;position:relative;flex:none}.floating-chat-composer textarea{min-height:40px;max-height:96px;resize:none;border:1px solid #dce5ef;border-radius:11px;padding:10px 11px;font:500 11px Inter;outline:none}.floating-chat-composer textarea:focus{border-color:#8db8f4;box-shadow:0 0 0 3px rgba(59,130,246,.08)}.floating-chat-composer button[type=submit]{border:0;border-radius:11px;background:linear-gradient(135deg,#256fe0,#1e5dcc);color:#fff;padding:0 15px;font-size:11px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:6px}.floating-chat-composer button[type=submit]:hover{filter:brightness(1.04)}.floating-chat-composer .chat-attach-btn{width:38px;height:40px;border:1px solid #dce5ef;border-radius:11px}.floating-chat-composer .chat-file-name{left:58px;bottom:3px;font-size:8px}
@media(max-width:900px){.floating-chat-window{right:16px;top:16px;bottom:16px;width:min(640px,calc(100vw - 32px));height:min(620px,calc(100dvh - 32px));max-height:calc(100dvh - 32px)}.floating-chat-dock{right:16px;bottom:16px}}
@media(max-width:680px){.floating-chat-window{left:10px;right:10px;top:10px;bottom:10px;width:auto;height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);border-radius:16px}.floating-chat-body{grid-template-columns:1fr}.floating-chat-contacts{display:none}.floating-chat-dock{left:12px;right:12px;bottom:12px;width:auto}}

/* V35.3 premium iconography */
.lm-icon{width:18px;height:18px;display:block;flex:0 0 auto;stroke:currentColor}
.nav-item .ic{width:20px;height:20px;display:grid;place-items:center;opacity:.82;color:currentColor}
.nav-item .ic .lm-icon{width:18px;height:18px;stroke-width:1.75}
.nav-item.active .ic{opacity:1}
.btn .lm-icon{width:15px;height:15px}
.chat-empty-icon .lm-icon{width:21px;height:21px}
.news-empty-icon .lm-icon{width:20px;height:20px}
.chat-attach-btn .lm-icon{width:18px;height:18px}
.floating-chat-head-actions button .lm-icon{width:15px;height:15px}
.floating-chat-composer button .lm-icon{width:14px;height:14px}
.sidebar .nav-item{letter-spacing:.05px}
.sidebar .nav-item .ic{transition:transform .18s ease,opacity .18s ease}
.sidebar .nav-item:hover .ic{transform:translateY(-1px);opacity:1}


/* V35 — refined floating chat, voice messages and 1:1 voice calls */
.chat-head-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.chat-window-btn.chat-call-btn{color:#1d6c5a}.chat-window-btn.chat-call-btn:hover{background:#edf9f5;color:#147052}
.chat-voice-btn{width:38px;height:40px;border:1px solid #dce5ef;border-radius:11px;background:#fff;color:#58708f;display:grid;place-items:center;cursor:pointer}.chat-voice-btn:hover{background:#f2f7fc;color:#1f66c6}.chat-voice-btn.recording{background:#fff0f0;color:#d64c4c;border-color:#f0b8b8;animation:lmPulse 1.2s infinite}.chat-voice-btn .lm-icon{width:17px;height:17px}
@keyframes lmPulse{50%{box-shadow:0 0 0 5px rgba(214,76,76,.10)}}
.chat-audio-message{padding:9px 10px;border-radius:11px;background:#f5f8fc;border:1px solid #e0e7ef;min-width:190px}.chat-message-row.mine .chat-audio-message{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18)}.chat-audio-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.chat-audio-icon{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#e6eefc;color:#2868c8}.chat-message-row.mine .chat-audio-icon{background:rgba(255,255,255,.14);color:#fff}.chat-audio-icon .lm-icon{width:14px;height:14px}.chat-audio-top b{display:block;font-size:10px}.chat-audio-top small{display:block;font-size:8px;opacity:.62;margin-top:2px}.chat-audio-message audio{width:100%;height:30px}
.floating-chat-contacts-list{height:172px;max-height:172px;flex:0 0 172px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;padding:6px}.floating-chat-contact{min-height:43px;padding:6px 7px}.floating-chat-contact-avatar{width:30px;height:30px}.floating-chat-contact-avatar .lm-icon{width:15px;height:15px}.floating-chat-contact-copy b{font-size:9.5px}.floating-chat-contact-copy small{font-size:7.5px}
.floating-chat-head-actions button.chat-call-btn{color:#19745e}.floating-chat-head-actions button.chat-call-btn:hover{background:#edf9f5;color:#126b55}
.floating-chat-composer{grid-template-columns:38px 38px minmax(0,1fr) auto}.floating-chat-composer .chat-voice-btn{width:38px;height:40px}
.voice-call-backdrop{position:fixed;inset:0;z-index:12000;background:rgba(10,24,45,.34);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.voice-call-card{width:min(360px,calc(100vw - 40px));padding:30px 28px;border-radius:22px;background:#fff;border:1px solid #dfe7f1;box-shadow:0 30px 100px rgba(10,30,60,.30);text-align:center}.voice-call-card.active{padding-top:34px}.voice-call-avatar{width:70px;height:70px;border-radius:20px;margin:0 auto 14px;display:grid;place-items:center;background:linear-gradient(145deg,#eaf2ff,#d9e7ff);color:#2565c5;font-weight:900;font-size:20px}.voice-call-kicker{font-size:8px;letter-spacing:.14em;font-weight:900;color:#6d7f96}.voice-call-card h3{margin:7px 0 4px;font-size:19px;color:#142b49}.voice-call-card p{margin:0;color:#8290a3;font-size:11px}.voice-call-actions{display:flex;justify-content:center;gap:10px;margin-top:22px}.voice-call-actions button,.voice-call-end{border:0;border-radius:12px;padding:11px 16px;font-size:11px;font-weight:800;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.voice-call-decline{background:#fff0f0;color:#c74a4a;border:1px solid #f0c5c5!important}.voice-call-accept{background:#176f59;color:#fff}.voice-call-end{margin-top:24px;background:#fff0f0;color:#c74a4a}.voice-call-end .lm-icon{transform:rotate(135deg);width:15px;height:15px}
@media(max-width:680px){.floating-chat-composer{grid-template-columns:36px 36px minmax(0,1fr) auto}.floating-chat-composer .chat-voice-btn,.floating-chat-composer .chat-attach-btn{width:36px}.floating-chat-contact{min-height:42px}}

/* V35 chat refinements */
.floating-chat-close,.floating-chat-head-actions .chat-call-btn{width:34px;height:34px;border:1px solid #dfe6ef;border-radius:10px;background:#fff;color:#536982;display:grid;place-items:center;cursor:pointer;transition:.16s}.floating-chat-close:hover{background:#fff3f3;border-color:#efc6c6;color:#c34d4d;transform:translateY(-1px)}.floating-chat-head-actions .chat-call-btn:hover{background:#edf9f5;border-color:#c8e9dc;color:#147052}.floating-chat-close .lm-icon,.floating-chat-head-actions .chat-call-btn .lm-icon{width:16px;height:16px}
@media(max-width:680px){.floating-chat-contacts-list{height:172px;max-height:172px;flex-basis:172px}}

/* V35 — Teams-style chat controls, group modal and reliable scrolling */
.chat-contacts{flex:1;min-height:0;height:232px;max-height:232px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.chat-item{min-height:52px}
.chat-composer{align-items:center;min-width:0}
.chat-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.chat-attach-btn,.chat-voice-btn{width:44px!important;height:44px!important;min-width:44px;flex:0 0 44px;display:grid;place-items:center;border:1px solid #dce5ef;border-radius:12px;background:#fff;color:#58708f;cursor:pointer;position:relative}
.chat-attach-btn:hover,.chat-voice-btn:hover{background:#f3f7fc;color:#1f66c6;border-color:#cbd9ea}
.chat-composer textarea{min-width:0}
.chat-composer>.btn[type=submit]{min-width:82px;height:44px;justify-content:center;white-space:nowrap}
.chat-window-btn.chat-delete-btn{color:#c14e55}
.chat-window-btn.chat-delete-btn:hover{background:#fff2f3;border-color:#efc8cb;color:#ad3740}
.chat-group-modal-backdrop{position:fixed;inset:0;z-index:14000;background:rgba(10,24,45,.38);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}
.chat-group-modal{width:min(560px,calc(100vw - 40px));max-height:min(720px,calc(100vh - 40px));overflow:hidden;background:#fff;border:1px solid #dfe7f1;border-radius:22px;box-shadow:0 30px 100px rgba(10,30,60,.28);display:flex;flex-direction:column}
.chat-group-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 26px 18px;border-bottom:1px solid #e8edf4}
.chat-group-modal-head h3{margin:5px 0 5px;color:#142b49;font-size:20px}.chat-group-modal-head p{margin:0;color:#8492a4;font-size:11px;line-height:1.5}
.chat-modal-close{width:36px;height:36px;border:1px solid #dfe6ef;border-radius:10px;background:#fff;color:#60728a;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}.chat-modal-close:hover{background:#fff3f3;color:#c14e55}
.chat-group-modal form{display:flex;flex-direction:column;min-height:0;overflow:hidden}.chat-group-name-label{padding:18px 26px 12px}.chat-group-name-label span{display:block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#6d7e95;margin-bottom:7px}.chat-group-name-label input{width:100%;height:44px;border:1px solid #dce5ef;border-radius:11px;padding:0 12px;font:500 12px Inter;color:#17304e;outline:none}.chat-group-name-label input:focus{border-color:#77a5eb;box-shadow:0 0 0 3px rgba(60,120,220,.08)}
.chat-member-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 26px;border-top:1px solid #edf1f5;border-bottom:1px solid #edf1f5}.chat-member-toolbar b{font-size:12px;color:#1c3553}.chat-member-toolbar input{width:210px;height:34px;border:1px solid #dce5ef;border-radius:9px;padding:0 10px;font:500 10px Inter;outline:none}.chat-member-list{overflow:auto;min-height:180px;max-height:350px;padding:8px 14px}.chat-member-option{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:11px;cursor:pointer}.chat-member-option:hover{background:#f3f7fc}.chat-member-option input{accent-color:#286edc}.chat-member-avatar{width:34px;height:34px;border-radius:10px;background:#e8f0ff;color:#2b67c9;display:grid;place-items:center;font-size:9px;font-weight:900;flex:0 0 auto}.chat-member-option>span:nth-of-type(2){min-width:0}.chat-member-option b{display:block;font-size:11px;color:#17304e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-member-option small{display:block;margin-top:2px;font-size:8px;color:#8b99aa}.chat-member-option em{margin-left:auto;font-size:8px;font-style:normal;color:#2670d5;font-weight:800}.chat-group-modal-actions{display:flex;justify-content:flex-end;gap:9px;padding:16px 26px;border-top:1px solid #e8edf4}.chat-group-modal-actions .btn{height:40px;display:inline-flex;align-items:center;gap:7px}
@media(max-width:680px){.chat-contacts{height:220px;max-height:220px}.chat-composer{display:grid;grid-template-columns:44px 44px minmax(0,1fr) 82px;gap:7px}.chat-composer>.btn[type=submit]{min-width:0;width:82px}.chat-group-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.chat-group-modal-head,.chat-group-name-label{padding-left:18px;padding-right:18px}.chat-member-toolbar{padding-left:18px;padding-right:18px}.chat-member-list{padding:8px 6px}.chat-group-modal-actions{padding-left:18px;padding-right:18px}}


/* ================================================================
   LIVE MENTOR HUB v38 — login page based on supplied reference code
   ================================================================ */
.lm-login-page{min-height:100vh;padding:28px;display:grid;place-items:center;background:radial-gradient(circle at 10% 10%,#eef3ff 0,transparent 30%),linear-gradient(135deg,#f7f9fd,#eef3fb)}
.lm-login-shell{width:min(1380px,100%);min-height:min(820px,calc(100vh - 56px));display:grid;grid-template-columns:1.02fr .98fr;background:#fff;border:1px solid rgba(16,42,92,.08);border-radius:30px;overflow:hidden;box-shadow:0 28px 80px rgba(16,42,92,.12)}
.lm-login-visual{position:relative;overflow:hidden;min-height:760px;background:linear-gradient(145deg,#f4f7ff 0%,#edf2ff 55%,#e8edfb 100%)}
.lm-login-visual:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(21,94,239,.09) 1.4px,transparent 1.5px);background-size:22px 22px;mask-image:linear-gradient(to bottom right,black,transparent 70%)}
.lm-login-glow{position:absolute;border-radius:50%;filter:blur(2px);background:rgba(21,94,239,.07);pointer-events:none}.lm-g1{width:290px;height:290px;top:-80px;right:-70px}.lm-g2{width:250px;height:250px;bottom:-90px;left:-90px}
.lm-login-brand{position:absolute;z-index:20;left:50px;top:34px;width:250px;height:92px;display:flex;align-items:center}.lm-login-logo{width:245px;height:auto;max-height:105px;object-fit:contain;object-position:left center;filter:drop-shadow(0 10px 20px rgba(13,42,99,.08))}
.lm-login-welcome{position:absolute;z-index:10;left:58px;top:145px;max-width:390px}.lm-login-eyebrow{color:#155eef;font-weight:800;font-size:12px;letter-spacing:2.6px;text-transform:uppercase;margin-bottom:10px}.lm-login-welcome h2{margin:0;font-size:34px;line-height:1.08;letter-spacing:-1.2px;color:#0d2a63}.lm-login-welcome p{margin:12px 0 0;color:#667085;line-height:1.6;font-size:14px;max-width:330px}
.lm-login-scene{position:absolute;left:50%;bottom:48px;width:570px;height:475px;transform:translateX(-50%)}.lm-login-floor{position:absolute;left:48px;right:35px;bottom:0;height:22px;border-radius:50%;background:rgba(13,42,99,.12);filter:blur(8px)}
.lm-char{position:absolute;bottom:0;transform-origin:bottom center;transition:transform .65s cubic-bezier(.2,.8,.2,1),height .65s ease}.lm-char .lm-eyes{position:absolute;display:flex;gap:12px;z-index:4;transition:all .55s cubic-bezier(.2,.8,.2,1)}.lm-eyes i{width:23px;height:23px;background:#fff;border-radius:50%;display:grid;place-items:center;overflow:hidden;box-shadow:0 1px 0 rgba(0,0,0,.06);transition:height .13s ease,transform .12s ease}.lm-eyes i:after{content:"";width:9px;height:9px;border-radius:50%;background:#252525;transition:transform .1s ease-out}.lm-eyes.blink i{height:3px}.lm-purple{left:86px;width:190px;height:370px;background:#6c3ff5;border-radius:14px 14px 0 0;z-index:1}.lm-purple .lm-eyes{left:48px;top:42px}.lm-black{left:254px;width:130px;height:292px;background:#2d2d2d;border-radius:12px 12px 0 0;z-index:2}.lm-black .lm-eyes{left:29px;top:35px;gap:8px}.lm-black .lm-eyes i{width:19px;height:19px}.lm-black .lm-eyes i:after{width:7px;height:7px}.lm-orange{left:10px;width:260px;height:185px;background:#ff9b6b;border-radius:140px 140px 0 0;z-index:3}.lm-orange .lm-eyes{left:90px;top:91px}.lm-orange .lm-eyes i{width:17px;height:17px;background:#252525}.lm-orange .lm-eyes i:after{width:7px;height:7px;background:#fff}.lm-yellow{left:335px;width:150px;height:220px;background:#e8d754;border-radius:80px 80px 0 0;z-index:4}.lm-yellow .lm-eyes{left:55px;top:42px;gap:7px}.lm-yellow .lm-eyes i{width:17px;height:17px;background:#252525}.lm-yellow .lm-eyes i:after{width:6px;height:6px;background:#fff}.lm-mouth{position:absolute;width:75px;height:4px;background:#2d2d2d;border-radius:10px;left:38px;top:92px;transition:transform .4s}.typing .lm-purple{height:410px;transform:skewX(-7deg) translateX(12px)}.typing .lm-purple .lm-eyes{left:63px;top:67px}.typing .lm-black{transform:skewX(5deg) translateX(15px)}.typing .lm-black .lm-eyes{left:38px;top:15px}.showing .lm-purple .lm-eyes{left:20px;top:35px}.showing .lm-black .lm-eyes{left:12px;top:28px}.showing .lm-orange .lm-eyes{left:50px;top:84px}.showing .lm-yellow .lm-eyes{left:20px;top:35px}.showing .lm-yellow .lm-mouth{transform:translateX(-25px)}.error .lm-char{animation:lmshake .45s ease-in-out 2}.success .lm-char{animation:lmnod .55s ease-in-out 2}.lm-login-scene{animation:lmfloat 5s ease-in-out infinite}@keyframes lmfloat{50%{transform:translateX(-50%) translateY(-5px)}}@keyframes lmnod{50%{transform:translateY(9px) rotate(1deg)}}@keyframes lmshake{25%{transform:translateX(-8px) rotate(-1deg)}75%{transform:translateX(8px) rotate(1deg)}}
.lm-login-tip{position:absolute;z-index:15;bottom:28px;left:58px;display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1.2px;color:#69758e}.lm-login-tip span{width:8px;height:8px;border-radius:50%;background:#2f6df6;box-shadow:0 0 0 5px rgba(47,109,246,.10)}.lm-login-tip b{font-size:10px}
.lm-login-form-side{position:relative;display:flex;align-items:center;justify-content:center;padding:70px 9%;background:#fff}.lm-theme{position:absolute;right:34px;top:32px;width:42px;height:42px;border:1px solid #d9e0ec;border-radius:50%;background:#fff;color:#0d2a63;display:grid;place-items:center;font-size:19px;transition:.2s}.lm-theme:hover{transform:rotate(15deg);box-shadow:0 8px 20px rgba(13,42,99,.1)}.lm-form-wrap{width:min(100%,450px)}.lm-form-head{margin-bottom:34px}.lm-mini{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#f58220;margin-bottom:10px}.lm-form-head h1{margin:0;color:#0d2a63;font-size:40px;letter-spacing:-1.5px;line-height:1.05}.lm-form-head p{margin:11px 0 0;color:#667085;font-size:14px;line-height:1.55}.lm-field{margin-bottom:21px}.lm-field label{display:block;font-size:13px;font-weight:750;color:#344054;margin-bottom:8px}.lm-input-wrap{position:relative}.lm-field-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#8793aa}.lm-field-icon svg{width:100%;height:100%}.lm-input-wrap input{width:100%;height:55px;border:1px solid #d9e0ec;border-radius:14px;outline:none;padding:0 48px;color:#172554;background:#fbfcfe;font-size:14px;transition:border-color .2s,box-shadow .2s,background .2s}.lm-input-wrap input:focus{background:#fff;border-color:#5c88f4;box-shadow:0 0 0 4px rgba(21,94,239,.09)}.lm-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);border:0;background:transparent;width:36px;height:36px;border-radius:10px;color:#7b879d}.lm-password-toggle:hover{background:#eef3ff;color:#155eef}.lm-password-toggle svg{width:18px;height:18px}
.lm-row{display:flex;justify-content:space-between;align-items:center;margin:4px 0 27px}.lm-remember{display:flex!important;align-items:center;gap:9px;color:#667085!important;font-size:13px!important;cursor:pointer}.lm-remember input{appearance:none;width:17px;height:17px;border:1px solid #c7d0df;border-radius:5px;display:grid;place-items:center;background:#fff}.lm-remember input:checked{background:#155eef;border-color:#155eef}.lm-remember input:checked:after{content:"✓";color:#fff;font-size:11px;font-weight:800}.lm-row a{color:#155eef;font-weight:700;text-decoration:none;font-size:13px}.lm-row a:hover{text-decoration:underline}.lm-submit{width:100%;height:56px;border:0;border-radius:14px;color:#fff;font-weight:800;font-size:15px;background:linear-gradient(135deg,#2868f0,#123fd0);box-shadow:0 12px 25px rgba(21,94,239,.22);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}.lm-submit:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(21,94,239,.28)}.lm-submit.loading{pointer-events:none}.lm-spinner{display:inline-block;width:17px;height:17px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:lmspin .7s linear infinite;vertical-align:-4px;margin-right:8px}@keyframes lmspin{to{transform:rotate(360deg)}}.lm-divider{display:flex;align-items:center;gap:14px;margin:28px 0 21px;color:#98a2b3;font-size:12px}.lm-divider:before,.lm-divider:after{content:"";height:1px;background:#e6eaf0;flex:1}.lm-secure{display:flex;align-items:center;justify-content:center;gap:8px;color:#7a869b;font-size:12px}.lm-secure svg{width:15px;height:15px;color:#2f6df6}.lm-message{margin-top:16px;border-radius:12px;padding:11px 13px;font-size:13px;display:none}.lm-message.error{display:block;background:#fff2f1;border:1px solid #ffd2ce;color:#b42318}.lm-message.success{display:block;background:#ecfdf3;border:1px solid #abefc6;color:#067647}.lm-footer{position:absolute;bottom:25px;color:#a0a9b8;font-size:11px}
body.dark .lm-login-page{background:#111827}body.dark .lm-login-shell{background:#182033;border-color:#2c3850}body.dark .lm-login-form-side{background:#182033}body.dark .lm-form-head h1,body.dark .lm-field label{color:#f2f4f7}body.dark .lm-form-head p,body.dark .lm-secure,body.dark .lm-remember{color:#98a2b3!important}body.dark .lm-input-wrap input{background:#111827;border-color:#344054;color:#fff}body.dark .lm-theme{background:#182033;color:#fff;border-color:#344054}
@media(max-width:980px){.lm-login-page{padding:0}.lm-login-shell{border-radius:0;min-height:100vh;grid-template-columns:1fr}.lm-login-visual{min-height:460px;height:48vh}.lm-login-welcome{display:none}.lm-login-scene{transform:translateX(-50%) scale(.78);transform-origin:bottom center;bottom:-4px}.lm-login-brand{left:30px;top:20px}.lm-login-logo{width:205px}.lm-login-tip{left:30px;bottom:18px}.lm-login-form-side{min-height:52vh;padding:55px 28px 70px}.lm-footer{bottom:16px}}
@media(max-width:560px){.lm-login-visual{min-height:370px}.lm-login-scene{transform:translateX(-50%) scale(.59);bottom:-10px}.lm-login-brand{left:20px;top:18px}.lm-login-logo{width:180px}.lm-login-form-side{padding:45px 22px 65px}.lm-theme{right:18px;top:18px}.lm-form-head h1{font-size:32px}.lm-form-head{margin-bottom:28px}.lm-row{gap:12px;align-items:flex-start}.lm-row a{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.lm-login-page *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}

/* V38 — login viewport, account menu, profile */
.lm-login-page{min-height:100dvh;height:100dvh;box-sizing:border-box;padding:18px;overflow:hidden}
.lm-login-shell{height:calc(100dvh - 36px);min-height:0;max-height:calc(100dvh - 36px)}
.lm-login-visual{min-height:0;height:100%}.lm-login-form-side{min-height:0;height:100%;box-sizing:border-box;padding-top:42px;padding-bottom:42px}.lm-login-scene{bottom:-8px}.lm-login-welcome{max-width:470px}.lm-footer{bottom:8px}
.user-menu{position:relative}.user-chip-btn{display:flex;align-items:center;gap:8px}.user-menu-chevron{font-size:15px;color:#8292a8;margin-left:2px}.user-menu-panel{display:none;position:absolute;right:0;top:calc(100% + 8px);width:290px;background:#fff;border:1px solid #dfe7f1;border-radius:16px;box-shadow:0 18px 50px rgba(14,35,70,.16);padding:8px;z-index:1200}.user-menu-panel.open{display:block}.user-menu-head{display:flex;align-items:center;gap:10px;padding:10px;border-bottom:1px solid #edf1f5;margin-bottom:5px}.user-menu-head b{display:block;font-size:12px;color:#18304f}.user-menu-head small{display:block;margin-top:3px;color:#8795a7;font-size:9px}.user-avatar-lg{width:38px;height:38px;font-size:11px}.user-menu-panel>button{width:100%;border:0;background:transparent;border-radius:11px;padding:10px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.user-menu-panel>button:hover{background:#f3f7fc}.user-menu-panel>button>span{width:34px;height:34px;border-radius:10px;background:#edf4ff;color:#286bd2;display:grid;place-items:center;flex:0 0 auto}.user-menu-panel>button b{display:block;font-size:11px;color:#18304f}.user-menu-panel>button small{display:block;margin-top:2px;color:#8a99aa;font-size:8.5px}
.profile-page{display:flex;flex-direction:column;gap:14px}.profile-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px}.profile-identity{display:flex;align-items:center;gap:14px}.profile-avatar-xl{width:58px;height:58px;border-radius:17px;background:linear-gradient(145deg,#173d78,#2d73dc);color:#fff;display:grid;place-items:center;font-weight:900;font-size:16px}.profile-hero h2{margin:5px 0 3px;color:#132d50;font-size:24px}.profile-hero p{margin:0;color:#7c8ca1;font-size:10.5px}.profile-tabs{display:flex;gap:4px;border-bottom:1px solid #dfe7f1;padding:0 5px}.profile-tab{border:0;background:transparent;padding:11px 15px;color:#71839a;font-size:11px;font-weight:800;cursor:pointer;border-bottom:2px solid transparent}.profile-tab.active{color:#1f65c7;border-bottom-color:#2d73df}.profile-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);gap:14px}.profile-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.profile-detail{padding:12px 13px;border:1px solid #e4eaf2;border-radius:12px;background:#fbfdff}.profile-detail small,.profile-readonly-grid small{display:block;text-transform:uppercase;letter-spacing:.6px;color:#8797aa;font-size:8px;font-weight:800}.profile-detail b,.profile-readonly-grid b{display:block;margin-top:5px;color:#183252;font-size:11px}.profile-bio{min-height:150px;padding:14px;border:1px solid #e4eaf2;border-radius:12px;background:#fbfdff;color:#61748d;font-size:11px;line-height:1.7;white-space:pre-wrap}.profile-form{margin-top:18px}.profile-section-title{font-size:10px;font-weight:850;letter-spacing:.8px;text-transform:uppercase;color:#52708f;margin:18px 0 10px}.profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-field{display:flex;flex-direction:column;gap:6px}.profile-field span{font-size:9px;font-weight:800;color:#6e8097;text-transform:uppercase;letter-spacing:.4px}.profile-field input,.profile-field textarea{width:100%;box-sizing:border-box;border:1px solid #dbe4ef;border-radius:11px;background:#fbfdff;padding:10px 11px;font:inherit;font-size:11px;color:#18304f;outline:none}.profile-field textarea{resize:vertical;line-height:1.55}.profile-field input:focus,.profile-field textarea:focus{border-color:#8db8f6;box-shadow:0 0 0 3px rgba(46,131,255,.09);background:#fff}.profile-full{margin-top:12px}.profile-readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.profile-readonly-grid>div{padding:12px 13px;background:#f6f9fd;border:1px solid #e4eaf2;border-radius:11px}.profile-form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.lm-reset-page .lm-login-shell{grid-template-columns:.85fr 1.15fr}.lm-reset-visual{background:linear-gradient(145deg,#f4f7ff,#edf3ff)}.lm-reset-back{width:100%;margin-top:9px;height:48px}.lm-reset-page .lm-form-head{margin-bottom:24px}
@media(max-width:980px){.lm-login-page{height:auto;min-height:100dvh;overflow:auto}.lm-login-shell{height:auto;max-height:none;min-height:100dvh}.lm-login-visual{height:46vh;min-height:390px}.lm-login-form-side{height:auto;min-height:54vh}.profile-grid{grid-template-columns:1fr}.user-menu-panel{right:-8px}}
@media(max-width:650px){.profile-detail-grid,.profile-form-grid,.profile-readonly-grid{grid-template-columns:1fr}.profile-hero{align-items:flex-start;flex-direction:column}.lm-login-page{padding:0}.lm-login-shell{border-radius:0}.lm-login-visual{min-height:350px}.lm-login-form-side{padding:42px 22px 60px}}

/* V38 — policy viewer should use a secure signed PDF URL; browser PDF viewer is the fallback, not Adobe. */
.policy-pdf-frame{display:block;background:#fff}
/* V38 — compact minimized Team Chat dock: never consumes meaningful viewport space */
.floating-chat-dock{right:18px;bottom:18px;width:52px!important;height:52px!important;min-height:52px!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center!important;gap:0!important;box-shadow:0 12px 34px rgba(14,35,70,.22)!important;z-index:10001!important}
.floating-chat-dock:hover{transform:translateY(-2px) scale(1.03)!important}
.floating-chat-dock .chat-dock-avatar{width:38px;height:38px;border-radius:50%;font-size:11px}
.floating-chat-dock .chat-dock-copy{display:none!important}
.floating-chat-dock .chat-dock-expand{position:absolute;right:1px;bottom:1px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #dbe3ee;color:#315f9e;box-shadow:0 2px 7px rgba(14,35,70,.12)}
.floating-chat-dock .chat-dock-expand .lm-icon{width:10px;height:10px}
.floating-chat-dock .chat-dock-dot{position:absolute;right:0;top:0;width:11px;height:11px;border:2px solid #fff;box-sizing:border-box}
@media(max-width:680px){.floating-chat-dock{left:auto!important;right:12px!important;bottom:12px!important;width:50px!important;height:50px!important;min-height:50px!important}}

/* V38 enterprise workday controls */
.user-menu-status{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-top:1px solid #edf1f6;color:#263b57}
.user-menu-status small{display:block;color:#7b8ba1;margin-top:3px;font-size:11px}
.user-menu-status .status-dot{margin-top:4px}

/* V38 compact global Team Chat launcher */
.floating-chat-dock{width:48px!important;height:48px!important;min-height:48px!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center!important;right:18px!important;bottom:18px!important;gap:0!important}
.floating-chat-dock .chat-dock-icon{width:22px;height:22px;display:grid;place-items:center}
.floating-chat-dock .chat-dock-icon .lm-icon{width:22px;height:22px}
.floating-chat-dock .chat-dock-dot{right:-1px!important;top:-1px!important;width:11px!important;height:11px!important}
@media(max-width:680px){.floating-chat-dock{right:12px!important;bottom:12px!important;width:46px!important;height:46px!important;min-height:46px!important}}

/* V41 — fixed-viewport login composition: fit every element inside the existing desktop viewport. */
@media(min-width:981px){
  .lm-login-page{height:100dvh;min-height:100dvh;padding:14px;overflow:hidden;box-sizing:border-box}
  .lm-login-shell{height:calc(100dvh - 28px);max-height:calc(100dvh - 28px);min-height:0}
  .lm-login-visual{height:100%;min-height:0}
  .lm-login-brand{left:44px;top:26px;width:220px;height:84px}
  .lm-login-logo{width:220px;max-height:92px}
  .lm-login-welcome{left:58px;top:132px;max-width:410px}
  .lm-login-welcome h2{font-size:32px;line-height:1.08}
  .lm-login-welcome p{margin-top:10px;font-size:13.5px;max-width:350px;line-height:1.5}
  .lm-login-scene{width:500px;height:405px;bottom:-8px}
  .lm-purple{left:76px;width:168px;height:315px}
  .lm-black{left:225px;width:116px;height:250px}
  .lm-orange{left:8px;width:228px;height:158px}
  .lm-yellow{left:294px;width:134px;height:190px}
  .lm-purple .lm-eyes{left:43px;top:36px}
  .lm-black .lm-eyes{left:25px;top:30px}
  .lm-orange .lm-eyes{left:79px;top:76px}
  .lm-yellow .lm-eyes{left:49px;top:36px}
  .lm-login-tip{left:58px;bottom:20px}
  .lm-login-form-side{align-items:flex-start;justify-content:center;padding:30px 8.5% 48px;overflow:hidden}
  .lm-form-wrap{width:min(100%,430px);margin-top:2px}
  .lm-form-head{margin-bottom:22px}
  .lm-mini{font-size:11px;margin-bottom:7px;letter-spacing:1.8px}
  .lm-form-head h1{font-size:38px}
  .lm-form-head p{margin-top:8px;font-size:13.5px;line-height:1.45}
  .lm-field{margin-bottom:14px}
  .lm-field label{font-size:12.5px;margin-bottom:6px}
  .lm-input-wrap input{height:52px;font-size:14px;border-radius:13px}
  .lm-row{margin:3px 0 19px}
  .lm-submit{height:52px;border-radius:13px}
  .lm-divider{margin:18px 0 14px}
  .lm-secure{font-size:11px}
  .lm-footer{bottom:9px;font-size:10px}
  .lm-theme{right:28px;top:24px}
}
@media(min-width:981px) and (max-height:700px){
  .lm-login-welcome{top:112px}
  .lm-login-welcome h2{font-size:29px}
  .lm-login-scene{height:360px;width:445px}
  .lm-purple{left:68px;width:150px;height:278px}
  .lm-black{left:202px;width:104px;height:220px}
  .lm-orange{width:205px;height:140px}
  .lm-yellow{left:266px;width:120px;height:170px}
  .lm-login-brand{top:20px}
  .lm-login-form-side{padding-top:22px;padding-bottom:36px}
  .lm-form-head h1{font-size:34px}
  .lm-form-head{margin-bottom:16px}
  .lm-field{margin-bottom:11px}
  .lm-input-wrap input{height:48px}
  .lm-submit{height:48px}
  .lm-row{margin-bottom:14px}
  .lm-divider{margin:13px 0 10px}
}

/* V41 Attendance UX — clear status language and direct month selection */
.attendance-controls,.attendance-month-controls{position:relative}
.attendance-month,.attendance-month-selector{cursor:pointer!important}
.attendance-month-picker{position:absolute;right:0;top:calc(100% + 8px);z-index:50}
.attendance-month-picker[hidden]{display:none!important}
.attendance-month-picker-card{width:300px;padding:14px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 45px rgba(16,24,40,.16)}
.month-picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.month-picker-head strong{font-size:15px;color:var(--navy-900)}
.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.month-picker-month{border:1px solid var(--border);background:#fff;border-radius:9px;padding:9px 5px;font-size:11px;font-weight:700;color:var(--text-secondary);cursor:pointer}
.month-picker-month:hover{border-color:#2563eb;color:#175cd3;background:#eff6ff}
.month-picker-month.selected{background:#2563eb;border-color:#2563eb;color:#fff}
.attendance-detail-intro{margin-top:9px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#f8fafc;color:var(--text-secondary);font-size:10.5px;line-height:1.5}
.attendance-empty b{display:block;color:var(--navy-900);margin-bottom:3px}
.attendance-empty span{display:block}
.attendance-session-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.attendance-session-number{font-size:10px!important;font-weight:800;color:var(--text-secondary)!important}
@media(max-width:600px){.attendance-month-picker{left:0;right:auto}.attendance-month-picker-card{width:min(300px,calc(100vw - 40px))}.month-picker-grid{gap:6px}.month-picker-month{padding:8px 4px}}

/* V42 — signed-out attendance state */
.att-dot.signedout{background:#667085}.att-cell.signedout{background:#f2f4f7;color:#344054}

/* V43 — enterprise admin time-record presentation */
.admin-section-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px;padding:4px 2px}.admin-section-hero h2{margin:5px 0 5px;color:var(--navy-900);font-size:28px;letter-spacing:-.8px}.admin-section-hero p{margin:0;color:var(--text-muted);font-size:12px;line-height:1.55}.enterprise-table{min-width:980px;border-collapse:separate;border-spacing:0}.enterprise-table thead th{position:sticky;top:0;z-index:2;background:#f5f8fc;border-bottom:1px solid #dce5ef;color:#62748b;font-size:10px;letter-spacing:.055em;padding:12px 14px}.enterprise-table tbody td{padding:13px 14px;border-bottom:1px solid #edf1f5;color:#243b5a;font-size:12px;background:#fff}.enterprise-table tbody tr:hover td{background:#f8fbff}.enterprise-table tbody tr:last-child td{border-bottom:0}.enterprise-table td:first-child,.enterprise-table th:first-child{padding-left:18px}.enterprise-table td:last-child,.enterprise-table th:last-child{padding-right:18px}.table-person{display:flex;align-items:center;gap:10px;min-width:170px}.table-person-avatar{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#e8f0ff;color:#245eaa;font-weight:800;font-size:10px}.table-person b{display:block;color:#173457}.table-person small{display:block;margin-top:3px;color:#8a98aa;font-size:10px}.timesheet-admin-summary{grid-template-columns:repeat(3,1fr);margin-bottom:16px}.timesheet-admin-summary .admin-summary-card b{font-size:23px}.timesheet-admin-month>div{display:flex;flex-direction:column;gap:4px}.timesheet-admin-month b{font-size:15px;color:var(--navy-900)}.timesheet-admin-month span{font-size:10px;color:#8190a4;line-height:1.5}.lh-employee small{max-width:230px}.lh-last small{display:block;margin-top:3px;color:#9aa7b8;font-size:9px;text-transform:uppercase;letter-spacing:.04em}.lh-detail-table{min-width:920px}.lh-detail-table td,.lh-detail-table th{vertical-align:middle}.admin-legend{display:flex;flex-wrap:wrap;gap:8px 16px}.admin-legend span{font-size:10px;color:#6f7f93}.table-wrap{border:1px solid #e3eaf2;border-radius:14px;overflow:auto;background:#fff;box-shadow:0 4px 16px rgba(31,55,82,.04)}
@media(max-width:900px){.timesheet-admin-summary{grid-template-columns:1fr}.admin-section-hero{align-items:flex-start;flex-direction:column}.enterprise-table{min-width:920px}}

/* V62 — official LiveMentorHub logo + Teams-style presence */
.sidebar-brand{justify-content:center;align-items:center;padding:4px 8px 16px;min-height:104px}
.sidebar-brand .sidebar-logo{width:92px;height:96px;padding:0;background:transparent;border-radius:0;box-shadow:none;object-fit:contain}
.sidebar-brand-text{display:none}
.presence-dot{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;border:2px solid #fff;box-sizing:content-box;display:block}
.presence-dot.available{background:#16b364}
.presence-dot.away{background:#f59e0b}
.presence-dot.offline{background:#aab4c2}
.chat-item-icon,.floating-chat-contact-avatar{position:relative}
.general-readonly-notice{display:flex;align-items:center;gap:10px;min-height:44px;border:1px dashed #d5deea;border-radius:12px;padding:10px 13px;background:#fafbfd;color:#728198}
.general-readonly-notice b{display:block;color:#40536d;font-size:11px}
.general-readonly-notice small{display:block;margin-top:2px;font-size:9px;color:#8a97a8}
.general-lock-icon{width:32px;height:32px;border-radius:10px;background:#eef3fa;color:#6e819c;display:grid;place-items:center;flex:none}
.floating-general-readonly{margin:10px;border-top:1px dashed #d5deea}
.staff-designation-select,.staff-manager-select,.staff-status-select{height:32px;border:1px solid #d9e3ee;border-radius:8px;background:#fff;padding:0 8px;font:500 10px Inter;color:#253953;min-width:130px}
.staff-manager-select{min-width:170px}
.staff-status-select{min-width:145px}


/* V62 — premium message actions + five-message chat viewport */
.chat-messages{height:410px;flex:0 0 410px;min-height:0;overflow-y:scroll;overflow-x:hidden;scrollbar-width:auto;scrollbar-color:#b8c5d8 #f3f6fa;}
.chat-messages::-webkit-scrollbar{width:10px}
.chat-messages::-webkit-scrollbar-track{background:#f3f6fa;border-left:1px solid #e7edf4}
.chat-messages::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#b7c4d7,#8ea2bd);border:2px solid #f3f6fa;border-radius:999px}
.chat-message-meta{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-height:25px;margin-top:5px}
.chat-message-meta small{margin-top:0!important;flex:1}
.chat-message-actions{display:inline-flex;align-items:center;gap:5px;margin-left:auto;opacity:.78;transition:opacity .16s ease,transform .16s ease}
.chat-message-row:hover .chat-message-actions,.chat-message-actions:focus-within{opacity:1;transform:translateY(-1px)}
.chat-message-action{width:29px;height:27px;padding:0;border:1px solid rgba(132,150,175,.28);border-radius:8px;background:rgba(255,255,255,.92);color:#526985;display:grid;place-items:center;cursor:pointer;box-shadow:0 3px 10px rgba(18,42,73,.08);backdrop-filter:blur(6px);transition:transform .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,border-color .16s ease}
.chat-message-action .lm-icon{width:14px;height:14px;stroke-width:1.8}
.chat-message-action:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(18,42,73,.14)}
.chat-message-edit:hover{background:#eef5ff;border-color:#b8d0f7;color:#2166c9}
.chat-message-delete:hover{background:#fff1f1;border-color:#f1c4c4;color:#c44949}
.chat-message-row.mine .chat-message-action{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.24);color:#fff;box-shadow:0 3px 10px rgba(8,25,58,.12)}
.chat-message-row.mine .chat-message-edit:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.4);color:#fff}
.chat-message-row.mine .chat-message-delete:hover{background:rgba(255,235,235,.22);border-color:rgba(255,210,210,.45);color:#fff}
.floating-chat-messages{height:410px;flex:0 0 410px;min-height:0;overflow-y:scroll;overflow-x:hidden;scrollbar-width:auto;scrollbar-color:#b8c5d8 #eef3f8}
.floating-chat-messages::-webkit-scrollbar{width:9px}
.floating-chat-messages::-webkit-scrollbar-track{background:#eef3f8}
.floating-chat-messages::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#b7c4d7,#8ea2bd);border:2px solid #eef3f8;border-radius:999px}
.floating-chat-messages .chat-message-actions{gap:4px}
.floating-chat-messages .chat-message-action{width:27px;height:25px;border-radius:7px}
@media(max-width:680px){.chat-messages{height:360px;flex-basis:360px}.floating-chat-messages{height:360px;flex-basis:360px}}

/* V62 consolidated repairs */
.chat-sidebar-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.chat-new-group-btn{border:1px solid #dce5ef;background:#fff;color:#286bd2;border-radius:9px;padding:7px 9px;display:inline-flex;align-items:center;gap:5px;font:700 9px Inter;cursor:pointer;white-space:nowrap}
.chat-new-group-btn:hover{background:#edf4ff;border-color:#bfd3ef}
.chat-new-group-btn .lm-icon{width:12px;height:12px}
.chat-composer,.floating-chat-composer{display:flex;flex-direction:column;gap:7px}
.chat-composer-main,.floating-chat-composer-main{display:grid;grid-template-columns:42px 42px minmax(0,1fr) 82px;gap:8px;align-items:stretch;width:100%}
.chat-composer-main textarea,.floating-chat-composer-main textarea{width:100%;min-width:0}
.chat-composer-main .chat-attach-btn,.chat-composer-main .chat-voice-btn,.floating-chat-composer-main .chat-attach-btn,.floating-chat-composer-main .chat-voice-btn{width:42px;height:44px}
.chat-attachment-preview{display:flex;align-items:center;gap:8px;min-height:30px;width:100%;padding:6px 9px;border:1px solid #dce5ef;background:#f7faff;border-radius:9px;font-size:10px;color:#52657f;box-sizing:border-box}
.chat-attachment-preview>span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.chat-attachment-preview>span:first-child{color:#286bd2;display:grid;place-items:center}
.chat-attachment-preview>span:first-child .lm-icon{width:13px;height:13px}
.chat-attachment-preview button{border:0;background:transparent;color:#8090a5;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;cursor:pointer}
.chat-attachment-preview button:hover{background:#e8eef7;color:#173a70}
.chat-attachment-preview button .lm-icon{width:12px;height:12px}
.chat-attachment-preview.hidden{display:none}
.chat-voice-play{border:1px solid #cbd9eb;background:#fff;color:#286bd2;border-radius:8px;padding:5px 8px;font:800 9px Inter;cursor:pointer;white-space:nowrap}
.chat-voice-play:hover{background:#edf4ff}
.chat-audio-player{margin-top:8px}.chat-audio-inline{width:100%;max-width:300px;height:34px}
.user-presence-menu{gap:8px}.presence-select{margin-left:auto;border:1px solid #dce5ef;background:#fff;border-radius:8px;padding:5px 7px;font:600 9px Inter;color:#42566f;outline:none}
.status-dot.away{background:#f59e0b}.status-dot.offline{background:#aab4c2}.status-dot.online{background:#16b364}
@media(max-width:680px){.chat-composer-main,.floating-chat-composer-main{grid-template-columns:38px 38px minmax(0,1fr) 76px;gap:6px}.chat-composer-main .chat-attach-btn,.chat-composer-main .chat-voice-btn,.floating-chat-composer-main .chat-attach-btn,.floating-chat-composer-main .chat-voice-btn{width:38px}.chat-new-group-btn span{display:none}}

/* V62 — Employee Assets */
.assets-page{display:flex;flex-direction:column;gap:16px}.assets-form-card{scroll-margin-top:18px}.asset-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}.asset-form-grid label{display:flex;flex-direction:column;gap:6px}.asset-form-grid label span{font-size:10px;font-weight:800;color:#62738b}.asset-form-grid input,.asset-form-grid select,.asset-form-grid textarea{width:100%;border:1px solid #dce5ef;border-radius:11px;padding:10px 11px;font:inherit;font-size:12px;color:#17304f;background:#fff;outline:none}.asset-form-grid input:focus,.asset-form-grid select:focus,.asset-form-grid textarea:focus{border-color:#7ca6d8;box-shadow:0 0 0 3px rgba(44,105,177,.08)}.asset-full{grid-column:1/-1}.asset-form-actions{display:flex;justify-content:flex-end;gap:9px}.assets-summary{margin-top:0}.assets-table td{vertical-align:middle}.assets-table .asset-type{display:block;color:#8796a9;font-size:9px;margin-top:2px}.asset-notes{max-width:260px;color:#718199;font-size:10px}.asset-actions{display:flex;gap:6px;white-space:nowrap}.assets-empty{border:1px dashed #d7e1ec;border-radius:16px;padding:42px 20px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#7a899c}.assets-empty-icon{width:48px;height:48px;border-radius:15px;background:#eef4ff;color:#2d69b5;display:grid;place-items:center;margin-bottom:10px}.assets-empty-icon .lm-icon{width:23px;height:23px}.assets-empty b{color:#213b5c;font-size:14px}.assets-empty span{font-size:10px;margin-top:5px}@media(max-width:900px){.asset-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.asset-form-grid{grid-template-columns:1fr}.asset-full{grid-column:auto}.asset-form-actions{justify-content:stretch}.asset-form-actions .btn{flex:1}}

/* V62 IT asset matrix */
.asset-matrix-wrap{overflow:auto;border:1px solid #e0e8f1;border-radius:14px}.asset-matrix{border-collapse:separate;border-spacing:0;min-width:1850px;width:100%;font-size:10px}.asset-matrix th,.asset-matrix td{padding:10px 9px;border-right:1px solid #edf1f5;border-bottom:1px solid #edf1f5;text-align:center;vertical-align:middle;background:#fff}.asset-matrix thead th{position:sticky;top:0;z-index:2;background:#f7f9fc;color:#51647b;font-size:9px;font-weight:800;white-space:nowrap}.asset-matrix-employee{position:sticky!important;left:0;z-index:3!important;min-width:210px;text-align:left!important;background:#fff!important}.asset-matrix thead .asset-matrix-employee{z-index:4!important;background:#f7f9fc!important}.asset-matrix tbody tr:hover td{background:#fbfdff}.asset-matrix-no{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e3e8ee;border-radius:999px;padding:4px 8px;color:#8996a6;font-size:9px;font-weight:800}.asset-matrix-yes{display:inline-block;min-width:52px}.asset-matrix-yes summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #cfe6d8;background:#f2fbf5;color:#1d7a45;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:900}.asset-matrix-yes summary::-webkit-details-marker{display:none}.asset-matrix-yes summary em{font-style:normal;background:#d8efdf;border-radius:999px;padding:1px 5px;font-size:8px}.asset-matrix-details{position:absolute;z-index:10;width:230px;margin-top:6px;margin-left:-85px;padding:10px;background:#fff;border:1px solid #d9e3ee;border-radius:12px;box-shadow:0 12px 30px rgba(24,48,78,.14);text-align:left}.asset-detail-item+.asset-detail-item{border-top:1px solid #edf1f5;margin-top:8px;padding-top:8px}.asset-detail-item b,.asset-detail-item span,.asset-detail-item small{display:block}.asset-detail-item b{font-size:10px;color:#183250}.asset-detail-item span{font-size:9px;color:#51647b;margin-top:3px}.asset-detail-item small{font-size:8px;color:#8996a6;margin-top:3px}.asset-type-pill{display:inline-block;padding:4px 7px;border-radius:999px;background:#f1f5f9;color:#52657b;font-size:9px;font-weight:800}.assets-table .asset-type{display:block;color:#8796a9;font-size:9px;margin-top:2px}
/* V62 — automatic Teams-style presence is rendered directly in Team Chat. */
.chat-item-icon,.chat-avatar,.chat-dock-avatar,.floating-chat-contact-avatar{position:relative}
.chat-item-icon .presence-dot{right:-3px;bottom:-3px}
.chat-avatar .presence-dot{right:-3px;bottom:-2px}
.chat-dock-avatar .presence-dot{right:-3px;bottom:-2px}
.floating-chat-contact-avatar .presence-dot{right:-3px;bottom:-3px}
.user-presence-menu .presence-select{display:none!important}

/* ========================================================================== 
   V62 ENTERPRISE EMPLOYEE EXPERIENCE
   ========================================================================== */
.nav-group-label{padding:15px 14px 6px;color:rgba(255,255,255,.34);font-size:8px;font-weight:800;letter-spacing:1.4px;list-style:none}
.home-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px;background:linear-gradient(135deg,#fff 0%,#f6f9ff 100%);border:1px solid #e3eaf4!important;box-shadow:0 14px 40px rgba(14,35,70,.055)!important;overflow:hidden;position:relative}
.home-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-100px;top:-130px;background:rgba(55,113,221,.08)}
.home-hero-copy{position:relative;z-index:1}.home-hero h1{margin:7px 0 8px;font-size:30px;letter-spacing:-.7px;color:#102846}.home-hero h1 span{font-size:25px}.home-hero p{margin:0;color:#718199;font-size:12px;max-width:650px}.home-quick-actions{display:flex;gap:9px;margin-top:18px}.home-hero-score{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:125px}.home-hero-score>span{font-size:9px;color:#8291a5;font-weight:700;text-transform:uppercase;letter-spacing:.6px}.home-score-ring{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#2d6fe7 var(--pct),#e8eef7 0);position:relative}.home-score-ring:before{content:"";position:absolute;inset:8px;background:#fff;border-radius:50%}.home-score-ring>div{position:relative;text-align:center}.home-score-ring b{display:block;font-size:21px;color:#15315a}.home-score-ring small{display:block;font-size:8px;color:#8493a7;text-transform:uppercase}.home-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 20px}.home-kpi{display:flex;align-items:center;gap:10px;padding:15px;border:1px solid #e5ebf3;border-radius:14px;background:#fff;box-shadow:0 7px 22px rgba(14,35,70,.035)}.home-kpi-icon{width:34px;height:34px;border-radius:10px;background:#edf4ff;color:#2d6fe7;display:grid;place-items:center;flex:none}.home-kpi-icon .lm-icon{width:17px}.home-kpi b{display:block;color:#162d4b;font-size:12px}.home-kpi small{display:block;color:#8997a9;font-size:9px;margin-top:3px}.home-section{margin:0 0 22px}.home-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:10px}.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.action-card{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;text-align:left;border:1px solid #e4eaf2;background:#fff;border-radius:13px;padding:13px 14px;cursor:pointer;box-shadow:0 6px 20px rgba(14,35,70,.03);transition:.15s}.action-card:hover{transform:translateY(-1px);border-color:#bfd3ef;box-shadow:0 9px 25px rgba(14,35,70,.06)}.action-icon{width:38px;height:38px;border-radius:11px;background:#f0f5ff;color:#2e6fdc;display:grid;place-items:center}.action-icon .lm-icon{width:18px}.action-card b{display:block;color:#172e4c;font-size:11px}.action-card small{display:block;color:#8795a8;font-size:9px;margin-top:4px}.action-arrow{font-size:20px;color:#9aacbf}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.service-card{position:relative;text-align:left;padding:16px;border:1px solid #e5ebf2;background:#fff;border-radius:14px;cursor:pointer;min-height:125px;transition:.15s}.service-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(14,35,70,.06);border-color:#c7d8ed}.service-card>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#f1f5fb;color:#416d9f;margin-bottom:11px}.service-card>span .lm-icon{width:17px}.service-card b{display:block;font-size:11px;color:#17304f}.service-card small{display:block;margin-top:5px;line-height:1.45;color:#8795a8;font-size:9px;max-width:170px}.service-card i{position:absolute;right:13px;bottom:12px;font-style:normal;color:#7390b3}.enterprise-page{display:flex;flex-direction:column;gap:16px}.page-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 26px;background:linear-gradient(135deg,#fff,#f6f9ff);border:1px solid #e3eaf3;border-radius:16px;box-shadow:0 10px 30px rgba(14,35,70,.04)}.page-hero h1{margin:5px 0 4px;font-size:27px;color:#102846}.page-hero p{margin:0;color:#77879c;font-size:11px}.hero-pill{padding:8px 12px;border-radius:999px;background:#edf4ff;color:#2e6fdc;font-size:9px;font-weight:800;white-space:nowrap}.task-board{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:16px}.task-card-large{padding:22px}.task-row{width:100%;display:grid;grid-template-columns:28px 34px 1fr auto 18px;align-items:center;gap:10px;padding:13px 0;border:0;border-bottom:1px solid #edf1f5;background:transparent;text-align:left;cursor:pointer}.task-row:last-child{border-bottom:0}.task-number{font-size:9px;color:#9aa8b8;font-weight:800}.task-row-icon{width:34px;height:34px;border-radius:10px;background:#f0f5ff;color:#2e6fdc;display:grid;place-items:center}.task-row-icon .lm-icon{width:16px}.task-copy b{display:block;font-size:11px;color:#17304f}.task-copy small{display:block;margin-top:3px;font-size:9px;color:#8b99aa}.task-status{font-size:8px;font-weight:800;color:#2f6fdb;background:#edf4ff;border-radius:999px;padding:5px 8px}.task-side{padding:22px}.clean-list{margin:14px 0 0;padding-left:18px;color:#738399;font-size:10px;line-height:2}.people-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px}.enterprise-search{width:100%;height:42px;border:1px solid #dce5ef;border-radius:11px;background:#fff;padding:0 13px;font:500 11px Inter;color:#17304f;outline:none}.enterprise-search:focus{border-color:#6ca1ed;box-shadow:0 0 0 3px rgba(55,117,225,.09)}.people-toolbar>.enterprise-search{max-width:520px}.presence-legend{display:flex;gap:14px;white-space:nowrap}.presence-legend span{font-size:9px;color:#75859a;display:flex;align-items:center;gap:5px}.presence-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#aab5c2}.presence-dot.online{background:#27b36a}.presence-dot.away{background:#f0a328}.presence-dot.offline{background:#9aa6b4}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.person-card{padding:17px;border:1px solid #e3eaf2;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(14,35,70,.035)}.person-head{display:flex;align-items:center;gap:11px}.person-avatar{width:42px;height:42px;border-radius:13px;background:#edf3fd;color:#2f68c8;display:grid;place-items:center;font-size:11px;font-weight:800;position:relative}.person-avatar .presence-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid #fff;width:11px;height:11px}.person-head b{display:block;font-size:12px;color:#17304f}.person-head small{display:block;font-size:9px;color:#8492a5;margin-top:3px}.person-meta{display:flex;flex-direction:column;gap:5px;margin:15px 0;color:#8290a3;font-size:9px}.person-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf1f5;padding-top:11px}.presence-label{font-size:9px;font-weight:800}.presence-label.available{color:#19975a}.presence-label.away{color:#c77a09}.presence-label.offline{color:#7f8c9b}.performance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.performance-card{padding:18px;border:1px solid #e4eaf2;border-radius:14px;background:#fff}.performance-card small{font-size:9px;color:#8795a7;text-transform:uppercase;letter-spacing:.5px}.performance-card b{display:block;font-size:25px;color:#17304f;margin:5px 0 12px}.bar,.progress-track{height:6px;border-radius:999px;background:#e9eef5;overflow:hidden}.bar span,.progress-track span{display:block;height:100%;border-radius:999px;background:#2d6fe7}.development-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.development-grid button{border:1px solid #e4eaf2;background:#fbfcfe;border-radius:12px;padding:14px;text-align:left;cursor:pointer}.development-grid b,.development-grid span{display:block}.development-grid b{font-size:10px;color:#17304f}.development-grid span{font-size:9px;color:#8593a6;margin:5px 0 8px}.onboard-progress{width:65px;height:65px;border-radius:50%;background:#edf4ff;color:#2d6fe7;display:grid;place-items:center;text-align:center}.onboard-progress b{display:block;font-size:17px}.onboard-progress small{display:block;font-size:7px;text-transform:uppercase}.onboard-list{margin-top:16px}.onboard-row{width:100%;display:grid;grid-template-columns:38px 1fr 18px;align-items:center;gap:12px;padding:14px 0;border:0;border-bottom:1px solid #edf1f5;background:transparent;text-align:left;cursor:pointer}.onboard-check{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#f0f3f7;color:#8290a1;font-size:10px;font-weight:800}.onboard-check.done{background:#e9f8f0;color:#1b9a5e}.onboard-row b,.onboard-row small{display:block}.onboard-row b{font-size:11px;color:#17304f}.onboard-row small{font-size:9px;color:#8795a7;margin-top:3px}.hr-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hr-detail-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.hr-detail-list small,.hr-detail-list b{display:block}.hr-detail-list small{font-size:8px;color:#8b99a9;text-transform:uppercase;letter-spacing:.5px}.hr-detail-list b{font-size:10px;color:#17304f;margin-top:3px}.hr-service-list{display:flex;flex-direction:column;margin-top:12px}.hr-service-list button{display:grid;grid-template-columns:1fr auto;gap:3px;padding:12px 0;border:0;border-bottom:1px solid #edf1f5;background:transparent;text-align:left;cursor:pointer}.hr-service-list b{font-size:10px;color:#17304f}.hr-service-list span{font-size:9px;color:#8795a7}.hr-service-list button{color:#7c91ad}.recognition-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.recognition-card{display:flex;gap:13px;padding:17px;border:1px solid #e4eaf2;border-radius:14px;background:#fff}.recognition-star{width:36px;height:36px;border-radius:11px;background:#fff4d8;color:#d4931b;display:grid;place-items:center;font-size:17px;flex:none}.recognition-card b{display:block;font-size:11px;color:#17304f}.recognition-card small{display:block;font-size:8px;color:#a17a2b;margin-top:4px;text-transform:uppercase;letter-spacing:.4px}.recognition-card p{margin:8px 0;font-size:10px;line-height:1.5;color:#697b91}.recognition-card em{font-style:normal;font-size:8px;color:#9aa6b4}.recognition-empty{text-align:center;padding:45px}.empty-icon{font-size:28px;color:#d4931b}.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.support-card{padding:20px;border:1px solid #e4eaf2;border-radius:15px;background:#fff}.support-card>span{width:38px;height:38px;border-radius:12px;background:#edf4ff;color:#2e6fdc;display:grid;place-items:center}.support-card>span .lm-icon{width:18px}.support-card b,.support-card small{display:block}.support-card b{margin-top:13px;font-size:11px;color:#17304f}.support-card small{margin-top:5px;line-height:1.5;color:#8795a7;font-size:9px;min-height:32px}.support-card button{margin-top:12px;border:0;background:transparent;padding:0;color:#2e6fdc;font-size:9px;font-weight:800;cursor:pointer}.ticket-list{margin-top:14px}.ticket-row{display:grid;grid-template-columns:65px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.ticket-row>b{font-size:9px;color:#71839a}.ticket-row strong,.ticket-row small{display:block}.ticket-row strong{font-size:10px;color:#17304f}.ticket-row small{font-size:8px;color:#8b99a9;margin-top:3px}.ticket-status{font-style:normal;font-size:8px;font-weight:800;padding:5px 8px;border-radius:999px;background:#edf4ff;color:#2e6fdc}.knowledge-search-wrap{width:330px}.knowledge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.knowledge-card{position:relative;text-align:left;min-height:145px;padding:18px;border:1px solid #e4eaf2;border-radius:15px;background:#fff;cursor:pointer;box-shadow:0 7px 22px rgba(14,35,70,.03)}.knowledge-card>span{width:36px;height:36px;border-radius:11px;background:#eef4ff;color:#2e6fdc;display:grid;place-items:center}.knowledge-card>span .lm-icon{width:18px}.knowledge-card b,.knowledge-card small{display:block}.knowledge-card b{font-size:11px;color:#17304f;margin-top:13px}.knowledge-card small{font-size:9px;line-height:1.5;color:#8795a7;margin-top:4px;max-width:220px}.knowledge-card i{position:absolute;right:16px;bottom:14px;color:#7b92af;font-style:normal}.faq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.faq-grid details{border:1px solid #e7edf4;border-radius:11px;padding:11px;background:#fbfcfe}.faq-grid summary{cursor:pointer;font-size:9px;font-weight:800;color:#17304f}.faq-grid p{font-size:9px;color:#8290a3;line-height:1.5;margin:8px 0 0}.modal-backdrop{position:fixed;inset:0;background:rgba(9,22,42,.48);display:grid;place-items:center;padding:20px;z-index:9999}.modal-card{width:min(520px,100%);background:#fff;border-radius:17px;box-shadow:0 24px 70px rgba(0,0,0,.2);padding:20px}.modal-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:15px}.modal-head b,.modal-head small{display:block}.modal-head b{font-size:15px;color:#17304f}.modal-head small{font-size:9px;color:#8a98aa;margin-top:3px}.modal-head>button{border:0;background:#f1f4f8;border-radius:8px;width:30px;height:30px;cursor:pointer}.modal-field{display:block;margin:11px 0}.modal-field>span{display:block;font-size:9px;color:#65788f;font-weight:800;margin-bottom:5px}.modal-field input,.modal-field select,.modal-field textarea{width:100%;border:1px solid #dce5ef;border-radius:9px;padding:10px;font:500 11px Inter;outline:none}.modal-field textarea{min-height:100px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.empty-inline{padding:18px 0;color:#8b99aa;font-size:9px}
@media(max-width:1000px){.home-kpi-grid{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}.people-grid{grid-template-columns:repeat(2,1fr)}.support-grid{grid-template-columns:1fr 1fr}.knowledge-grid{grid-template-columns:1fr 1fr}.hr-grid,.task-board{grid-template-columns:1fr}.performance-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.home-hero{align-items:flex-start;flex-direction:column}.home-hero-score{align-self:flex-start;flex-direction:row}.action-grid,.recognition-grid,.people-grid,.support-grid,.knowledge-grid{grid-template-columns:1fr}.people-toolbar,.page-hero{align-items:flex-start;flex-direction:column}.people-toolbar>.enterprise-search,.knowledge-search-wrap{max-width:none;width:100%}.presence-legend{flex-wrap:wrap}.faq-grid,.development-grid{grid-template-columns:1fr}.hr-detail-list{grid-template-columns:1fr}.home-kpi-grid,.performance-grid{grid-template-columns:1fr 1fr}.service-grid{grid-template-columns:1fr 1fr}}

.presence-dot.available{background:#27b36a}

.global-search-wrap{position:relative;width:min(390px,38vw);margin-right:20px}.global-search-input{width:100%;height:34px;border:1px solid #e0e7ef;background:#f8fafc;border-radius:10px;padding:0 12px;font:500 10px Inter;color:#18304f;outline:none}.global-search-input:focus{background:#fff;border-color:#b7cce7;box-shadow:0 0 0 3px rgba(45,111,231,.07)}.global-search-panel{position:absolute;top:40px;left:0;width:100%;min-width:300px;background:#fff;border:1px solid #e2e8f0;border-radius:13px;box-shadow:0 18px 45px rgba(14,35,70,.13);padding:7px;z-index:1000;max-height:390px;overflow:auto}.global-search-panel.hidden{display:none}.global-search-heading{font-size:7px;color:#91a0b0;font-weight:800;letter-spacing:.9px;text-transform:uppercase;padding:8px 9px 5px}.global-search-panel button{width:100%;display:grid;grid-template-columns:31px 1fr 14px;align-items:center;gap:8px;border:0;background:transparent;border-radius:9px;padding:8px;text-align:left;cursor:pointer}.global-search-panel button:hover{background:#f2f6fb}.global-search-panel button>span{width:30px;height:30px;border-radius:9px;background:#edf4ff;color:#2e6fdc;display:grid;place-items:center;position:relative}.global-search-panel button .lm-icon{width:15px}.global-search-panel button b,.global-search-panel button small{display:block}.global-search-panel button b{font-size:9px;color:#17304f}.global-search-panel button small{font-size:7.5px;color:#8795a7;margin-top:2px}.global-search-panel button>i{font-style:normal;color:#9aabbd}.global-person-avatar{font-size:8px;font-weight:800}.global-person-avatar .presence-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid #fff;width:9px;height:9px}.topbar-left-wrap{display:flex;align-items:center;min-width:0}.topbar-left-wrap>div:last-child{min-width:0}
@media(max-width:800px){.global-search-wrap{width:240px;margin-right:10px}}@media(max-width:680px){.global-search-wrap{position:absolute;left:12px;right:12px;top:7px;width:auto;margin:0}.topbar{padding-top:55px}.global-search-panel{width:100%}.topbar-left-wrap{display:block;width:100%}}
.benefit-list{margin-top:12px}.benefit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #edf1f5}.benefit-row b,.benefit-row small{display:block}.benefit-row b{font-size:10px;color:#17304f}.benefit-row small{font-size:8.5px;color:#8795a7;margin-top:3px}

.hr-benefit-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.hr-benefit-row b,.hr-benefit-row span{display:block}.hr-benefit-row b{font-size:10px;color:#17304f}.hr-benefit-row span{font-size:8px;color:#8795a7;margin-top:3px}.hr-benefit-row em{text-transform:capitalize;font-style:normal;font-size:8px;font-weight:800;padding:5px 8px;border-radius:999px;background:#edf4ff;color:#2e6fdc}

/* ============================================================================
   V70 — modern enterprise employee experience refresh
   Visual direction: Microsoft Viva / ServiceNow Employee Center / Workday /
   Atlassian-inspired calm density, strong hierarchy, fewer repeated actions.
   ============================================================================ */
:root{
  --sidebar-w:248px;
  --surface:#ffffff;
  --surface-2:#f7f9fc;
  --surface-3:#f1f5f9;
  --ink:#172b4d;
  --ink-soft:#64748b;
  --line:#e5eaf1;
  --blue:#1769e0;
  --blue-soft:#edf4ff;
  --shadow-soft:0 8px 30px rgba(16,35,65,.045);
  --shadow-hover:0 14px 34px rgba(16,35,65,.085);
}
html,body{background:#f5f7fa;color:var(--ink)}
body{font-size:13px}
.app-shell{background:#f5f7fa}
.sidebar{width:var(--sidebar-w);background:#fff;color:var(--ink);border-right:1px solid #e6ebf2;padding:18px 12px 14px;box-shadow:4px 0 18px rgba(16,35,65,.025);}
.sidebar-brand{justify-content:flex-start;min-height:62px;padding:3px 9px 14px;margin-bottom:10px;border-bottom:1px solid #edf1f5}
.sidebar-brand .sidebar-logo{width:48px;height:48px;padding:0;background:#fff;border:1px solid #e7ebf0;border-radius:12px;box-shadow:none}
.sidebar-brand-text{display:block}
.sidebar-brand-name{color:#17304f;font-size:14px;letter-spacing:-.1px}
.sidebar-brand-sub{color:#7d8ca1;font-size:8px;letter-spacing:1.15px}
.sidebar-label{display:none}
.nav-list{gap:1px}
.nav-group-label{padding:14px 12px 5px;color:#9aa6b5;font-size:8px;letter-spacing:1.1px}
.nav-item{height:38px;box-sizing:border-box;padding:8px 11px;border-radius:10px;color:#66778d;font-size:11px;font-weight:650;gap:10px}
.nav-item .ic{color:#718198;opacity:1;width:18px;height:18px}
.nav-item .ic .lm-icon{width:17px;height:17px;stroke-width:1.75}
.nav-item:hover{background:#f5f8fc;color:#183452}
.nav-item:hover .ic{color:#1769e0}
.nav-item.active{background:#edf4ff;color:#155bc1;box-shadow:none;font-weight:750}
.nav-item.active .ic{color:#1769e0}
.nav-chat-badge{box-shadow:none;border:2px solid #fff;background:#e2534d}
.nav-more-item{margin-top:4px;border-top:1px solid #edf1f5;border-radius:0;padding-top:12px;height:48px;background:transparent!important;color:#728197!important}
.nav-more-item .ic{color:#8190a3!important}
.nav-more-chevron{margin-left:auto;font-size:12px;transition:transform .18s ease}
.nav-more-item.active .nav-more-chevron{transform:rotate(180deg)}
.more-nav-panel{display:none;margin:4px 5px 6px;padding:6px;background:#f7f9fc;border:1px solid #e8edf3;border-radius:12px}
.more-nav-panel.open{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.more-nav-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:5px 7px 7px;color:#8794a6;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}
.more-nav-head button{border:0;background:transparent;color:#8d9bad;cursor:pointer;padding:3px}.more-nav-head .lm-icon{width:13px}
.more-nav-link{display:flex;align-items:center;gap:7px;min-width:0;border:0;background:#fff;border-radius:8px;padding:8px 7px;color:#617289;font:600 8.5px Inter;cursor:pointer;text-align:left}
.more-nav-link:hover,.more-nav-link.active{background:#edf4ff;color:#1769e0}
.more-nav-link span:first-child{display:grid;place-items:center}.more-nav-link .lm-icon{width:14px;height:14px}
.sidebar-spacer{min-height:14px}
.sidebar-footer{padding:11px 8px 2px;border-top:1px solid #edf1f5}
.sidebar-footer-title{font-size:9px;color:#738198}.sidebar-footer-sub{font-size:8px;color:#a0aaba;margin-bottom:8px}
.signout-btn{justify-content:center;background:#f8fafc;color:#65758b;border:1px solid #e7ebf0;height:34px;font-size:10px}
.signout-btn:hover{background:#fff3f2;color:#b33c35;border-color:#f2d3d0}
.main{width:calc(100% - var(--sidebar-w));background:#f5f7fa}
.topbar{height:68px;box-sizing:border-box;padding:0 28px;background:rgba(255,255,255,.96);border-bottom:1px solid #e7ebf0;box-shadow:0 2px 10px rgba(16,35,65,.025);gap:20px}
.topbar-left-wrap{flex:1;display:flex;align-items:center;min-width:0;gap:22px}
.topbar-left-wrap>div:last-child{min-width:170px}
.topbar-title{font-size:16px;color:#193452;letter-spacing:-.25px}
.topbar-sub{font-size:10px;color:#8a98aa}
.global-search-wrap{order:2;flex:1;width:auto;max-width:420px;margin:0}
.topbar-left-wrap>div:first-child{order:2}
.topbar-left-wrap>div:last-child{order:1}
.global-search-input{height:38px;border-radius:11px;background:#f6f8fb;border:1px solid #e5eaf1;padding:0 14px;font-size:10.5px}
.global-search-input::placeholder{color:#9aa6b5}
.global-search-input:focus{background:#fff;border-color:#bfd3ef;box-shadow:0 0 0 4px rgba(23,105,224,.06)}
.topbar-right{gap:8px}
.topbar-right>.badge{height:30px;padding:0 10px;font-size:9px;background:#f5f8fc;color:#63758d;border:1px solid #e6ebf1}
.notification-bell{width:36px;height:36px;border-radius:10px;background:#f7f9fb!important;color:#5f7188!important;border:1px solid #e7ebf0!important;font-size:18px}
.user-chip{height:40px;padding:4px 9px 4px 5px;background:#fff;border:1px solid #e5eaf1;box-shadow:none;border-radius:11px}
.user-avatar{width:30px;height:30px;font-size:10px;background:linear-gradient(135deg,#2e78df,#173f78)}
.user-chip-name{font-size:10.5px}.user-chip-role{font-size:8px;color:#8a98aa}.user-menu-chevron{font-size:10px;color:#9aa6b5}
.content{padding:24px 32px 52px;max-width:1500px;box-sizing:border-box}
.view{max-width:1380px;margin:0 auto}
.card{border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-soft);padding:18px;background:#fff}
.card:hover{box-shadow:var(--shadow-soft)}
.section-title{font-size:14px;letter-spacing:-.1px}.section-sub{font-size:10px;color:#8a98aa}
.btn{border-radius:9px;font-weight:750;letter-spacing:.05px}.btn-primary{background:#1769e0}.btn-secondary{background:#fff;border:1px solid #dfe6ef;color:#52667f}

/* Home — remove duplicated service-directory blocks and make the landing page a true daily workspace. */
.modern-home{display:flex;flex-direction:column;gap:16px}
.home-welcome{min-height:196px;box-sizing:border-box;padding:27px 30px;border:1px solid #e2e8f0;border-radius:18px;background:linear-gradient(115deg,#fff 0%,#f7faff 68%,#eef5ff 100%);display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;overflow:hidden;box-shadow:0 12px 34px rgba(18,44,78,.045)}
.home-welcome:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;right:-140px;top:-145px;background:rgba(41,111,224,.075)}
.welcome-copy,.welcome-status{position:relative;z-index:1}.welcome-copy{min-width:0}.welcome-copy h1{margin:6px 0 8px;font-size:29px;line-height:1.08;letter-spacing:-.75px;color:#142e4e}.welcome-copy p{margin:0;color:#718198;font-size:11px}.welcome-actions{display:flex;gap:8px;margin-top:20px}.welcome-actions .btn{height:36px;padding:0 13px;font-size:10px}
.welcome-status{width:250px;padding:16px 18px;border:1px solid rgba(215,225,238,.95);border-radius:14px;background:rgba(255,255,255,.75);backdrop-filter:blur(10px)}
.status-line{display:flex;align-items:center;gap:8px;font-size:10px;color:#1d3655}.status-line .presence-dot{width:9px;height:9px}.welcome-status>small{display:block;margin-top:7px;color:#8795a7;font-size:8.5px;line-height:1.45}.welcome-date{margin-top:12px;padding-top:10px;border-top:1px solid #e9eef4;color:#64768e;font-size:9px;font-weight:700}
.home-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.home-kpi{min-height:70px;padding:13px 14px;border:1px solid #e3e9f1;border-radius:13px;background:#fff;box-shadow:none}.home-kpi-icon{width:34px;height:34px;border-radius:10px;background:#f0f5fc;color:#1769e0}.home-kpi b{font-size:10.5px}.home-kpi small{font-size:8px}
.home-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 305px;gap:16px;align-items:start}.home-main-column{min-width:0}.home-section{margin:0 0 16px}.home-section-head{margin-bottom:9px}.home-section-head .section-title{font-size:13px}
.action-grid{grid-template-columns:1fr 1fr;gap:8px}.action-card{min-height:66px;padding:11px 12px;border:1px solid #e3e9f1;border-radius:12px;box-shadow:none}.action-card:hover{transform:none;border-color:#cbd9ea;box-shadow:0 8px 20px rgba(17,47,83,.05)}.action-icon{width:31px;height:31px;border-radius:9px;background:#f0f5fc;color:#1769e0}.action-card b{font-size:9.5px}.action-card small{font-size:8px}.action-arrow{font-size:16px;color:#a1adba}
.home-panel{border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:var(--shadow-soft);padding:17px 18px}.home-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.home-panel-head.compact{margin-bottom:11px}.home-panel-head h2{margin:3px 0 3px;font-size:13px;color:#183452;letter-spacing:-.15px}.home-panel-head p{margin:0;color:#8795a7;font-size:9px}.text-link{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#1769e0;font:750 9px Inter;cursor:pointer;padding:3px}.text-link .lm-icon{width:12px}.learning-snapshot-body{display:flex;justify-content:space-between;gap:20px;align-items:center}.learning-progress{display:flex;align-items:center;gap:13px;min-width:0;flex:1}.learning-progress-ring{width:66px;height:66px;flex:none;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1769e0 var(--pct),#eaf0f7 0);position:relative}.learning-progress-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}.learning-progress-ring span{position:relative;text-align:center}.learning-progress-ring b{display:block;font-size:14px;color:#193756}.learning-progress-ring small{display:block;font-size:6px;color:#8795a7;text-transform:uppercase}.learning-progress>div:last-child{min-width:0}.learning-progress>div:last-child>b{display:block;font-size:9.5px;color:#29415e}.learning-progress>div:last-child>small{display:block;font-size:8px;color:#8a98aa;margin-top:4px}.learning-progress .progress-track{width:min(260px,100%);height:5px}.learning-meta{display:flex;gap:18px}.learning-meta div{padding-left:14px;border-left:1px solid #edf1f5}.learning-meta span,.learning-meta b{display:block}.learning-meta span{font-size:7px;text-transform:uppercase;letter-spacing:.5px;color:#9aa6b5}.learning-meta b{font-size:10px;color:#203a59;margin-top:4px}
.home-rail{display:flex;flex-direction:column;gap:12px}.utility-list{display:flex;flex-direction:column}.utility-list button{display:grid;grid-template-columns:32px 1fr 12px;align-items:center;gap:9px;padding:10px 0;border:0;border-bottom:1px solid #edf1f5;background:transparent;text-align:left;cursor:pointer}.utility-list button:last-child{border-bottom:0}.utility-list button:hover b{color:#1769e0}.utility-icon{width:30px;height:30px;border-radius:9px;background:#f2f6fb;color:#5f7896;display:grid;place-items:center}.utility-icon .lm-icon{width:15px}.utility-list b,.utility-list small{display:block}.utility-list b{font-size:9.5px;color:#29415e}.utility-list small{font-size:7.5px;color:#8c99a9;margin-top:3px}.utility-list i{font-style:normal;color:#9aa6b5}.presence-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.presence-summary>div{padding:10px 6px;border:1px solid #edf1f5;border-radius:10px;text-align:center}.presence-summary .presence-dot{display:block;margin:0 auto 6px}.presence-summary b{font-size:7.5px;color:#6d7d92}.people-rail-cta{width:100%;margin-top:9px;height:31px;border:1px solid #dfe7f0;border-radius:8px;background:#fff;color:#1769e0;font:750 8.5px Inter;cursor:pointer}
/* Do not surface the old duplicate service directory on the landing page. */
.modern-home .service-grid,.modern-home .home-hero,.modern-home .mastery-hero{display:none!important}
.news-announcements{margin-top:0;border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:16px 18px;box-shadow:var(--shadow-soft)}
.news-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.news-section-head .section-title{font-size:13px}.news-rotation-note{font-size:7.5px;color:#9aa6b5}.news-ribbon{border:1px solid #e7ecf2;border-radius:11px;box-shadow:none}.news-ribbon-copy h3{font-size:11px}.news-ribbon-copy p{font-size:8.5px}
/* Generic enterprise pages */
.enterprise-page{max-width:1180px;margin:0 auto}.page-hero{padding:22px 24px;border-radius:15px;background:#fff;border:1px solid #e2e8f0;box-shadow:var(--shadow-soft);margin-bottom:14px}.page-hero h1{font-size:23px;letter-spacing:-.45px;color:#183452}.hero-pill{background:#f0f5fc;color:#52708f;border:1px solid #e0e8f2;font-size:8px}
.people-grid,.knowledge-grid,.support-grid,.performance-grid,.recognition-grid{gap:10px}.people-card,.knowledge-card,.support-card,.performance-card,.recognition-card{border-radius:12px;box-shadow:none}.people-card:hover,.knowledge-card:hover,.support-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}
/* Keep typography from the legacy training UI readable but less dense. */
.stat-card .stat-value{font-size:22px}.stat-card .stat-label{font-size:9px}.stat-card .stat-foot{font-size:9px}
@media(max-width:1050px){:root{--sidebar-w:220px}.home-main-grid{grid-template-columns:1fr}.home-rail{display:grid;grid-template-columns:1fr 1fr}.welcome-status{width:220px}.content{padding-left:22px;padding-right:22px}}
@media(max-width:780px){:root{--sidebar-w:0px}.sidebar{position:sticky;top:0;z-index:100;width:100%;height:auto;display:flex;flex-direction:row;overflow-x:auto;padding:7px 10px;border-right:0;border-bottom:1px solid #e4e9f0}.sidebar-brand{min-width:48px;border:0;margin:0;padding:0}.sidebar-brand-text,.sidebar-footer,.nav-group-label{display:none}.nav-list{flex-direction:row;align-items:center;gap:3px}.nav-item{width:38px;height:38px;justify-content:center;padding:0;border-radius:9px}.nav-item .lbl,.nav-more-chevron,.nav-chat-badge{display:none}.more-nav-panel{position:absolute;top:54px;right:8px;width:300px;z-index:2000;box-shadow:0 16px 35px rgba(15,34,65,.14)}.sidebar-spacer{display:none}.main{width:100%}.topbar{height:auto;min-height:64px;padding:10px 14px}.topbar-left-wrap{gap:8px}.topbar-left-wrap>div:last-child{display:none}.global-search-wrap{position:static!important;max-width:none;flex:1}.topbar-right>.badge{display:none}.user-chip-name,.user-chip-role,.user-menu-chevron{display:none}.content{padding:16px 14px 40px}.home-welcome{flex-direction:column;align-items:flex-start;padding:22px}.welcome-status{width:100%;box-sizing:border-box}.home-kpi-grid{grid-template-columns:1fr 1fr}.home-main-grid{grid-template-columns:1fr}.home-rail{display:grid;grid-template-columns:1fr 1fr}.learning-snapshot-body{align-items:flex-start;flex-direction:column}.learning-meta{width:100%;justify-content:space-between}.learning-meta div{flex:1}.action-grid{grid-template-columns:1fr}}
@media(max-width:520px){.home-kpi-grid{grid-template-columns:1fr}.home-rail{grid-template-columns:1fr}.welcome-copy h1{font-size:24px}.welcome-actions{flex-wrap:wrap}.more-nav-panel{right:4px;width:calc(100vw - 28px)}}

/* V70 visual polish: eliminate repeated page titles and keep enterprise pages compact. */
.enterprise-page .page-hero h1{display:none!important}
.page-hero-compact{padding:16px 20px!important;min-height:72px}
.page-hero-compact p{font-size:10px!important}
.people-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.person-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:680px){.page-hero-compact{min-height:auto}.people-grid{grid-template-columns:1fr}}

/* V70 company-holiday attendance treatment */
.att-dot.holiday{background:#b54708}.att-cell.holiday{background:#fff4e5;color:#9a3412}.employee-day.holiday{background:linear-gradient(180deg,#fff7ed,#fff);border-color:#fed7aa}.employee-day.holiday small{color:#c2410c}

/* ========================================================================== 
   POLICY COMPLIANCE / DIGITAL ACKNOWLEDGEMENT
   ========================================================================== */
.policy-card-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}.policy-ack-badge{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:850;letter-spacing:.35px;white-space:nowrap}.policy-ack-badge.signed{background:#edf8f1;color:#17724a;border:1px solid #d5ecdf}.policy-ack-badge.pending{background:#fff7e8;color:#9a6500;border:1px solid #f1dfb6}.policy-ack-meta{display:block;color:#69809b;font-size:8.5px;margin:-5px 0 12px}.policy-card-action{border-color:#e6dcc4}.policy-card-acknowledged{border-color:#dfe9e3}.policy-compliance-summary{display:flex;gap:8px}.policy-compliance-summary>div{min-width:100px;padding:11px 13px;border:1px solid #e1e8f1;border-radius:14px;background:#fff;text-align:center}.policy-compliance-summary b{display:block;font-size:20px;color:#17345a}.policy-compliance-summary span{display:block;margin-top:2px;font-size:8px;text-transform:uppercase;letter-spacing:.65px;font-weight:800;color:#8292a6}.policy-compliance-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #efdcb5;background:#fffaf0;border-radius:15px}.policy-compliance-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#f4c96d;color:#5f4200;font-weight:900;flex:none}.policy-compliance-banner>div{flex:1}.policy-compliance-banner b{display:block;color:#6e4a00;font-size:11px}.policy-compliance-banner small{display:block;color:#8a734d;font-size:9px;margin-top:3px;line-height:1.45}.policy-history-card{margin-top:2px}.policy-history-list{display:flex;flex-direction:column}.policy-history-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #edf1f5}.policy-history-check{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#edf8f1;color:#18734d;font-weight:900}.policy-history-row b{display:block;color:#203957;font-size:10.5px}.policy-history-row small{display:block;color:#7a8da4;font-size:8.5px;margin-top:3px}.policy-signoff-panel{border-top:1px solid #e4eaf1;background:#fbfcfe;padding:12px 20px;flex:none;box-sizing:border-box}.policy-signoff-form{min-width:0}.policy-signoff-copy b{display:block;color:#17345a;font-size:12px}.policy-signoff-copy small{display:block;color:#72849a;font-size:9px;line-height:1.5;margin-top:3px;max-width:760px}.policy-signoff-form{margin-top:10px;display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.25fr) auto;align-items:end;gap:12px}.policy-signoff-actions{flex-wrap:wrap}.policy-signoff-form label{display:flex;flex-direction:column;gap:6px}.policy-signoff-form label>span{font-size:8.5px;text-transform:uppercase;letter-spacing:.55px;font-weight:850;color:#687d96}.policy-signoff-form input[type=text],.policy-signoff-form input:not([type]){box-sizing:border-box;width:100%;border:1px solid #d7e1ec;border-radius:10px;padding:10px 11px;background:#fff;color:#17345a;font:inherit;font-size:11px;outline:none}.policy-signoff-form input:focus{border-color:#82ace4;box-shadow:0 0 0 3px rgba(45,112,211,.08)}.policy-signoff-form label>small{font-size:8px;color:#8a9aae}.policy-accept-check{display:grid!important;grid-template-columns:18px 1fr;align-items:start;gap:8px!important;padding-bottom:2px}.policy-accept-check input{margin:2px 0 0;width:15px;height:15px;accent-color:#2d70d3}.policy-accept-check span{text-transform:none!important;letter-spacing:0!important;font-size:9px!important;font-weight:650!important;line-height:1.45;color:#536a83!important}.policy-signoff-actions{display:flex;gap:8px;justify-content:flex-end}.policy-signed-state{display:flex;align-items:center;gap:11px}.policy-signed-check{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf7f0;color:#18734d;font-weight:900;flex:none}.policy-signed-state>div{flex:1}.policy-signed-state b{display:block;color:#1d4c38;font-size:11px}.policy-signed-state small{display:block;color:#74879b;font-size:8.5px;margin-top:3px}.policy-text-viewer{height:100%;overflow:auto;background:#fff;padding:28px 34px;color:#344b67;font-size:12px;line-height:1.8}.policy-admin-compliance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:15px}.policy-admin-kpis{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.policy-admin-kpis span{padding:9px 11px;border:1px solid #e1e8f1;border-radius:11px;background:#fff;color:#7b8da2;font-size:8px;font-weight:750;white-space:nowrap}.policy-admin-kpis b{color:#19385c;font-size:13px;margin-right:3px}.policy-admin-compliance-list{display:flex;flex-direction:column;gap:10px}.policy-admin-compliance-row{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:13px 14px}.policy-admin-compliance-main{display:flex;align-items:center;justify-content:space-between;gap:12px}.policy-admin-compliance-main b{display:block;color:#1e3856;font-size:10.5px}.policy-admin-compliance-main small{display:block;color:#7d8fa4;font-size:8.5px;margin-top:3px}.policy-admin-compliance-main strong{font-size:14px;color:#1b5f46}.policy-admin-progress{height:6px;border-radius:99px;background:#edf1f5;overflow:hidden;margin:9px 0}.policy-admin-progress span{display:block;height:100%;background:#2d70d3;border-radius:99px}.policy-admin-compliance-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.policy-signoffs-modal{width:min(980px,96vw)}.policy-signoffs-head{padding:22px 50px 15px 22px;border-bottom:1px solid #e5ebf2}.policy-signoffs-head h2{margin:8px 0 4px;font-size:21px;color:#153454}.policy-signoffs-head p{margin:0;color:#7b8ca0;font-size:9px}.policy-signoffs-body{padding:0 20px;max-height:58vh;overflow:auto}.policy-signoff-table-head,.policy-signoff-table-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) minmax(130px,.8fr);gap:14px;align-items:center}.policy-signoff-table-head{padding:11px 0 8px;color:#8292a5;font-size:7.5px;text-transform:uppercase;letter-spacing:.6px;font-weight:850}.policy-signoff-table-row{padding:11px 0;border-top:1px solid #edf1f5;color:#405772;font-size:9px}.policy-signoffs-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;border-top:1px solid #e5ebf2;background:#fbfcfe;color:#8291a3;font-size:8px}@media(max-width:800px){.policy-signoff-form{grid-template-columns:1fr}.policy-signoff-actions{justify-content:flex-start}.policy-compliance-summary>div{min-width:82px}.policy-admin-compliance-head{flex-direction:column}.policy-admin-kpis{justify-content:flex-start}.policy-signoff-table-head,.policy-signoff-table-row{grid-template-columns:minmax(180px,1.4fr) 1fr}.policy-signoff-table-head span:last-child,.policy-signoff-table-row>span:last-child{display:none}}@media(max-width:600px){.policy-compliance-summary{width:100%}.policy-compliance-summary>div{flex:1}.policies-hero{gap:12px}.policy-history-row{grid-template-columns:26px minmax(0,1fr)}.policy-history-row button{grid-column:2;justify-self:start}.policy-signed-state{align-items:flex-start;flex-wrap:wrap}.policy-signed-state .btn{margin-left:41px}.policy-signoffs-body{padding:0 13px}.policy-signoffs-foot{padding:11px 13px}}
.home-policy-alert{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid #ecd9ad;background:#fffaf0;border-radius:14px;margin:12px 0}.home-policy-alert>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f1c765;color:#614400;font-weight:900}.home-policy-alert>div{flex:1}.home-policy-alert b{display:block;color:#6b4a00;font-size:10.5px}.home-policy-alert small{display:block;color:#8a744e;font-size:8.5px;margin-top:2px}

/* V70 — My Day workday status placement + employee profile photo */
.home-welcome{display:flex;align-items:flex-start;justify-content:flex-start!important}
.home-welcome .welcome-copy{width:100%;max-width:860px}
.home-welcome .welcome-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;width:fit-content;min-width:300px;margin-top:15px;padding:11px 14px;border:1px solid #e0e8f2;border-radius:12px;background:rgba(255,255,255,.82);box-shadow:0 5px 18px rgba(14,35,70,.035)}
.home-welcome .welcome-status .status-line{display:flex;align-items:center;gap:7px}
.home-welcome .welcome-status small{font-size:9px;color:#7f90a5}
.home-welcome .welcome-status .welcome-date{margin-left:auto;padding-left:14px;border-left:1px solid #e5ebf2;font-size:9px;color:#667b95;font-weight:700;white-space:nowrap}
.profile-avatar-xl-photo{overflow:hidden;padding:0!important}
.profile-avatar-xl-photo .profile-avatar-photo,.profile-avatar-xl-photo .profile-avatar-initials{width:100%;height:100%;display:grid;place-items:center}
.profile-avatar-xl-photo .profile-avatar-photo{object-fit:cover}
.profile-avatar-initials{font-weight:900}
.profile-photo-editor{display:flex;align-items:center;gap:15px;margin:16px 0 4px;padding:14px;border:1px solid #e3eaf2;border-radius:14px;background:#f9fbfe}
.profile-photo-preview{width:72px;height:72px;border-radius:18px;overflow:hidden;flex:none;background:#edf3fd;color:#2f68c8;display:grid;place-items:center;font-size:16px;font-weight:900;border:1px solid #dce6f2}
.profile-photo-preview img{width:100%;height:100%;object-fit:cover}
.profile-photo-editor>b,.profile-photo-editor small{display:block}
.profile-photo-editor b{font-size:11px;color:#17304f}
.profile-photo-editor small{font-size:8.5px;color:#8392a5;line-height:1.5;margin-top:4px}
.profile-photo-actions{display:flex;gap:8px;align-items:center;margin-top:9px}
.profile-upload-btn{position:relative;overflow:hidden;cursor:pointer}
.profile-upload-btn input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
@media(max-width:650px){.home-welcome .welcome-status{width:100%;min-width:0}.home-welcome .welcome-status .welcome-date{margin-left:0;padding-left:0;border-left:0;width:100%}.profile-photo-editor{align-items:flex-start}}

/* V70 — enterprise table system + weekly timesheet summary */
.table-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.table-subtext{display:block;margin-top:4px;color:#8a98aa;font-size:10px}.enterprise-table{table-layout:auto}.enterprise-table thead th{white-space:nowrap}.enterprise-table tbody td{height:50px}.enterprise-table tbody tr:nth-child(even) td{background:#fbfcfe}.enterprise-table tbody tr:nth-child(even):hover td{background:#f4f8fd}.timesheet-admin-table{min-width:0;width:100%}.timesheet-admin-table th:nth-child(1){width:28%}.timesheet-admin-table th:nth-child(2){width:19%}.timesheet-admin-table th:nth-child(3){width:13%}.timesheet-admin-table th:nth-child(4){width:18%}.timesheet-admin-table th:nth-child(5){width:16%}.timesheet-admin-table th:nth-child(6){width:14%}.timesheet-admin-table td:nth-child(n+3),.timesheet-admin-table th:nth-child(n+3){text-align:right}.timesheet-admin-table td:last-child,.timesheet-admin-table th:last-child{text-align:left}.timesheet-admin-table .table-person{min-width:190px}.timesheet-admin-table .table-person-avatar{flex:0 0 34px;width:34px;height:34px;border-radius:50%}.timesheet-table td,.timesheet-table th{vertical-align:middle}.timesheet-page .enterprise-table{min-width:900px}.timesheet-page .enterprise-table th:first-child,.timesheet-page .enterprise-table td:first-child{position:sticky;left:0;z-index:1;background:#fff}.timesheet-page .enterprise-table thead th:first-child{z-index:3;background:#f5f8fc}.timesheet-page .enterprise-table tbody tr:nth-child(even) td:first-child{background:#fbfcfe}.timesheet-page .enterprise-table tbody tr:hover td:first-child{background:#f4f8fd}.timesheet-admin-summary .admin-summary-card{min-height:96px}.timesheet-admin-summary .admin-summary-card b{font-size:24px}.timesheet-admin-month{padding-bottom:2px}.timesheet-admin-month span{max-width:860px}.table-wrap{scrollbar-width:thin}.table-wrap::-webkit-scrollbar{height:8px}.table-wrap::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}
@media(max-width:900px){.table-section-head{flex-direction:column}.timesheet-admin-table{min-width:820px}.timesheet-admin-table th:nth-child(1){width:230px}.timesheet-admin-table th:nth-child(2){width:180px}.timesheet-admin-table th:nth-child(4),.timesheet-admin-table th:nth-child(5){width:170px}.timesheet-admin-table th:nth-child(6){width:130px}}
@media(max-width:600px){.timesheet-page .enterprise-table{min-width:820px}.timesheet-kpis{grid-template-columns:1fr}.timesheet-controls{width:100%;justify-content:flex-start}.timesheet-controls strong{flex:1}}

/* V70 — unified enterprise data tables */
.enterprise-table thead th:first-child{border-top-left-radius:10px}.enterprise-table thead th:last-child{border-top-right-radius:10px}.enterprise-table tbody tr{transition:background .12s ease}.enterprise-table td{line-height:1.35}.enterprise-table td .badge{vertical-align:middle}.enterprise-table .table-person small,.enterprise-table .table-subtext{white-space:nowrap}.table-wrap{position:relative}.table-wrap::after{content:"";display:block;position:sticky;right:0;bottom:0;height:0;box-shadow:0 0 18px 8px rgba(15,39,71,.08);pointer-events:none}
@media(min-width:901px){.enterprise-table:not(.timesheet-admin-table) th:first-child,.enterprise-table:not(.timesheet-admin-table) td:first-child{position:sticky;left:0;z-index:1;background:#fff}.enterprise-table:not(.timesheet-admin-table) thead th:first-child{z-index:3;background:#f5f8fc}.enterprise-table:not(.timesheet-admin-table) tbody tr:nth-child(even) td:first-child{background:#fbfcfe}.enterprise-table:not(.timesheet-admin-table) tbody tr:hover td:first-child{background:#f4f8fd}}

/* V73 enterprise UX refinements */
.topbar-signout{height:36px;padding:0 11px;border:1px solid #ead7d5;border-radius:10px;background:#fff;color:#a94740;font:750 9px Inter;display:inline-flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap}
.topbar-signout:hover{background:#fff6f5;border-color:#e3bdb9;color:#8f3029}
.sidebar-footer .signout-btn{display:none}
.home-welcome{align-items:stretch}
.welcome-copy{display:flex;flex-direction:column;justify-content:center;flex:1}
.welcome-side{display:flex;align-items:center;position:relative;z-index:1}
.welcome-side .welcome-status{width:250px}
.welcome-actions{margin-top:20px}
.home-kpi{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px}
.home-kpi>div{min-width:0}
.home-kpi b,.home-kpi small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.action-grid{display:grid}
.action-card{display:grid;grid-template-columns:31px minmax(0,1fr) 16px;align-items:center;gap:10px;text-align:left}
.action-card>span:nth-child(2){min-width:0}
.action-card b,.action-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modern-home>.news-announcements{order:2}
.modern-home>.home-kpi-grid{order:3}
.modern-home>#homePolicyCompliance{order:4}
.modern-home>.home-main-grid{order:5}
.news-announcements{cursor:pointer}
.support-routing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.support-routing-card{padding:14px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:none}
.support-routing-card b,.support-routing-card span,.support-routing-card small{display:block}
.support-routing-card b{font-size:10px;color:#17304f}
.support-routing-card span{font-size:8px;color:#2e6fdc;margin-top:3px}
.support-routing-card small{font-size:8px;color:#8795a7;line-height:1.45;margin-top:5px}
.support-grid-detailed{grid-template-columns:repeat(3,1fr)}
.support-grid-detailed .support-card{cursor:pointer;text-align:left}
.support-grid-detailed .support-card em{display:block;margin-top:12px;color:#2e6fdc;font-size:9px;font-style:normal;font-weight:800}
.support-modal{width:min(620px,100%)}
.support-route-hint{margin:4px 0 10px;padding:8px 10px;border-radius:8px;background:#f5f8fc;color:#73859b;font-size:8.5px}
.support-route-hint b{color:#2e6fdc}
.ticket-row-detailed{grid-template-columns:65px minmax(0,1fr) auto}
.ticket-row-detailed>span:nth-child(2){min-width:0}
.ticket-row-detailed small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticket-department{display:inline-flex;align-items:center;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:800;margin-right:4px;background:#eef4ff;color:#2e6fdc}
.ticket-department.hr{background:#f4efff;color:#7454bd}.ticket-department.admin{background:#fff5df;color:#a26c13}.ticket-department.it{background:#edf4ff;color:#2e6fdc}
.support-kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px}
.support-kpi-grid>div{padding:12px;border:1px solid #e6ebf2;border-radius:10px;background:#fff}
.support-kpi-grid span,.support-kpi-grid b{display:block}.support-kpi-grid span{font-size:7.5px;color:#8b99aa;text-transform:uppercase;letter-spacing:.4px}.support-kpi-grid b{font-size:18px;color:#17304f;margin-top:4px}
.support-dept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.support-dept-grid>div{padding:10px;border:1px solid #edf1f5;border-radius:10px;background:#fbfcfe}.support-dept-grid span{font-size:8px;color:#8795a7;font-weight:800}.support-dept-grid b{font-size:16px;color:#17304f;margin-left:7px}.support-dept-grid small{display:block;font-size:7.5px;color:#9aa6b5;margin-top:3px}
.support-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.support-admin-head h2{margin:3px 0;font-size:15px;color:#183452}.support-admin-head p{margin:0;font-size:9px;color:#8795a7}
.admin-ticket-list{margin-top:12px;border-top:1px solid #edf1f5}.admin-ticket-row{display:grid;grid-template-columns:minmax(0,1.6fr) 180px 150px 150px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1f5}.admin-ticket-row>div{min-width:0}.admin-ticket-row b,.admin-ticket-row small,.admin-ticket-id{display:block}.admin-ticket-row b{font-size:10px;color:#17304f;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-ticket-row small{font-size:7.5px;color:#8a98aa;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-ticket-id{font-size:7px;color:#a0aaba}.admin-ticket-select{width:100%;border:1px solid #dfe6ef;border-radius:8px;background:#fff;padding:7px;font:700 8px Inter;color:#52667f}
.leave-balance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.leave-balance-card{padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.leave-balance-card span,.leave-balance-card b,.leave-balance-card small{display:block}.leave-balance-card span{font-size:7.5px;color:#8b99aa;text-transform:uppercase;letter-spacing:.45px}.leave-balance-card b{font-size:18px;color:#17304f;margin-top:5px}.leave-balance-card small{font-size:7.5px;color:#8a98aa;margin-top:4px}.leave-balance-card.primary{background:#f7faff;border-color:#dce8fa}.leave-balance-card.primary b{color:#1769e0}
.leave-request-person{min-width:145px}
@media(max-width:1050px){.support-kpi-grid{grid-template-columns:repeat(3,1fr)}.admin-ticket-row{grid-template-columns:1fr 150px 120px}.admin-ticket-row>div:last-child{grid-column:1/-1}.leave-balance-grid{grid-template-columns:1fr 1fr}.support-routing-grid{grid-template-columns:1fr}.welcome-side .welcome-status{width:220px}}
@media(max-width:780px){.topbar-signout span{display:none}.topbar-signout{width:36px;padding:0;justify-content:center}.home-welcome{align-items:flex-start}.welcome-side{width:100%}.welcome-side .welcome-status{width:100%;box-sizing:border-box}.support-grid-detailed{grid-template-columns:1fr}.support-kpi-grid{grid-template-columns:1fr 1fr}.support-dept-grid{grid-template-columns:1fr}.admin-ticket-row{grid-template-columns:1fr}.admin-ticket-row>div:last-child{grid-column:auto}.leave-balance-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.leave-balance-grid{grid-template-columns:1fr}.support-kpi-grid{grid-template-columns:1fr 1fr}}

/* V73 final audit — employee timesheet KPI clarity and policy reader ergonomics */
.timesheet-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.timesheet-kpis>div{min-width:0}.timesheet-kpis small{display:block;margin-top:4px;color:#8a98aa;font-size:9px;line-height:1.35}@media(max-width:900px){.timesheet-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.timesheet-kpis{grid-template-columns:1fr}}

/* V73.1 — final layout hardening: keep the status card on the right and
   prevent text/values from drifting or being clipped inside dashboard tiles. */
.home-welcome{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;justify-content:initial!important;gap:28px}
.home-welcome .welcome-copy{width:auto;max-width:none;min-width:0}
.home-welcome .welcome-side{min-width:0;display:flex;align-items:center;justify-content:flex-end}
.home-welcome .welcome-status{width:min(360px,100%);min-width:300px;margin-top:0;box-sizing:border-box}
.home-kpi-grid{align-items:stretch}
.home-kpi{min-width:0;min-height:78px;box-sizing:border-box}
.home-kpi>div{min-width:0}
.home-kpi b,.home-kpi small{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}
.home-kpi b{min-height:1.3em}
.action-card{min-width:0}
.action-card b,.action-card small{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.35}
.action-card .action-arrow{white-space:nowrap}
.learning-snapshot-body{min-width:0}
.learning-progress,.learning-meta{min-width:0}
.learning-meta{flex-shrink:0}
@media(max-width:900px){.home-welcome{grid-template-columns:1fr}.home-welcome .welcome-side{justify-content:flex-start}.home-welcome .welcome-status{width:100%;min-width:0}.learning-snapshot-body{flex-direction:column;align-items:flex-start}.learning-meta{width:100%;justify-content:space-between}}

/* Policy viewer: acknowledgement controls must remain visible at normal zoom. */
.policy-pdf-modal{display:grid;grid-template-rows:auto minmax(240px,1fr) auto;overflow:hidden}
.policy-pdf-head{min-width:0}
.policy-pdf-head>div:first-child{min-width:0}
.policy-pdf-head h2,.policy-pdf-head p{overflow-wrap:anywhere}
.policy-pdf-viewer{min-height:240px;overflow:hidden}
.policy-signoff-panel{min-height:128px;max-height:220px;overflow:auto}
.policy-signoff-form{min-width:0}
.policy-signoff-copy{min-width:0}
.policy-signoff-actions{flex-shrink:0}
@media(max-width:700px){.policy-pdf-modal{grid-template-rows:auto minmax(180px,1fr) auto;height:94vh;max-height:94vh}.policy-pdf-viewer{min-height:180px}.policy-signoff-panel{min-height:180px;max-height:240px}.policy-signoff-form{grid-template-columns:1fr}.policy-signoff-actions{justify-content:flex-start}}
/* V73.1 FINAL OVERRIDE — policy viewer rules must come after the generic
   modal rules above. This prevents the later .modal-card width/padding from
   collapsing the policy reader on normal browser zoom. */
.policy-pdf-modal{width:min(1120px,96vw)!important;height:min(90vh,900px)!important;max-height:90vh!important;overflow:hidden!important;display:grid!important;grid-template-rows:auto minmax(240px,1fr) auto!important;padding:0!important;box-sizing:border-box!important}
.policy-pdf-modal .policy-pdf-head{min-width:0;box-sizing:border-box}
.policy-pdf-modal .policy-pdf-viewer{min-height:240px;min-width:0;overflow:hidden}
.policy-pdf-modal .policy-signoff-panel{min-height:128px;max-height:220px;overflow:auto;box-sizing:border-box}
.policy-pdf-modal.policy-fullscreen{width:100vw!important;height:100vh!important;max-height:none!important;border-radius:0!important;padding:0!important}
.policy-modal-backdrop.policy-backdrop-fullscreen{padding:0!important}
@media(max-width:700px){.policy-pdf-modal{width:96vw!important;height:94vh!important;max-height:94vh!important;grid-template-rows:auto minmax(180px,1fr) auto!important}.policy-pdf-modal .policy-pdf-viewer{min-height:180px}.policy-pdf-modal .policy-signoff-panel{min-height:180px;max-height:240px}}

/* V73.2 — interaction and layout hardening */
.policy-pdf-modal{position:relative!important}
.policy-modal-tools{position:absolute!important;right:14px!important;top:12px!important;display:flex!important;align-items:center!important;gap:8px!important;z-index:20!important}
.policy-pdf-modal .policy-pdf-head{padding-right:150px!important}
.policy-pdf-modal .modal-close{position:relative!important;right:auto!important;top:auto!important}
.policy-pdf-modal.policy-fullscreen .policy-pdf-head{padding-right:150px!important}

/* Prevent dashboard values/descriptions from shifting between tiles. */
.home-kpi-grid{grid-auto-rows:minmax(82px,1fr)}
.home-kpi{height:100%;align-content:center}
.home-kpi b{font-size:14px;line-height:1.25;min-height:1.25em}
.home-kpi small{font-size:8.5px;line-height:1.35;margin-top:3px}
.action-card{height:100%;box-sizing:border-box;align-content:center}
.action-card b{line-height:1.3}
.action-card small{line-height:1.35;margin-top:3px}
.home-main-grid,.home-rail{align-items:stretch}
.home-main-grid>.card,.home-rail>.card{min-width:0}
.news-ribbon-copy{min-width:0}
.news-ribbon-copy h3,.news-ribbon-copy p{overflow-wrap:anywhere}

/* Consistent service-desk and leave cards at desktop and mobile widths. */
.support-routing-card,.support-card,.leave-balance-card{min-width:0;box-sizing:border-box}
.support-routing-card small,.support-card small,.leave-balance-card small{overflow-wrap:anywhere}
.support-kpi-grid>div{min-width:0;box-sizing:border-box}
.support-kpi-grid b{line-height:1.1}
.admin-ticket-row{min-width:0}
.admin-ticket-row small{overflow-wrap:anywhere}

/* Modal controls should never be clipped or displaced by generic modal rules. */
.modal-backdrop{box-sizing:border-box}
.modal-card{box-sizing:border-box;max-height:calc(100vh - 40px);overflow:auto}
.modal-head>div{min-width:0}
.modal-head b,.modal-head small{overflow-wrap:anywhere}

@media(max-width:700px){
  .policy-pdf-modal .policy-pdf-head{padding-right:62px!important}
  .policy-pdf-modal.policy-fullscreen .policy-pdf-head{padding-right:62px!important}
  .policy-modal-tools{right:9px!important;top:9px!important}
  .policy-fullscreen-btn{width:32px!important;padding:0!important}
  .policy-fullscreen-btn span{display:none}
}


/* V73.1 — premium UX hardening: brand, policy viewer, leave forms, timesheet clarity */
.sidebar-logo-mark{display:none!important}
.sidebar-logo-wordmark{display:block;width:190px;height:42px;object-fit:contain;object-position:left center;flex:0 0 190px;background:#fff;border-radius:7px}
.sidebar-brand{min-width:0}
.home-welcome .welcome-copy{min-width:0}.home-welcome .welcome-side{flex:0 0 auto}.welcome-side .welcome-status{box-sizing:border-box;max-width:100%}
.home-kpi,.action-card{min-width:0}.home-kpi>div,.action-card>span:nth-child(2){min-width:0}.home-kpi b,.home-kpi small,.action-card b,.action-card small{overflow-wrap:anywhere}
.policy-modal-backdrop{padding:14px!important}
.policy-pdf-modal{width:min(1120px,96vw)!important;height:min(94vh,900px)!important;max-height:94vh!important;padding:0!important;overflow:hidden!important;box-sizing:border-box}
.policy-pdf-modal .policy-pdf-head{padding:22px 165px 16px 24px!important;flex:0 0 auto;min-width:0}
.policy-pdf-head>div{min-width:0}.policy-pdf-head h2{overflow-wrap:anywhere;word-break:break-word}
.policy-modal-tools{right:100px!important;top:12px!important;display:flex!important;align-items:center;gap:8px;z-index:20;pointer-events:auto}
.policy-fullscreen-btn{position:relative;z-index:21;white-space:nowrap}
.policy-pdf-modal .modal-close{position:absolute!important;right:14px!important;top:12px!important;z-index:22!important;pointer-events:auto}
.policy-pdf-viewer{min-height:150px!important;flex:1 1 auto!important;overflow:hidden!important;position:relative}
.policy-pdf-frame{width:100%;height:100%;min-height:0!important;border:0}
.policy-pdf-note{flex:none}
.policy-signoff-panel{flex:0 0 auto!important;max-height:34vh;overflow:auto;padding:16px 20px!important}
.policy-signoff-form{margin-top:12px;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px!important;align-items:start!important}
.policy-signoff-form label{min-width:0}.policy-signoff-form .policy-accept-check{min-width:0}
.policy-signoff-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:2px;border-top:1px solid #edf1f5;margin-top:2px}
.policy-signoff-actions .btn{min-width:120px}
.policy-signed-state{min-width:0}.policy-signed-state>div{min-width:0}
.policy-signed-state b,.policy-signed-state small{overflow-wrap:anywhere}
.leave-balance-card b{font-variant-numeric:tabular-nums}.leave-form-grid input[readonly]{background:#f5f8fc;color:#536a83;cursor:not-allowed}
.timesheet-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.timesheet-kpis>div{min-width:0}.timesheet-kpis b,.timesheet-kpis span,.timesheet-kpis small{overflow-wrap:anywhere}
.timesheet-page .timesheet-table{min-width:960px}
.timesheet-admin-table{min-width:1060px!important}.timesheet-admin-table th:nth-child(3){width:12%}.timesheet-admin-table th:nth-child(4){width:17%}.timesheet-admin-table th:nth-child(5){width:17%}.timesheet-admin-table th:nth-child(6){width:17%}.timesheet-admin-table th:nth-child(7){width:12%}
@media(max-width:780px){.sidebar-logo-wordmark{display:none!important}.sidebar-logo-mark{display:block!important;width:42px!important;height:42px!important}.timesheet-kpis{grid-template-columns:1fr 1fr}.policy-pdf-modal{height:96vh!important;max-height:96vh!important}.policy-pdf-modal .policy-pdf-head{padding:14px 62px 10px 16px!important}.policy-signoff-panel{max-height:34vh}.policy-signoff-form{grid-template-columns:1fr!important}.policy-signoff-actions{grid-column:auto;justify-content:flex-start}.policy-fullscreen-btn span{display:none!important}.policy-fullscreen-btn{width:32px;padding:0}.policy-modal-tools{right:50px!important}}
@media(max-width:520px){.timesheet-kpis{grid-template-columns:1fr}.policy-modal-backdrop{padding:6px!important}.policy-pdf-modal{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:12px!important}.policy-pdf-modal .policy-pdf-head{padding-right:56px!important}.policy-signoff-actions{flex-wrap:wrap}.policy-signoff-actions .btn{min-width:110px}.sidebar-brand{justify-content:center!important}}
.policy-pdf-modal.policy-fullscreen{width:100vw!important;height:100vh!important;max-height:none!important;border-radius:0!important}
.policy-modal-backdrop.policy-backdrop-fullscreen{padding:0!important}
.policy-pdf-modal.policy-fullscreen .policy-pdf-head{padding-right:165px!important}
.lm-login-wordmark{width:min(360px,100%);height:auto;max-height:76px;object-fit:contain;object-position:left center;background:#fff;border-radius:8px;padding:5px;box-sizing:border-box}
@media(max-width:780px){.lm-login-wordmark{width:min(300px,100%);max-height:66px}}
.leave-field-help{display:block;color:#7388a0;font-size:8px;line-height:1.35;margin-top:-2px;min-height:0}
.policy-pdf-modal .policy-signoff-form .policy-accept-check{align-self:stretch}
.policy-signoff-panel{min-height:200px;box-sizing:border-box}
@media(max-width:780px){.policy-signoff-panel{min-height:210px;max-height:40vh}}
@media(max-width:520px){.policy-signoff-panel{min-height:240px;max-height:30vh;overflow-y:auto}}
.policy-pdf-modal .policy-signoff-panel{min-height:200px!important;max-height:34vh!important;flex:0 0 auto!important;box-sizing:border-box!important}
@media(max-width:780px){.policy-pdf-modal .policy-signoff-panel{min-height:210px!important;max-height:40vh!important}}
@media(max-width:520px){.policy-pdf-modal .policy-signoff-panel{min-height:240px!important;max-height:30vh!important}}
.policy-pdf-modal .policy-pdf-viewer{min-height:0!important}
@media(min-width:781px){.policy-pdf-modal .policy-modal-tools{right:108px!important}}
.policy-pdf-modal .policy-pdf-viewer{flex:1 1 0!important;min-height:0!important;height:auto!important}
.policy-pdf-modal{display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important}
.policy-pdf-modal .policy-signoff-panel{min-height:200px!important;max-height:240px!important;overflow:auto!important}
@media(max-width:780px){.policy-pdf-modal .policy-signoff-panel{min-height:210px!important;max-height:40vh!important}}
@media(max-width:520px){.policy-pdf-modal .policy-signoff-panel{min-height:240px!important;max-height:30vh!important}}
/* V73.1 — policy toolbar: keep Full screen and Close as true siblings, never overlapping. */
.policy-pdf-modal .policy-modal-tools{right:14px!important;top:12px!important}
.policy-pdf-modal .modal-close{position:relative!important;right:auto!important;top:auto!important;flex:0 0 auto!important}
.policy-pdf-modal .policy-pdf-head{padding-right:165px!important}
@media(max-width:900px){.policy-pdf-modal .policy-modal-tools{right:10px!important}.policy-pdf-modal .policy-pdf-head{padding-right:92px!important}.policy-fullscreen-btn span{display:none!important}.policy-fullscreen-btn{width:32px;padding:0}}


/* V73 FINAL HARDENING — brand and interaction consistency
   These rules intentionally sit last so they win over earlier experimental
   V73 overrides. */
.sidebar-brand{
  width:100%;
  box-sizing:border-box;
  justify-content:center!important;
  padding:6px 8px 16px!important;
}
.sidebar-logo-wordmark{display:none!important}
.sidebar-logo-mark{
  display:block!important;
  width:58px!important;
  height:58px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  object-fit:contain!important;
}
.sidebar-brand-text{display:none!important}

/* Exact supplied login logo: keep the full logo intact on its white card. */
.lm-login-brand{
  left:46px!important;
  top:28px!important;
  width:190px!important;
  height:150px!important;
  padding:12px!important;
  box-sizing:border-box;
  background:#fff;
  border-radius:14px;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 10px 28px rgba(13,42,99,.08);
}
.lm-login-logo{
  width:126px!important;
  height:126px!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  padding:0!important;
  background:transparent!important;
  filter:none!important;
}
@media(max-width:980px){
  .lm-login-brand{left:30px!important;top:20px!important;width:164px!important;height:132px!important}
  .lm-login-logo{width:108px!important;height:108px!important}
}
@media(max-width:560px){
  .lm-login-brand{left:18px!important;top:16px!important;width:140px!important;height:116px!important;padding:8px!important}
  .lm-login-logo{width:96px!important;height:96px!important}
}

/* Policy reader: stable three-zone layout at 100% zoom. */
.policy-modal-backdrop{
  padding:16px!important;
  overflow:auto!important;
  box-sizing:border-box!important;
}
.policy-pdf-modal{
  position:relative!important;
  width:min(1180px,96vw)!important;
  height:min(900px,calc(100vh - 32px))!important;
  max-height:calc(100vh - 32px)!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  padding:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.policy-pdf-modal .policy-modal-tools{
  position:absolute!important;
  top:14px!important;
  right:14px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  z-index:100!important;
  pointer-events:auto!important;
}
.policy-fullscreen-btn,
.policy-pdf-modal .policy-modal-close{
  height:40px!important;
  min-width:40px!important;
  width:auto!important;
  border:1px solid #d8e2ee!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#46617e!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  padding:0 12px!important;
  cursor:pointer!important;
  box-sizing:border-box!important;
  box-shadow:0 4px 12px rgba(17,47,83,.06);
}
.policy-pdf-modal .policy-modal-close{
  width:40px!important;
  padding:0!important;
  font-size:22px!important;
  line-height:1!important;
}
.policy-fullscreen-btn:hover,
.policy-pdf-modal .policy-modal-close:hover{
  background:#f7faff!important;
  border-color:#b9cbe0!important;
}
.policy-pdf-modal .policy-pdf-head{
  padding:24px 150px 16px 26px!important;
  min-width:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
.policy-pdf-modal .policy-pdf-head>div:first-child{min-width:0!important}
.policy-pdf-modal .policy-pdf-head h2{
  margin:8px 0 6px!important;
  font-size:26px!important;
  line-height:1.15!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.policy-pdf-modal .policy-pdf-head p{
  max-width:760px!important;
  margin:0!important;
  line-height:1.5!important;
  overflow-wrap:anywhere!important;
}
.policy-pdf-modal .policy-pdf-viewer{
  min-height:0!important;
  height:auto!important;
  overflow:hidden!important;
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
}
.policy-pdf-modal .policy-pdf-frame{
  flex:1 1 auto!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  border:0!important;
}
.policy-pdf-modal .policy-pdf-note{
  flex:0 0 auto!important;
  padding:8px 18px!important;
  border-top:1px solid #edf2f7!important;
  background:#fbfcfe!important;
  font-size:9px!important;
  line-height:1.35!important;
}
.policy-pdf-modal .policy-signoff-panel{
  min-height:214px!important;
  max-height:260px!important;
  overflow:auto!important;
  padding:16px 24px 18px!important;
  box-sizing:border-box!important;
  background:#fbfcfe!important;
  border-top:1px solid #e5ebf3!important;
}
.policy-signoff-copy b{font-size:14px!important;color:#183452!important}
.policy-signoff-copy small{display:block!important;margin-top:5px!important;line-height:1.45!important}
.policy-pdf-modal .policy-signoff-form{
  margin-top:12px!important;
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) minmax(300px,1.25fr)!important;
  gap:12px 18px!important;
  align-items:start!important;
}
.policy-pdf-modal .policy-signoff-form label{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
}
.policy-pdf-modal .policy-signoff-form label>span{
  font-size:9px!important;
  font-weight:800!important;
  color:#667d98!important;
  text-transform:uppercase!important;
  letter-spacing:.45px!important;
}
.policy-pdf-modal .policy-signoff-form input[type=text],
.policy-pdf-modal .policy-signoff-form input:not([type]){
  width:100%!important;
  height:44px!important;
  box-sizing:border-box!important;
}
.policy-pdf-modal .policy-accept-check{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start!important;
  gap:10px!important;
  padding:11px 12px!important;
  min-height:44px!important;
  border:1px solid #dfe7f1!important;
  border-radius:10px!important;
  background:#fff!important;
  box-sizing:border-box!important;
}
.policy-pdf-modal .policy-accept-check input{
  width:18px!important;
  height:18px!important;
  flex:0 0 18px!important;
  margin:1px 0 0!important;
}
.policy-pdf-modal .policy-accept-check span{
  text-transform:none!important;
  letter-spacing:0!important;
  font-size:10px!important;
  line-height:1.4!important;
  color:#50647d!important;
}
.policy-pdf-modal .policy-signoff-actions{
  grid-column:1/-1!important;
  display:flex!important;
  justify-content:flex-end!important;
  gap:9px!important;
  padding-top:12px!important;
  margin-top:0!important;
  border-top:1px solid #e7edf4!important;
}
.policy-pdf-modal .policy-signoff-actions .btn{
  min-width:132px!important;
  min-height:40px!important;
}
.policy-pdf-modal.policy-fullscreen{
  width:100vw!important;
  height:100vh!important;
  max-height:none!important;
  border-radius:0!important;
}
.policy-modal-backdrop.policy-backdrop-fullscreen{
  padding:0!important;
  overflow:hidden!important;
}
@media(max-width:780px){
  .policy-modal-backdrop{padding:6px!important}
  .policy-pdf-modal{
    width:100%!important;
    height:calc(100vh - 12px)!important;
    max-height:calc(100vh - 12px)!important;
    border-radius:14px!important;
  }
  .policy-pdf-modal .policy-modal-tools{top:10px!important;right:10px!important}
  .policy-fullscreen-btn{width:40px!important;padding:0!important}
  .policy-fullscreen-btn span{display:none!important}
  .policy-pdf-modal .policy-pdf-head{padding:16px 66px 12px 16px!important}
  .policy-pdf-modal .policy-pdf-head h2{font-size:22px!important}
  .policy-pdf-modal .policy-signoff-panel{min-height:230px!important;max-height:42vh!important;padding:14px 16px!important}
  .policy-pdf-modal .policy-signoff-form{grid-template-columns:1fr!important}
  .policy-pdf-modal .policy-signoff-actions{grid-column:auto!important;justify-content:flex-start!important;flex-wrap:wrap!important}
}
@media(max-width:520px){
  .policy-pdf-modal .policy-signoff-panel{min-height:250px!important;max-height:45vh!important}
  .policy-pdf-modal .policy-signoff-actions .btn{min-width:118px!important}
}

/* Dashboard tile alignment: fixed internal rhythm, no value/label drift. */
.modern-home{min-width:0}
.home-kpi-grid{align-items:stretch!important}
.home-kpi{
  min-height:86px!important;
  height:100%!important;
  box-sizing:border-box!important;
  align-items:center!important;
}
.home-kpi>div{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important}
.home-kpi b{
  min-height:18px!important;
  margin:0!important;
  line-height:1.3!important;
}
.home-kpi small{
  min-height:24px!important;
  margin-top:4px!important;
  line-height:1.35!important;
}
.action-card{
  min-height:72px!important;
  box-sizing:border-box!important;
}
.action-card>span:nth-child(2){
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
.action-card b{min-height:1.3em!important}
.action-card small{min-height:2.7em!important}

/* Ticket action rows remain usable at desktop and tablet widths. */
.admin-ticket-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:6px!important;
  min-width:0!important;
}
.admin-ticket-actions .admin-ticket-select{flex:1 1 110px!important;min-width:90px!important}
.ticket-row-detailed{
  min-width:0!important;
}
.ticket-withdraw-btn{white-space:nowrap!important}
@media(max-width:1050px){
  .admin-ticket-actions{justify-content:flex-start!important;flex-wrap:wrap!important}
}
@media(max-width:780px){
  .admin-ticket-actions{width:100%!important}
}

/* Leave balance is a whole-day policy in the portal. */
.leave-balance-card b{font-variant-numeric:tabular-nums!important}
.leave-balance-card.primary b{font-size:27px!important}

/* Explicitly surface the request lifecycle controls. */
.leave-request-actions,.admin-news-actions{align-items:center!important;flex-wrap:wrap!important}


/* V73.1 FINAL LOGIN BRANDING + AUTH SURFACE ISOLATION
   The supplied full LMH logo is transparent artwork. It must never be put
   inside an artificial white card/background. The compact mark is reserved
   for the authenticated portal, browser tab and desktop notifications. */
.lm-login-brand{
  left:52px!important;
  top:28px!important;
  width:190px!important;
  height:190px!important;
  padding:0!important;
  box-sizing:border-box!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
.lm-login-logo{
  width:182px!important;
  height:182px!important;
  max-width:182px!important;
  max-height:182px!important;
  object-fit:contain!important;
  object-position:center!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:none!important;
}
@media(min-width:981px){
  .lm-login-welcome{top:228px!important;left:58px!important;max-width:420px!important}
}
@media(min-width:981px) and (max-height:700px){
  .lm-login-brand{left:44px!important;top:20px!important;width:158px!important;height:158px!important}
  .lm-login-logo{width:150px!important;height:150px!important;max-width:150px!important;max-height:150px!important}
  .lm-login-welcome{top:184px!important;left:50px!important;max-width:390px!important}
}
@media(max-width:980px){
  .lm-login-brand{left:30px!important;top:18px!important;width:132px!important;height:132px!important}
  .lm-login-logo{width:128px!important;height:128px!important;max-width:128px!important;max-height:128px!important}
}
@media(max-width:560px){
  .lm-login-brand{left:20px!important;top:16px!important;width:112px!important;height:112px!important}
  .lm-login-logo{width:108px!important;height:108px!important;max-width:108px!important;max-height:108px!important}
}

/* Belt-and-suspenders protection: authenticated-only launchers/toasts are
   structurally hidden whenever the login page is mounted. */
body:has(#lmLoginPage) #floatingChatRoot,
body:has(#lmLoginPage) #chatNotificationToasts{display:none!important}

/* V73.2 modal microcopy — compact, aligned helper text. */
.modal-field-help{
  display:block!important;
  margin-top:6px!important;
  color:#7890ad!important;
  font-size:11px!important;
  line-height:1.45!important;
}


/* V73 FINAL — premium policy viewer geometry and modal isolation.
   Full-screen uses the viewport efficiently: compact title bar, dominant document
   canvas, and a right-sized acknowledgement area. The floating chat launcher must
   never sit above a modal or compete with policy controls. */
body.policy-view-open #floatingChatRoot,
body.policy-view-open #chatNotificationToasts{display:none!important}
body.policy-view-open{overflow:hidden!important}
.policy-pdf-modal{
  width:min(1320px,calc(100vw - 48px))!important;
  height:min(820px,calc(100vh - 48px))!important;
  max-height:calc(100vh - 48px)!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
}
.policy-pdf-modal .policy-pdf-head{
  min-height:104px!important;
  padding:16px 176px 14px 28px!important;
  display:flex!important;
  align-items:center!important;
}
.policy-pdf-modal .policy-pdf-head h2{
  font-size:23px!important;
  line-height:1.16!important;
  margin:7px 0 5px!important;
}
.policy-pdf-modal .policy-pdf-head p{
  font-size:10.5px!important;
  line-height:1.4!important;
  max-width:980px!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
}
.policy-pdf-modal .policy-pdf-viewer{
  min-height:0!important;
  height:auto!important;
  overflow:hidden!important;
}
.policy-pdf-modal .policy-pdf-note{
  padding:7px 18px!important;
  font-size:8.5px!important;
}
.policy-pdf-modal .policy-signoff-panel{
  min-height:0!important;
  max-height:none!important;
  padding:14px 28px 16px!important;
  overflow:visible!important;
}
.policy-pdf-modal .policy-signoff-panel.policy-signoff-required{
  min-height:170px!important;
}
.policy-pdf-modal .policy-signoff-panel.policy-signoff-readonly{
  min-height:82px!important;
  padding-top:12px!important;
  padding-bottom:12px!important;
}
.policy-pdf-modal .policy-signoff-copy b{font-size:13px!important}
.policy-pdf-modal .policy-signoff-copy small{font-size:9px!important;max-width:1000px!important}
.policy-pdf-modal .policy-signoff-form{
  margin-top:10px!important;
  grid-template-columns:minmax(300px,1fr) minmax(420px,1.35fr)!important;
  gap:10px 16px!important;
}
.policy-pdf-modal .policy-signoff-actions{padding-top:10px!important}
.policy-pdf-modal.policy-fullscreen{
  width:100vw!important;
  height:100vh!important;
  max-height:none!important;
  border-radius:0!important;
}
.policy-pdf-modal.policy-fullscreen .policy-pdf-head{
  min-height:96px!important;
  padding:14px 176px 12px 32px!important;
}
.policy-pdf-modal.policy-fullscreen .policy-pdf-head h2{font-size:22px!important}
.policy-pdf-modal.policy-fullscreen .policy-signoff-panel.policy-signoff-required{min-height:166px!important}
.policy-pdf-modal.policy-fullscreen .policy-signoff-panel.policy-signoff-readonly{min-height:76px!important}
@media(max-width:780px){
  body.policy-view-open{overflow:hidden!important}
  .policy-pdf-modal{width:calc(100vw - 12px)!important;height:calc(100vh - 12px)!important;max-height:calc(100vh - 12px)!important;border-radius:14px!important}
  .policy-pdf-modal .policy-pdf-head{min-height:92px!important;padding:13px 104px 11px 16px!important}
  .policy-pdf-modal .policy-pdf-head h2{font-size:19px!important}
  .policy-pdf-modal .policy-pdf-head p{font-size:9.5px!important;-webkit-line-clamp:2!important}
  .policy-pdf-modal .policy-signoff-panel.policy-signoff-required{min-height:230px!important;padding:14px 16px!important}
  .policy-pdf-modal .policy-signoff-panel.policy-signoff-readonly{min-height:78px!important;padding:11px 16px!important}
}
@media(max-width:520px){
  .policy-pdf-modal{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:10px!important}
  .policy-pdf-modal .policy-modal-tools{top:9px!important;right:9px!important}
  .policy-pdf-modal .policy-fullscreen-btn{height:38px!important;width:38px!important}
  .policy-pdf-modal .policy-modal-close{height:38px!important;width:38px!important}
  .policy-pdf-modal .policy-pdf-head{padding-right:92px!important}
  .policy-pdf-modal .policy-signoff-panel.policy-signoff-required{min-height:250px!important}
}

/* V73.3 — premium alignment + status states + icon controls */
.notification-bell{display:grid!important;place-items:center!important;line-height:0!important;font-size:0!important}
.notification-bell .lm-icon{width:18px;height:18px;stroke-width:1.9}
.notification-bell.has-unread .lm-icon{stroke-width:2.1}
.topbar-signout{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important}
.topbar-signout .lm-icon{width:14px;height:14px;stroke-width:1.9}

/* Admin policy library: status, content, thumbnail and actions each own a stable column. */
.admin-news-row{grid-template-columns:92px minmax(240px,1fr) 82px max-content!important;align-items:center!important}
.admin-news-status{align-self:stretch;justify-content:flex-start}
.admin-news-copy{min-width:0;display:flex;flex-direction:column;justify-content:center}
.admin-news-title-line{align-items:flex-start!important;gap:8px!important}
.admin-news-title-line b{line-height:1.35!important}
.admin-news-title-line small{line-height:1.35!important;white-space:nowrap}
.admin-news-copy p{margin:6px 0!important;line-height:1.5!important}
.admin-news-copy>span{display:flex;align-items:center;gap:5px;line-height:1.35}
.admin-news-copy>span .lm-icon{width:12px;height:12px}
.admin-news-media{width:72px;height:52px;border-radius:10px;overflow:hidden;border:1px solid #dfe7f1;background:#f5f8fc;display:grid;place-items:center;justify-self:center;color:#8ca0b8}
.admin-news-thumb{float:none!important;width:100%!important;height:100%!important;object-fit:cover!important;margin:0!important;border:0!important;border-radius:0!important}
.admin-news-media-empty .lm-icon{width:21px;height:21px}
.admin-news-actions{justify-content:flex-end!important;flex-wrap:nowrap!important;gap:6px!important;min-width:0}
.admin-news-actions .btn{white-space:nowrap!important;min-height:34px}
@media(max-width:1250px){.admin-news-row{grid-template-columns:86px minmax(200px,1fr) 72px max-content!important}.admin-news-actions{flex-wrap:wrap!important;justify-content:flex-end!important}}
@media(max-width:900px){.admin-news-row{grid-template-columns:86px minmax(0,1fr)!important}.admin-news-media{display:none}.admin-news-actions{grid-column:2;justify-content:flex-start!important;padding-top:4px}.admin-news-status{grid-row:1 / span 2}}
@media(max-width:760px){.admin-news-row{grid-template-columns:1fr!important;gap:9px!important}.admin-news-status{grid-row:auto}.admin-news-actions{grid-column:auto;justify-content:flex-start!important}.admin-news-title-line{flex-direction:column!important;gap:4px!important}.admin-news-title-line small{white-space:normal}}

/* Consistent empty/error state: icon and copy stay vertically aligned. */
.state-card{display:flex!important;align-items:center!important;gap:16px!important;min-height:92px;box-sizing:border-box}
.state-card .state-icon{width:44px;height:44px;flex:0 0 44px;border-radius:13px;background:#eef4ff;color:#2e73d5;display:grid;place-items:center}
.state-card .state-icon .lm-icon{width:21px;height:21px}
.state-card .state-retry{margin-top:11px}

/* HR/service rows use a stable icon/action column instead of raw glyph arrows. */
.hr-service-list button{grid-template-columns:minmax(0,1fr) 24px!important;align-items:center!important;min-height:52px}
.hr-service-list button::after{content:'›';display:grid;place-items:center;width:24px;height:24px;border:1px solid #dfe7f1;border-radius:8px;background:#f8fbff;color:#5f7897;font-size:17px;line-height:1}
.hr-service-list button{color:inherit!important}

/* Premium tile typography: predictable vertical rhythm and aligned actions. */
.policy-card h3,.news-tile h3{min-height:2.64em;line-height:1.32!important}
.policy-card p,.news-tile p{line-height:1.55!important}
.policy-card .btn,.news-tile .news-read-more{margin-top:auto}
.process-progress-icon{display:grid!important;place-items:center!important;line-height:0!important}
.process-progress-icon .lm-icon{width:20px;height:20px}
.process-progress-card .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.process-progress-card .btn .lm-icon{width:13px;height:13px}

/* V73.4 — brand mark reliability.
   The sidebar/top-nav brand lives in a flex container. Earlier rules let that
   container shrink to ~0 width in the crowded mobile nav row, and because
   `img{max-width:100%}` applies globally, the logo then rendered at 0px wide
   (present in the DOM, invisible on screen). Pin the brand and its image so the
   logo is always visible at a sane size, on every route and every breakpoint. */
.sidebar-brand{flex:0 0 auto!important;width:auto!important}
.sidebar-logo,
.sidebar-logo-mark,
.sidebar-logo-wordmark{flex:0 0 auto!important;max-width:none!important;min-width:0}
.sidebar-brand .sidebar-logo-mark{width:58px!important;height:58px!important}
@media(max-width:780px){
  .sidebar-brand{
    min-width:44px!important;
    padding:0 8px 0 2px!important;
    margin:0!important;
    justify-content:center!important;
    align-items:center!important;
  }
  .sidebar-brand .sidebar-logo-mark{width:32px!important;height:32px!important}
}
