/* Datalytics V171 unified production stylesheet */

/* SOURCE: assets/css/style.css */
:root {
    --bg: #f4f7fb;
    --card: #fff;
    --text: #182033;
    --muted: #667085;
    --brand: #2563eb;
    --brand2: #0f172a;
    --ok: #16a34a;
    --warn: #d97706;
    --bad: #dc2626;
    --line: #e5e7eb;
    --shadow: 0 12px 35px rgba(15,23,42,.08);
    --radius: 18px;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    background: linear-gradient(135deg,#f6f9ff,#eef4ff 45%,#f8fafc);
    font-family: Inter,Segoe UI,Arial,sans-serif;
    color: var(--text);
}

.layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    min-height: 100vh;
}

aside {
    background: linear-gradient(180deg,#0f172a,#172554);
    color: #fff;
    padding: 24px 18px;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: auto;
}

aside h2 {
    margin: 0;
    font-size: 24px;
    letter-spacing: .3px;
}

aside p {
    color: #b7c4e8;
    margin: 6px 0 22px;
}

nav {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

nav a {
    color: #dbeafe;
    text-decoration: none;
    padding: 10px 12px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 14px;
}

nav a:hover,nav a.active {
    background: rgba(255,255,255,.12);
    color: #fff;
}

main {
    padding: 28px;
    max-width: 100%;
    overflow: auto;
}

h1 {
    font-size: 30px;
    margin: 0 0 18px;
}

.card,.stat {
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(226,232,240,.9);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 18px;
    margin-bottom: 18px;
}

.soft {
    background: #f8fbff;
}

.grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
    gap: 18px;
}

.grid2 {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
    gap: 16px;
}

.row {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: end;
}

.row>div {
    min-width: 180px;
}

.stat span {
    color: var(--muted);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.stat b {
    font-size: 34px;
}

.muted {
    color: var(--muted);
    font-size: 13px;
}

.alert {
    padding: 13px 15px;
    border-radius: 14px;
    margin: 12px 0;
    border: 1px solid var(--line);
    background: #fff;
}

.good,.ok {
    border-color: #bbf7d0;
    background: #f0fdf4;
    color: #166534;
}

.bad {
    border-color: #fecaca;
    background: #fef2f2;
    color: #991b1b;
}

.warn {
    border-color: #fed7aa;
    background: #fff7ed;
    color: #9a3412;
}

.badge {
    display: inline-block;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 700;
}

.badge.good {
    background: #dcfce7;
    color: #166534;
}

.badge.bad {
    background: #fee2e2;
    color: #991b1b;
}

.badge.warn {
    background: #ffedd5;
    color: #9a3412;
}

label {
    display: block;
    font-size: 13px;
    color: #475467;
    font-weight: 700;
    margin: 0 0 6px;
}

input,select,textarea {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    background: #fff;
    font-size: 14px;
}

button,.btn {
    display: inline-block;
    background: var(--brand);
    border: 0;
    color: #fff;
    text-decoration: none;
    border-radius: 12px;
    padding: 10px 14px;
    font-weight: 800;
    cursor: pointer;
}

button.small,.btn.small {
    padding: 6px 10px;
    font-size: 12px;
}

.btn.secondary,button.secondary {
    background: #475569;
}

.table-wrap {
    overflow: auto;
}

table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
}

th,td {
    padding: 11px 12px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}

th {
    background: #f8fafc;
    color: #334155;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.simple-table tr:hover,.data-table tr:hover {
    background: #fbfdff;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7,minmax(110px,1fr));
    gap: 10px;
}

.day-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    padding: 12px;
    min-height: 105px;
}

.day-card .num {
    font-weight: 900;
    font-size: 18px;
}

.day-ok {
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.day-late {
    border-color: #fed7aa;
    background: #fff7ed;
}

.day-absent {
    border-color: #fecaca;
    background: #fef2f2;
}

.day-off {
    background: #f1f5f9;
    color: #64748b;
}

.profile-head {
    display: flex;
    gap: 18px;
    align-items: center;
}

.avatar {
    width: 70px;
    height: 70px;
    border-radius: 22px;
    background: linear-gradient(135deg,#2563eb,#06b6d4);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 900;
}

@media (max-width:900px) {
    .layout {
        grid-template-columns: 1fr;
    }
    aside {
        position: relative;
        height: auto;
    }
    main {
        padding: 16px;
    }
    .calendar-grid {
        grid-template-columns: repeat(2,1fr);
    }
}

/*V34 Datalytics visual upgrade*/

:root {
    --brand: #7c3aed;
    --brand3: #06b6d4;
    --accent: #f97316;
    --glow: 0 18px 45px rgba(124,58,237,.18);
}

body {
    background: radial-gradient(circle at top left,rgba(124,58,237,.16),transparent 32%),radial-gradient(circle at top right,rgba(6,182,212,.15),transparent 30%),linear-gradient(135deg,#f8fbff,#eef2ff 52%,#fdf2f8);
}

aside {
    background: linear-gradient(180deg,#111827 0%,#312e81 45%,#4c1d95 100%);
    box-shadow: 14px 0 45px rgba(49,46,129,.18);
}

.brand-block {
    padding: 14px 12px 18px;
    border-radius: 22px;
    background: linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.06));
    border: 1px solid rgba(255,255,255,.14);
    margin-bottom: 16px;
    animation: fadeUp .45s ease both;
}

aside h2 {
    font-size: 28px;
    background: linear-gradient(90deg,#fff,#a5f3fc);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

nav a {
    position: relative;
    transition: .22s ease all;
    border: 1px solid transparent;
}

nav a:hover,nav a.active {
    background: linear-gradient(90deg,rgba(124,58,237,.48),rgba(6,182,212,.22));
    border-color: rgba(255,255,255,.18);
    transform: translateX(3px);
    box-shadow: 0 10px 24px rgba(0,0,0,.16);
}

main {
    animation: fadeUp .35s ease both;
}

h1 {
    background: linear-gradient(90deg,#111827,#7c3aed,#0891b2);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    font-weight: 900;
    letter-spacing: -.04em;
}

.card,.stat {
    backdrop-filter: blur(14px);
    transition: .22s ease transform,.22s ease box-shadow;
}

.card:hover,.stat:hover {
    transform: translateY(-2px);
    box-shadow: var(--glow);
}

button,.btn {
    background: linear-gradient(135deg,#7c3aed,#2563eb);
    box-shadow: 0 10px 22px rgba(37,99,235,.22);
    transition: .2s ease all;
}

button:hover,.btn:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.btn.secondary,button.secondary {
    background: linear-gradient(135deg,#475569,#0f172a);
}

.stat.gradient {
    background: linear-gradient(135deg,#ffffff,#eef2ff);
    border-color: #ddd6fe;
}

.stat.gradient.green {
    background: linear-gradient(135deg,#fff,#ecfdf5);
    border-color: #bbf7d0;
}

.stat.gradient.orange {
    background: linear-gradient(135deg,#fff,#fff7ed);
    border-color: #fed7aa;
}

.stat.gradient.purple {
    background: linear-gradient(135deg,#fff,#f5f3ff);
    border-color: #ddd6fe;
}

.hero-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1.5fr .8fr;
    gap: 20px;
    align-items: center;
    border-radius: 28px;
    padding: 26px;
    margin-bottom: 18px;
    color: #fff;
    background: linear-gradient(135deg,#1e1b4b,#7c3aed 55%,#06b6d4);
    box-shadow: 0 22px 50px rgba(30,27,75,.25);
    animation: fadeUp .45s ease both;
}

.hero-card:before {
    content: "";
    position: absolute;
    inset: -40%;
    background: radial-gradient(circle,rgba(255,255,255,.22),transparent 32%);
    animation: floatGlow 7s ease-in-out infinite;
}

.hero-card>* {
    position: relative;
}

.hero-card h2 {
    font-size: 30px;
    margin: 8px 0;
}

.hero-card p {
    color: #e0f2fe;
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 900;
    font-size: 12px;
    color: #cffafe;
}

.hero-balance {
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 24px;
    padding: 20px;
}

.hero-balance span {
    display: block;
    color: #e0f2fe;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.hero-balance b {
    font-size: 34px;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes floatGlow {
    0%,100% {
        transform: translate(0,0);
    }
    50% {
        transform: translate(9%,6%);
    }
}

@media (max-width:900px) {
    .hero-card {
        grid-template-columns: 1fr;
    }
    .hero-card h2 {
        font-size: 24px;
    }
}

/*V35 Login Page*/

.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at top left,#4f46e5 0,#111827 36%,#020617 100%);
}

.login-shell {
    width: min(960px,92vw);
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 28px;
    align-items: center;
    animation: fadeUp .45s ease both;
}

.login-brand {
    color: #fff;
    padding: 34px;
}

.login-brand h1 {
    font-size: 54px;
    line-height: 1;
    margin: 0 0 14px;
    background: linear-gradient(90deg,#fff,#93c5fd,#22d3ee);
    -webkit-background-clip: text;
    color: transparent;
}

.login-brand p {
    font-size: 18px;
    color: #dbeafe;
}

.card.login {
    max-width: 420px;
    width: 100%;
    backdrop-filter: blur(14px);
}

.card.login h2 {
    margin-top: 0;
    font-size: 28px;
}

.card.login input {
    margin-bottom: 14px;
}

.card.login button {
    width: 100%;
    padding: 13px 18px;
    font-weight: 700;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width:760px) {
    .login-shell {
        grid-template-columns: 1fr;
    }
    .login-brand {
        padding: 12px;
    }
    .login-brand h1 {
        font-size: 40px;
    }
}

.permission-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(240px,1fr));
    gap: 10px;
    margin: 10px 0 18px;
}

.perm-check {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(148,163,184,.3);
    border-radius: 14px;
    padding: 12px;
}

.perm-check small {
    display: block;
    color: #64748b;
}

.button.small {
    padding: 6px 10px;
    font-size: 12px;
}

.alert.bad {
    background: #fee2e2;
    color: #991b1b;
    border: 1px solid #fecaca;
    padding: 10px;
    border-radius: 12px;
}

.muted {
    color: #64748b;
}

.button {
    display: inline-block;
    border-radius: 12px;
    padding: 10px 14px;
    background: #2563eb;
    color: #fff;
    text-decoration: none;
}

/*V39 Payroll Period Engine*/

.grid.two-cols {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 18px;
    margin: 18px 0;
}

.grid.cards-3 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    margin: 16px 0;
}

.stat-card {
    background: linear-gradient(135deg,rgba(255,255,255,.96),rgba(245,248,255,.9));
    border: 1px solid rgba(40,80,140,.12);
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 12px 32px rgba(20,40,80,.08);
    animation: softIn .35s ease both;
}

.stat-card span {
    display: block;
    color: #6b7280;
    font-size: 13px;
    margin-bottom: 8px;
}

.stat-card strong {
    font-size: 26px;
    color: #102a43;
}

.selected-row {
    outline: 2px solid rgba(37,99,235,.35);
    background: rgba(37,99,235,.06) !important;
}

.actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
}

.btn.small,button.small {
    padding: 6px 10px;
    font-size: 12px;
    border-radius: 10px;
}

.alert.bad {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}

@keyframes softIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width:900px) {
    .grid.two-cols,.grid.cards-3 {
        grid-template-columns: 1fr;
    }
}

/*V41 Multi-language*/

.lang-switch {
    display: flex;
    gap: 6px;
    margin-top: 12px;
    align-items: center;
    justify-content: flex-start;
}

.lang-switch a {
    padding: 6px 10px;
    border-radius: 999px;
    text-decoration: none;
    background: rgba(255,255,255,.12);
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    transition: .2s ease;
}

.lang-switch a:hover,.lang-switch a.on {
    background: linear-gradient(135deg,#7c3aed,#06b6d4);
    color: #fff;
    transform: translateY(-1px);
}

.login-lang {
    justify-content: center;
    margin-top: 14px;
}

body.rtl {
    direction: rtl;
    text-align: right;
    font-family: Tahoma,Arial,sans-serif;
}

body.rtl .layout {
    direction: rtl;
}

body.rtl aside {
    border-left: 1px solid rgba(255,255,255,.08);
    border-right: 0;
}

body.rtl table, body.rtl input, body.rtl select, body.rtl textarea {
    direction: rtl;
    text-align: right;
}

body.rtl .lang-switch {
    justify-content: flex-start;
}

body.rtl .card, body.rtl .panel, body.rtl .toolbar {
    direction: rtl;
}

body.rtl .dt-search, body.rtl .dt-length {
    text-align: right;
}

/*V42 Premium Datalytics UI/UX Upgrade*/

:root {
    --dt-primary: #6d5dfc;
    --dt-primary-2: #13c2c2;
    --dt-ink: #111827;
    --dt-muted: #64748b;
    --dt-panel: rgba(255,255,255,.82);
    --dt-border: rgba(148,163,184,.24);
    --dt-shadow: 0 22px 55px rgba(15,23,42,.10);
    --dt-radius: 22px;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    background: radial-gradient(circle at 8% 8%,rgba(109,93,252,.18),transparent 26%),
  radial-gradient(circle at 92% 12%,rgba(19,194,194,.16),transparent 28%),
  linear-gradient(135deg,#f8fbff 0%,#eef2ff 52%,#fff7ed 100%);
}

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

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: auto;
    padding: 20px 16px;
    color: #fff;
    background: linear-gradient(180deg,rgba(15,23,42,.98),rgba(49,46,129,.96) 48%,rgba(88,28,135,.96));
    box-shadow: 18px 0 50px rgba(15,23,42,.18);
    z-index: 20;
}

.sidebar::-webkit-scrollbar {
    width: 8px;
}

.sidebar::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.18);
    border-radius: 999px;
}

.brand-block {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px !important;
    padding: 16px !important;
    border-radius: 26px !important;
    background: linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    box-shadow: 0 16px 40px rgba(0,0,0,.16);
}

.brand-logo {
    width: 48px;
    height: 48px;
    border-radius: 18px;
    background: linear-gradient(135deg,#fff,#a5f3fc);
    color: #312e81;
    display: grid;
    place-items: center;
    font-size: 24px;
    font-weight: 950;
    box-shadow: 0 12px 28px rgba(6,182,212,.22);
}

.brand-block h2 {
    margin: 0 !important;
    font-size: 25px !important;
    letter-spacing: -.03em !important;
    color: transparent !important;
    background: linear-gradient(90deg,#fff,#c4b5fd,#67e8f9);
    -webkit-background-clip: text;
    background-clip: text;
}

.brand-block p {
    margin: 2px 0 0 !important;
    color: #c7d2fe !important;
    font-size: 12px !important;
}

.side-nav {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.side-nav .nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 10px 12px;
    color: #dbeafe;
    text-decoration: none;
    border-radius: 16px;
    font-weight: 750;
    font-size: 14px;
    border: 1px solid transparent;
    position: relative;
    transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.nav-icon {
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(255,255,255,.09);
    font-size: 14px;
    flex: 0 0 auto;
}

.side-nav .nav-link:hover,.side-nav .nav-link.active {
    background: linear-gradient(90deg,rgba(109,93,252,.52),rgba(19,194,194,.22));
    border-color: rgba(255,255,255,.18);
    box-shadow: 0 12px 24px rgba(0,0,0,.18);
    transform: translateX(4px);
    color: #fff;
}

.side-nav .nav-link.active:before {
    content: "";
    position: absolute;
    inset-inline-start: -16px;
    top: 10px;
    width: 4px;
    height: 22px;
    border-radius: 999px;
    background: linear-gradient(180deg,#67e8f9,#c4b5fd);
}

.sidebar-footer {
    margin-top: 18px;
    padding: 13px;
    border-radius: 18px;
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.12);
    color: #e0f2fe;
    font-weight: 750;
}

.online-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #22c55e;
    box-shadow: 0 0 0 5px rgba(34,197,94,.14);
    margin-inline-end: 8px;
}

.content-shell {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 15;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 26px;
    background: rgba(248,250,252,.74);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(148,163,184,.20);
}

.mobile-menu {
    display: none;
}

.topbar-title {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mini-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #7c3aed;
    font-weight: 900;
}

.topbar-title strong {
    text-transform: capitalize;
    font-size: 18px;
    color: #111827;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.language-menu {
    position: relative;
}

.language-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(109,93,252,.18);
    background: rgba(255,255,255,.78);
    color: #111827;
    border-radius: 999px;
    padding: 9px 13px;
    font-weight: 900;
    box-shadow: 0 12px 24px rgba(15,23,42,.07);
    transition: .18s ease;
}

.language-chip:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 30px rgba(109,93,252,.15);
    filter: none;
}

.language-chip .flag {
    font-size: 16px;
}

.language-chip .chev {
    color: #64748b;
    margin-inline-start: 3px;
}

.language-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    inset-inline-end: 0;
    min-width: 210px;
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(148,163,184,.22);
    border-radius: 20px;
    padding: 8px;
    box-shadow: 0 24px 55px rgba(15,23,42,.18);
    backdrop-filter: blur(18px);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px) scale(.98);
    transition: .18s ease;
    z-index: 50;
}

.language-menu.open .language-dropdown {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.language-dropdown a {
    display: grid;
    grid-template-columns: 28px 1fr 20px;
    align-items: center;
    gap: 8px;
    padding: 11px 12px;
    text-decoration: none;
    color: #0f172a;
    border-radius: 14px;
}

.language-dropdown a:hover,.language-dropdown a.selected {
    background: linear-gradient(90deg,rgba(109,93,252,.12),rgba(19,194,194,.10));
}

.language-dropdown em {
    font-style: normal;
    color: #6d5dfc;
    font-weight: 950;
}

.user-pill,.logout-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: #111827;
    background: rgba(255,255,255,.70);
    border: 1px solid rgba(148,163,184,.20);
    border-radius: 999px;
    padding: 8px 11px;
    font-weight: 850;
}

.logout-pill {
    color: #dc2626;
}

.user-avatar {
    width: 28px;
    height: 28px;
    border-radius: 12px;
    background: linear-gradient(135deg,#6d5dfc,#13c2c2);
    color: #fff;
    display: grid;
    place-items: center;
    font-size: 13px;
    font-weight: 950;
}

.main-content {
    padding: 26px;
    max-width: 100%;
    overflow: auto;
    animation: dtFade .28s ease both;
}

.main-content h1 {
    font-size: 32px;
    letter-spacing: -.045em;
    margin-bottom: 18px;
    background: linear-gradient(90deg,#111827,#6d5dfc,#0891b2);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.card,.stat,.stat-card {
    border-radius: var(--dt-radius) !important;
    background: var(--dt-panel) !important;
    border: 1px solid var(--dt-border) !important;
    box-shadow: var(--dt-shadow) !important;
    backdrop-filter: blur(16px);
    transition: transform .18s ease,box-shadow .18s ease;
}

.card:hover,.stat:hover,.stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 28px 65px rgba(15,23,42,.13) !important;
}

.stat b,.stat-card strong {
    letter-spacing: -.04em;
}

.grid {
    gap: 16px;
}

.grid2 {
    gap: 16px;
}

button,.btn,.button {
    border-radius: 14px !important;
    background: linear-gradient(135deg,#6d5dfc,#2563eb) !important;
    box-shadow: 0 14px 28px rgba(37,99,235,.22) !important;
    transition: transform .16s ease,filter .16s ease,box-shadow .16s ease;
}

button:hover,.btn:hover,.button:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
    box-shadow: 0 18px 34px rgba(37,99,235,.28) !important;
}

.btn.secondary,button.secondary {
    background: linear-gradient(135deg,#475569,#111827) !important;
}

input,select,textarea {
    border-radius: 14px !important;
    border-color: rgba(148,163,184,.36) !important;
    background: rgba(255,255,255,.86) !important;
    transition: border-color .16s ease,box-shadow .16s ease;
}

input:focus,select:focus,textarea:focus {
    outline: 0;
    border-color: #6d5dfc !important;
    box-shadow: 0 0 0 4px rgba(109,93,252,.13);
}

table {
    border-radius: 18px !important;
    box-shadow: 0 12px 28px rgba(15,23,42,.05);
}

th {
    background: linear-gradient(180deg,#f8fafc,#eef2ff) !important;
    color: #334155 !important;
}

.dataTable tbody tr,.simple-table tbody tr {
    transition: background .14s ease;
}

.dataTable tbody tr:hover,.simple-table tbody tr:hover {
    background: rgba(109,93,252,.05) !important;
}

.badge {
    border-radius: 999px !important;
}

.alert {
    border-radius: 16px !important;
}

.hero-card {
    border-radius: 30px !important;
    background: linear-gradient(135deg,#18181b,#4c1d95 52%,#0891b2) !important;
}

.hero-card:after {
    content: "";
    position: absolute;
    right: -10%;
    bottom: -30%;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle,rgba(255,255,255,.18),transparent 60%);
    animation: floatGlow 8s ease-in-out infinite reverse;
}

.calendar-grid {
    gap: 12px;
}

.day-card {
    border-radius: 18px !important;
    transition: .16s ease;
}

.day-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 30px rgba(15,23,42,.08);
}

body.rtl .side-nav .nav-link:hover,body.rtl .side-nav .nav-link.active {
    transform: translateX(-4px);
}

body.rtl .side-nav .nav-link.active:before {
    inset-inline-start: -16px;
}

body.rtl .topbar-title strong {
    text-align: right;
}

body.rtl .language-dropdown {
    inset-inline-start: 0;
    inset-inline-end: auto;
}

@keyframes dtFade {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@media (max-width:1020px) {
    .app-shell {
        grid-template-columns: 1fr;
    }
    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: 292px;
        transform: translateX(-105%);
        transition: .22s ease;
    }
    .sidebar.open {
        transform: none;
    }
    .rtl .sidebar {
        inset: 0 0 0 auto;
        transform: translateX(105%);
    }
    .rtl .sidebar.open {
        transform: none;
    }
    .mobile-menu {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        border-radius: 14px;
        padding: 0;
    }
    .topbar {
        padding: 12px 16px;
    }
    .main-content {
        padding: 16px;
    }
    .topbar-actions {
        gap: 6px;
    }
    .user-pill span:not(.user-avatar),.logout-pill {
        display: none;
    }
    .language-chip span:not(.flag):not(.chev) {
        display: none;
    }
}

/*V46 Period Delete / Restore*/

.grid.cards-4 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
    margin: 16px 0;
}

button.danger,.btn.danger {
    background: linear-gradient(135deg,#ef4444,#991b1b) !important;
    box-shadow: 0 14px 28px rgba(239,68,68,.22) !important;
    color: #fff !important;
}

@media (max-width:1100px) {
    .grid.cards-4 {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width:700px) {
    .grid.cards-4 {
        grid-template-columns: 1fr;
    }
}

/*V49 Employee Management*/

.tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(15,23,42,.06);
    color: inherit;
    text-decoration: none;
    border: 1px solid rgba(148,163,184,.25);
    transition: .18s ease;
}

.tab:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(15,23,42,.10);
}

.tab.active {
    background: linear-gradient(135deg,#2563eb,#7c3aed);
    color: #fff;
    border-color: transparent;
}

.tab span {
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.22);
}

.alert {
    padding: 12px 14px;
    border-radius: 14px;
    margin: 12px 0;
    border: 1px solid rgba(148,163,184,.25);
}

.alert.success {
    background: rgba(34,197,94,.10);
    color: #166534;
}

.alert.danger {
    background: rgba(239,68,68,.10);
    color: #991b1b;
}

.btn.danger,button.danger {
    background: #ef4444;
    color: #fff;
    border-color: #ef4444;
}

.actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

/*V51 polish: department cards + scoped managers*/

.page-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.page-head h1 {
    margin: 4px 0 6px;
    font-size: 30px;
    letter-spacing: -.03em;
}

.kpi-grid {
    grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
    margin-bottom: 18px;
}

.action-card {
    border: 1px solid rgba(99,102,241,.14);
    background: linear-gradient(135deg,rgba(255,255,255,.95),rgba(248,250,252,.82));
}

.department-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(310px,1fr));
    gap: 18px;
    margin: 18px 0;
}

.department-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(99,102,241,.16);
    transition: transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.department-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 48px rgba(15,23,42,.10);
    border-color: rgba(99,102,241,.32);
}

.department-card:before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    background: linear-gradient(90deg,#6366f1,#06b6d4,#22c55e);
}

.badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: 12px;
    font-weight: 700;
    background: #eef2ff;
    color: #3730a3;
}

.badge.ok {
    background: #ecfdf5;
    color: #047857;
}

.compact-form {
    display: block;
    margin: 12px 0;
    padding: 12px;
    border-radius: 16px;
    background: rgba(248,250,252,.72);
    border: 1px solid rgba(226,232,240,.9);
}

.compact-form label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #64748b;
}

.inline-controls {
    display: flex;
    gap: 8px;
    align-items: center;
}

.inline-controls input {
    min-width: 0;
    flex: 1;
}

.manager-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}

.manager-tags span:not(.muted) {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    background: #eef2ff;
    color: #4338ca;
    font-weight: 700;
    font-size: 12px;
}

.permission-grid .scope-note {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-top: 3px;
}

@media (max-width:700px) {
    .page-head {
        display: block;
    }
    .inline-controls {
        display: block;
    }
    .inline-controls button {
        margin-top: 8px;
        width: 100%;
    }
}

/*V66 categorized sidebar*/

.side-nav {
    gap: 8px;
}

.nav-category {
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 16px;
    background: rgba(255,255,255,.045);
    overflow: hidden;
}

.nav-category>summary {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    color: #e0e7ff;
    font-weight: 850;
    font-size: 13px;
    cursor: pointer;
    user-select: none;
    letter-spacing: .01em;
}

.nav-category>summary::-webkit-details-marker {
    display: none;
}

.nav-category>summary:hover {
    background: rgba(255,255,255,.08);
}

.nav-category-icon {
    width: 24px;
    text-align: center;
}

.nav-category-chev {
    margin-inline-start: auto;
    transition: transform .18s ease;
    color: #a5b4fc;
}

.nav-category[open] .nav-category-chev {
    transform: rotate(180deg);
}

.nav-category-items {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0 7px 8px;
}

.nav-category-items .nav-link {
    min-height: 38px;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 12px;
}

.nav-category-items .nav-icon {
    width: 20px;
    text-align: center;
    opacity: .95;
}

.nav-category:has(.nav-link.active) {
    border-color: rgba(103,232,249,.28);
    background: rgba(109,93,252,.10);
}

/*V67 Enterprise navigation + department settings*/

:root {
    --sidebar-w: 304px;
    --sidebar-mini: 88px;
    --nav-panel: rgba(255,255,255,.055);
}

.app-shell {
    grid-template-columns: var(--sidebar-w) minmax(0,1fr) !important;
    transition: grid-template-columns .22s ease;
}

.sidebar {
    width: var(--sidebar-w);
    padding: 16px 14px 14px !important;
    background: radial-gradient(circle at 15% 0,rgba(99,102,241,.34),transparent 26%),radial-gradient(circle at 90% 18%,rgba(6,182,212,.18),transparent 28%),linear-gradient(180deg,#081120 0%,#101b36 52%,#172554 100%) !important;
    border-inline-end: 1px solid rgba(148,163,184,.12);
    box-shadow: 18px 0 55px rgba(2,6,23,.18) !important;
    z-index: 90;
}

.brand-block {
    position: relative;
    min-height: 72px;
    margin: 0 0 10px !important;
    padding: 12px !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.035)) !important;
    box-shadow: none !important;
}

.brand-logo {
    flex: 0 0 auto;
    width: 46px !important;
    height: 46px !important;
    border-radius: 15px !important;
    box-shadow: 0 12px 28px rgba(79,70,229,.30) !important;
}

.brand-copy {
    min-width: 0;
}

.brand-copy h2 {
    font-size: 22px !important;
}

.brand-copy p {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-collapse-btn {
    margin-inline-start: auto;
    width: 30px;
    height: 30px;
    padding: 0 !important;
    border-radius: 10px !important;
    background: rgba(255,255,255,.09) !important;
    box-shadow: none !important;
    color: #c7d2fe !important;
    font-size: 22px;
    display: grid;
    place-items: center;
}

.sidebar-workspace {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 3px 10px;
    padding: 10px 11px;
    border-radius: 15px;
    background: rgba(15,23,42,.48);
    border: 1px solid rgba(148,163,184,.12);
}

.workspace-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #22d3ee;
    box-shadow: 0 0 0 5px rgba(34,211,238,.10);
}

.sidebar-workspace div {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sidebar-workspace small {
    color: #94a3b8;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.sidebar-workspace strong {
    font-size: 13px;
    color: #f8fafc;
}

.nav-search {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 3px 12px;
    padding: 0 11px;
    height: 42px;
    border-radius: 14px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(148,163,184,.14);
    color: #94a3b8;
}

.nav-search input {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 13px;
}

.nav-search input::placeholder {
    color: #94a3b8;
}

.side-nav {
    gap: 7px !important;
}

.nav-category {
    border: 0 !important;
    border-radius: 15px !important;
    background: transparent !important;
    overflow: visible !important;
}

.nav-category>summary {
    min-height: 40px !important;
    padding: 8px 10px !important;
    border-radius: 12px;
    color: #a5b4fc !important;
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: .085em;
}

.nav-category>summary:hover {
    background: rgba(255,255,255,.055) !important;
}

.nav-category[open]>summary {
    color: #e0e7ff !important;
}

.nav-category-icon {
    display: grid;
    place-items: center;
    width: 25px !important;
    height: 25px;
    border-radius: 8px;
    background: rgba(99,102,241,.14);
    font-size: 13px;
}

.nav-category-items {
    padding: 2px 4px 7px 9px !important;
    gap: 3px !important;
    border-inline-start: 1px solid rgba(148,163,184,.12);
    margin-inline-start: 21px;
}

.nav-category-items .nav-link {
    min-height: 38px !important;
    padding: 8px 10px !important;
    border-radius: 11px !important;
    color: #cbd5e1 !important;
    font-weight: 700 !important;
    font-size: 13px !important;
}

.nav-category-items .nav-link:hover {
    transform: translateX(2px) !important;
    background: rgba(99,102,241,.14) !important;
}

.nav-category-items .nav-link.active {
    transform: none !important;
    background: linear-gradient(90deg,rgba(79,70,229,.92),rgba(37,99,235,.68)) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.12) !important;
    box-shadow: 0 8px 20px rgba(30,64,175,.24) !important;
}

.nav-category-items .nav-link.active:before {
    display: none !important;
}

.nav-category-items .nav-icon {
    display: grid;
    place-items: center;
    width: 24px !important;
    height: 24px;
    border-radius: 8px;
    background: rgba(255,255,255,.07);
    font-size: 12px;
}

.sidebar-footer {
    position: sticky;
    bottom: 0;
    display: grid;
    grid-template-columns: 36px 1fr 30px;
    align-items: center;
    gap: 9px;
    margin-top: 12px !important;
    padding: 10px !important;
    background: rgba(8,17,32,.88) !important;
    backdrop-filter: blur(16px);
    border-color: rgba(148,163,184,.15) !important;
}

.sidebar-user-avatar {
    width: 36px !important;
    height: 36px !important;
    border-radius: 12px !important;
}

.sidebar-user-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.sidebar-user-copy strong {
    font-size: 13px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-user-copy small {
    font-size: 11px;
    color: #94a3b8;
}

.sidebar-footer-action {
    color: #c7d2fe;
    text-decoration: none;
    text-align: center;
}

body.sidebar-collapsed .app-shell {
    grid-template-columns: var(--sidebar-mini) minmax(0,1fr) !important;
}

body.sidebar-collapsed .sidebar {
    width: var(--sidebar-mini);
    padding-inline: 10px !important;
}

body.sidebar-collapsed .brand-block {
    justify-content: center;
    padding: 10px !important;
}

body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .sidebar-collapse-btn,body.sidebar-collapsed .sidebar-workspace,body.sidebar-collapsed .nav-search,body.sidebar-collapsed .sidebar-user-copy,body.sidebar-collapsed .sidebar-footer-action {
    display: none !important;
}

body.sidebar-collapsed .brand-logo {
    width: 48px !important;
    height: 48px !important;
}

body.sidebar-collapsed .nav-category {
    position: relative;
}

body.sidebar-collapsed .nav-category>summary {
    justify-content: center;
    padding: 8px !important;
}

body.sidebar-collapsed .nav-category>summary span:not(.nav-category-icon) {
    display: none;
}

body.sidebar-collapsed .nav-category-items {
    margin: 0 !important;
    padding: 3px !important;
    border: 0 !important;
}

body.sidebar-collapsed .nav-category-items .nav-link {
    justify-content: center;
    padding: 7px !important;
}

body.sidebar-collapsed .nav-category-items .nav-link span:not(.nav-icon) {
    display: none;
}

body.sidebar-collapsed .sidebar-footer {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 9px !important;
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
    gap: 14px;
}

.setting-tile {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 15px;
    border-radius: 18px;
    background: linear-gradient(145deg,#fff,#f8fafc);
    border: 1px solid rgba(148,163,184,.22);
}

.setting-tile label,.setting-tile small {
    grid-column: 1/-1;
}

.setting-tile.featured {
    border-color: rgba(99,102,241,.28);
    background: linear-gradient(145deg,#fff,#eef2ff);
}

.setting-tile select {
    width: 92px;
}

.setting-tile small {
    color: #64748b;
}

.settings-actions {
    grid-column: 1/-1;
    display: flex;
    justify-content: flex-end;
    padding-top: 5px;
}

.toggle-setting {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid rgba(148,163,184,.22);
    margin: 0;
}

.toggle-setting input {
    width: auto;
}

.settings-hero {
    background: linear-gradient(135deg,rgba(79,70,229,.10),rgba(6,182,212,.08)) !important;
}

.people-check-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(210px,1fr));
    gap: 10px;
}

.person-check {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-radius: 15px;
    border: 1px solid rgba(148,163,184,.22);
    background: #fff;
    margin: 0;
}

.person-check input {
    width: auto;
}

.person-check span {
    display: flex;
    flex-direction: column;
}

.person-check small {
    color: #64748b;
}

@media (max-width:1020px) {
    .app-shell {
        grid-template-columns: 1fr !important;
    }
    .sidebar {
        width: 304px !important;
    }
    .sidebar-collapse-btn {
        display: none !important;
    }
    body.sidebar-collapsed .sidebar {
        width: 304px !important;
    }
    body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .sidebar-workspace,body.sidebar-collapsed .nav-search,body.sidebar-collapsed .sidebar-user-copy,body.sidebar-collapsed .sidebar-footer-action {
        display: initial !important;
    }
    body.sidebar-collapsed .nav-category>summary span:not(.nav-category-icon),body.sidebar-collapsed .nav-category-items .nav-link span:not(.nav-icon) {
        display: initial !important;
    }
    body.sidebar-collapsed .nav-category-items .nav-link {
        justify-content: flex-start !important;
    }
}

/*V67.1 collapse accessibility fix: keep a visible way to restore the full sidebar.*/

body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .sidebar-workspace,
body.sidebar-collapsed .nav-search,
body.sidebar-collapsed .sidebar-user-copy,
body.sidebar-collapsed .sidebar-footer-action {
    display: none !important;
}

body.sidebar-collapsed .brand-block {
    overflow: visible !important;
    position: relative;
}

body.sidebar-collapsed .sidebar-collapse-btn {
    display: grid !important;
    position: absolute;
    top: 21px;
    inset-inline-end: -17px;
    width: 28px;
    height: 28px;
    z-index: 4;
    transform: rotate(180deg);
    border: 1px solid rgba(148,163,184,.24) !important;
    background: #172554 !important;
}

@media (max-width:1020px) {
    body.sidebar-collapsed .brand-copy {
        display: block !important;
    }
    body.sidebar-collapsed .sidebar-workspace {
        display: flex !important;
    }
    body.sidebar-collapsed .nav-search {
        display: flex !important;
    }
    body.sidebar-collapsed .sidebar-user-copy {
        display: flex !important;
    }
    body.sidebar-collapsed .sidebar-footer-action {
        display: block !important;
    }
    body.sidebar-collapsed .nav-category>summary span:not(.nav-category-icon),
  body.sidebar-collapsed .nav-category-items .nav-link span:not(.nav-icon) {
        display: inline !important;
    }
    body.sidebar-collapsed .sidebar-collapse-btn {
        display: none !important;
    }
}

/*V70 communication + HR requests*/

.nav-link {
    position: relative;
}

.nav-badge {
    margin-inline-start: auto;
    min-width: 20px;
    height: 20px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    display: inline-grid;
    place-items: center;
    padding: 0 6px;
    box-shadow: 0 6px 14px rgba(239,68,68,.28);
}

.chat-shell {
    display: grid;
    grid-template-columns: 310px minmax(0,1fr);
    gap: 18px;
}

.chat-users {
    max-height: 72vh;
    overflow: auto;
}

.chat-user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 12px;
    border-radius: 14px;
    text-decoration: none;
    color: var(--text);
    border: 1px solid transparent;
}

.chat-user:hover,.chat-user.active {
    background: #eef2ff;
    border-color: #c7d2fe;
}

.chat-user .avatar {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #1d4ed8;
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 900;
}

.chat-user small {
    display: block;
    color: var(--muted);
}

.chat-window {
    min-height: 520px;
    display: flex;
    flex-direction: column;
}

.chat-messages {
    height: 520px;
    overflow: auto;
    background: linear-gradient(180deg,#f8fafc,#eef2ff);
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    padding: 16px;
}

.chat-msg {
    max-width: 78%;
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #e2e8f0;
    box-shadow: 0 6px 18px rgba(15,23,42,.05);
}

.chat-msg.me {
    margin-inline-start: auto;
    background: #2563eb;
    color: #fff;
    border-color: #2563eb;
}

.chat-msg.me small {
    color: #dbeafe;
}

.chat-msg small {
    display: block;
    color: #64748b;
    margin-bottom: 4px;
}

.chat-compose {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    margin-top: 12px;
}

.request-kanban {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(210px,1fr));
    gap: 14px;
}

.request-status-card {
    padding: 14px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 8px 24px rgba(15,23,42,.05);
}

.request-status-card b {
    font-size: 28px;
}

.request-detail-grid {
    display: grid;
    grid-template-columns: minmax(0,1.25fr) minmax(280px,.75fr);
    gap: 18px;
}

.timeline {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.timeline-item {
    padding: 12px 14px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
}

.timeline-item.internal {
    background: #fff7ed;
    border-color: #fed7aa;
}

.muted-badge {
    background: #eef2ff;
    color: #3730a3;
    border-color: #c7d2fe;
}

@media (max-width:980px) {
    .chat-shell,.request-detail-grid {
        grid-template-columns: 1fr;
    }
    .chat-messages {
        height: 420px;
    }
}

/*V71 Chat + HR Requests upgrades*/

.notification-topbar {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e5e7eb;
    text-decoration: none;
    color: #0f172a;
    box-shadow: 0 8px 20px rgba(15,23,42,.06);
}

.notification-topbar em {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 20px;
    height: 20px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 900;
    display: grid;
    place-items: center;
    padding: 0 5px;
}

.workflow-steps {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.workflow-step {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #f8fafc;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.workflow-step.approved {
    background: #ecfdf5;
    border-color: #bbf7d0;
}

.workflow-step.rejected {
    background: #fef2f2;
    border-color: #fecaca;
}

.workflow-step.skipped {
    background: #f1f5f9;
    border-style: dashed;
}

.workflow-step small {
    display: block;
    color: #64748b;
}

.workflow-action {
    display: grid;
    grid-template-columns: minmax(140px,1fr) auto auto auto;
    gap: 8px;
    align-items: center;
}

.attachment-list {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.attachment-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 12px;
    border-radius: 14px;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    text-decoration: none;
    color: #1e3a8a;
    min-width: 180px;
}

.attachment-pill small {
    color: #475569;
}

.notification-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.notification-item {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 14px;
    background: #fff;
}

.notification-item.unread {
    border-color: #93c5fd;
    background: #eff6ff;
}

.notification-item small {
    display: block;
    color: #64748b;
    margin-top: 3px;
}

.notification-item p {
    margin: .4rem 0 0;
    color: #334155;
}

.text-danger {
    color: #dc2626 !important;
}

.two-col {
    grid-template-columns: repeat(2,minmax(0,1fr));
}

@media (max-width:900px) {
    .workflow-action {
        grid-template-columns: 1fr;
    }
    .notification-item {
        flex-direction: column;
    }
    .two-col {
        grid-template-columns: 1fr;
    }
}

/*V72 - 2026 UI refresh, profile pictures and persistent chat*/

:root {
    --v72-bg: #f4f7fb;
    --v72-panel: rgba(255,255,255,.88);
    --v72-panel-solid: #fff;
    --v72-text: #0b1220;
    --v72-muted: #64748b;
    --v72-line: rgba(148,163,184,.24);
    --v72-primary: #2563eb;
    --v72-primary-2: #7c3aed;
    --v72-cyan: #06b6d4;
    --v72-success: #10b981;
    --v72-danger: #ef4444;
    --v72-shadow: 0 22px 60px rgba(15,23,42,.10);
    --v72-soft-shadow: 0 12px 36px rgba(15,23,42,.07);
    --v72-radius: 22px;
}

body {
    background: radial-gradient(circle at top left,rgba(37,99,235,.16),transparent 34rem),radial-gradient(circle at top right,rgba(6,182,212,.12),transparent 32rem),var(--v72-bg) !important;
    color: var(--v72-text);
}

.app-shell {
    background: transparent !important;
}

.main-content {
    padding: 26px !important;
}

.content-shell {
    background: transparent !important;
}

.topbar {
    margin: 14px 18px 0 !important;
    border: 1px solid var(--v72-line) !important;
    border-radius: 24px !important;
    background: rgba(255,255,255,.78) !important;
    backdrop-filter: blur(18px);
    box-shadow: var(--v72-soft-shadow) !important;
}

.mini-label,.eyebrow {
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 900;
    color: #2563eb;
}

.topbar-title strong {
    text-transform: capitalize;
}

.sidebar {
    background: linear-gradient(180deg,#07111f,#0b1630 58%,#10172a) !important;
    border-right: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: 14px 0 48px rgba(15,23,42,.20);
}

.brand-block {
    background: linear-gradient(135deg,rgba(37,99,235,.24),rgba(124,58,237,.14)) !important;
    border: 1px solid rgba(255,255,255,.10) !important;
}

.brand-logo {
    box-shadow: 0 18px 42px rgba(37,99,235,.34);
}

.nav-category>summary {
    border-radius: 18px !important;
}

.nav-category-items .nav-link {
    border-radius: 16px !important;
}

.nav-category-items .nav-link.active {
    box-shadow: 0 14px 32px rgba(37,99,235,.33) !important;
}

.nav-search {
    border-radius: 18px !important;
    background: rgba(255,255,255,.08) !important;
    border-color: rgba(255,255,255,.11) !important;
}

.nav-search input {
    color: #fff !important;
}

.nav-search input::placeholder {
    color: #94a3b8 !important;
}

.card,.stat,.request-status-card {
    border: 1px solid var(--v72-line) !important;
    border-radius: var(--v72-radius) !important;
    background: var(--v72-panel) !important;
    box-shadow: var(--v72-soft-shadow) !important;
    backdrop-filter: blur(12px);
}

.card h2,.card h3 {
    letter-spacing: -.02em;
}

.page-head,.hero-head {
    padding: 18px 20px;
    margin-bottom: 16px;
    border-radius: 26px;
    background: linear-gradient(135deg,rgba(255,255,255,.88),rgba(239,246,255,.82));
    border: 1px solid var(--v72-line);
    box-shadow: var(--v72-soft-shadow);
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
}

.page-head h1 {
    margin: 0;
    letter-spacing: -.04em;
}

.page-head p {
    margin: .3rem 0 0;
}

.grid,.stats-grid {
    gap: 16px !important;
}

.stat {
    position: relative;
    overflow: hidden;
}

.stat:before {
    content: "";
    position: absolute;
    inset: auto -28px -28px auto;
    width: 90px;
    height: 90px;
    border-radius: 999px;
    background: linear-gradient(135deg,rgba(37,99,235,.16),rgba(6,182,212,.10));
}

button,.btn,.button {
    border-radius: 15px !important;
    font-weight: 900;
    box-shadow: 0 10px 28px rgba(37,99,235,.14);
}

button:hover,.btn:hover {
    transform: translateY(-1px);
}

input,select,textarea {
    border-radius: 15px !important;
    border-color: #dbe3ef !important;
    background: #fff !important;
}

table.dataTable,table.simple-table {
    border-radius: 20px !important;
    overflow: hidden;
}

th {
    background: #f8fafc !important;
    color: #334155 !important;
    font-weight: 900 !important;
}

tbody tr:hover td {
    background: #f8fbff !important;
}

.alert {
    border-radius: 18px !important;
}

.user-avatar,.mini-avatar,.msg-avatar,.profile-avatar-large {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    overflow: hidden;
    background: linear-gradient(135deg,#2563eb,#7c3aed);
    color: #fff;
    font-weight: 950;
}

.user-avatar {
    width: 38px;
    height: 38px;
    border-radius: 14px;
}

.sidebar-user-avatar {
    width: 38px !important;
    height: 38px !important;
}

.user-avatar img,.mini-avatar img,.msg-avatar img,.profile-avatar-large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.user-pill {
    gap: 9px !important;
    border: 1px solid var(--v72-line) !important;
    background: #fff !important;
    border-radius: 16px !important;
    padding: 5px 10px 5px 6px !important;
    text-decoration: none;
    color: var(--v72-text) !important;
}

.profile-settings-grid {
    display: grid;
    grid-template-columns: 330px minmax(0,1fr);
    gap: 18px;
}

.profile-preview-card {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.profile-preview-avatar {
    margin-top: 8px;
}

.profile-avatar-large {
    width: 132px;
    height: 132px;
    border-radius: 38px;
    font-size: 42px;
    box-shadow: 0 22px 54px rgba(37,99,235,.25);
}

.modern-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}

.chat-dock {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 70;
    font-family: inherit;
}

.chat-dock-button {
    height: 56px;
    border: 0;
    border-radius: 999px !important;
    padding: 0 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg,#2563eb,#7c3aed) !important;
    color: #fff !important;
    box-shadow: 0 24px 55px rgba(37,99,235,.34) !important;
}

.chat-dock-button em {
    position: absolute;
    top: -6px;
    right: -4px;
    min-width: 22px;
    height: 22px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 11px;
    font-style: normal;
    display: grid;
    place-items: center;
    padding: 0 6px;
    border: 2px solid #fff;
}

.chat-dock-icon {
    font-size: 19px;
}

.chat-dock-label {
    font-weight: 950;
}

.chat-dock-panel {
    position: absolute;
    right: 0;
    bottom: 70px;
    width: min(820px,calc(100vw - 32px));
    height: min(680px,calc(100vh - 120px));
    border-radius: 28px;
    border: 1px solid rgba(148,163,184,.28);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(20px);
    box-shadow: 0 32px 100px rgba(15,23,42,.28);
    overflow: hidden;
}

.chat-dock-head {
    height: 68px;
    padding: 14px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(135deg,#0f172a,#1e3a8a);
    color: #fff;
}

.chat-dock-head small {
    display: block;
    color: #bfdbfe;
    margin-top: 2px;
}

.chat-dock-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.chat-dock-actions a,.chat-dock-actions button {
    width: 34px;
    height: 34px;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.10) !important;
    color: #fff;
    text-decoration: none;
    display: grid;
    place-items: center;
    padding: 0;
    box-shadow: none !important;
}

.chat-dock-body {
    height: calc(100% - 68px);
    display: grid;
    grid-template-columns: 255px minmax(0,1fr);
    background: #f8fafc;
}

.chat-dock-conversations {
    border-right: 1px solid #e2e8f0;
    padding: 12px;
    overflow: auto;
    background: rgba(255,255,255,.76);
}

.chat-dock-conversation {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: left;
    padding: 10px;
    border: 1px solid transparent;
    border-radius: 18px !important;
    background: transparent !important;
    color: #0f172a !important;
    box-shadow: none !important;
    margin-bottom: 6px;
    position: relative;
}

.chat-dock-conversation:hover,.chat-dock-conversation.active {
    background: #eef2ff !important;
    border-color: #c7d2fe;
    transform: none;
}

.chat-dock-conversation span:nth-child(2) {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.chat-dock-conversation b {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 13px;
}

.chat-dock-conversation small {
    color: #64748b;
    font-size: 11px;
}

.chat-dock-conversation em {
    margin-left: auto;
    background: #ef4444;
    color: #fff;
    border-radius: 999px;
    min-width: 20px;
    height: 20px;
    font-size: 11px;
    font-style: normal;
    display: grid;
    place-items: center;
    padding: 0 5px;
}

.mini-avatar {
    width: 34px;
    height: 34px;
    border-radius: 13px;
    font-size: 12px;
}

.chat-dock-thread {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.chat-dock-thread-title {
    padding: 13px 16px;
    border-bottom: 1px solid #e2e8f0;
    background: #fff;
    font-weight: 950;
}

.chat-dock-messages {
    flex: 1;
    overflow: auto;
    padding: 16px;
    background: linear-gradient(180deg,#f8fafc,#eef2ff);
}

.dock-msg {
    display: flex;
    gap: 9px;
    max-width: 86%;
    margin-bottom: 12px;
}

.dock-msg.me {
    margin-left: auto;
    justify-content: flex-end;
}

.dock-msg>div:last-child {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 10px 12px;
    box-shadow: 0 10px 22px rgba(15,23,42,.05);
}

.dock-msg.me>div:last-child {
    background: linear-gradient(135deg,#2563eb,#1d4ed8);
    color: #fff;
    border-color: #2563eb;
}

.dock-msg small {
    display: block;
    color: #64748b;
    font-size: 11px;
    margin-bottom: 4px;
}

.dock-msg.me small {
    color: #dbeafe;
}

.dock-msg p {
    margin: 0;
    line-height: 1.45;
}

.msg-avatar {
    width: 28px;
    height: 28px;
    border-radius: 10px;
    font-size: 11px;
    margin-top: 3px;
}

.chat-dock-compose {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    padding: 12px;
    border-top: 1px solid #e2e8f0;
    background: #fff;
}

.chat-dock-compose textarea {
    min-height: 46px;
    max-height: 96px;
    resize: vertical;
}

.chat-dock-compose button {
    min-width: 74px;
}

.chat-loading,.chat-empty {
    padding: 15px;
    color: #64748b;
    text-align: center;
}

.rtl .chat-dock {
    right: auto;
    left: 24px;
}

.rtl .chat-dock-panel {
    right: auto;
    left: 0;
}

.rtl .dock-msg.me {
    margin-left: 0;
    margin-right: auto;
}

@media (max-width:850px) {
    .chat-dock {
        right: 14px;
        bottom: 14px;
    }
    .rtl .chat-dock {
        left: 14px;
    }
    .chat-dock-panel {
        width: calc(100vw - 28px);
        height: calc(100vh - 108px);
    }
    .chat-dock-body {
        grid-template-columns: 1fr;
    }
    .chat-dock-conversations {
        max-height: 160px;
        border-right: 0;
        border-bottom: 1px solid #e2e8f0;
        display: flex;
        gap: 8px;
        overflow: auto;
    }
    .chat-dock-conversation {
        min-width: 190px;
    }
    .profile-settings-grid {
        grid-template-columns: 1fr;
    }
    .page-head {
        flex-direction: column;
        align-items: flex-start;
    }
    .main-content {
        padding: 16px !important;
    }
}

.chat-msg {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.chat-msg.me {
    display: flex;
}

.chat-msg.me>div {
    background: transparent;
}

.chat-user .avatar.has-photo {
    background: transparent;
}

.chat-msg .msg-avatar {
    margin-top: 2px;
}

/*V75 Approval Center*/

.approval-card {
    border: 1px solid rgba(245, 158, 11, .25);
}

.approval-card .simple-table td, .approval-card .simple-table th {
    vertical-align: top;
}

.day-not-uploaded {
    border-color: #fca5a5 !important;
    background: #fff1f2 !important;
    color: #991b1b;
}

.day-no-punch {
    border-color: #fcd34d !important;
    background: #fffbeb !important;
    color: #92400e;
}


/* V170.12 - locale-independent 24-hour scheduling */
.time-24-input,
input[data-time24] {
    direction: ltr !important;
    text-align: center !important;
    font-variant-numeric: tabular-nums;
    min-width: 92px;
    letter-spacing: .04em;
}
input[data-time24][aria-invalid="true"] {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .12) !important;
}
.schedule-help-card {
    display: grid;
    gap: 14px;
}
.schedule-preset {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 180px)) auto;
    gap: 12px;
    align-items: end;
}
.schedule-preset > div {
    min-width: 0;
}
.schedule-preset-action {
    padding-bottom: 1px;
}
.schedule-table td,
.schedule-table th {
    vertical-align: middle;
    white-space: nowrap;
}
.schedule-table .schedule-off-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.schedule-table .schedule-off-label input {
    width: auto;
}
.schedule-duration {
    display: inline-block;
    min-width: 105px;
    font-variant-numeric: tabular-nums;
    color: var(--muted, #64748b);
}
.schedule-table tr.is-off td:not(:first-child):not(:nth-child(2)) {
    opacity: .55;
}
@media (max-width: 760px) {
    .schedule-preset {
        grid-template-columns: 1fr 1fr;
    }
    .schedule-preset-action {
        grid-column: 1 / -1;
    }
}

/* V170.13: reliable schedule saving and exact-date overrides. */
.schedule-day-hint{display:block;margin-top:4px;max-width:320px;line-height:1.35}
.schedule-override-form .form-grid{align-items:end}
.schedule-override-form .is-disabled{opacity:.55}
.schedule-override-form input:disabled{background:var(--surface-soft,#f3f5f8);cursor:not-allowed}


/* SOURCE: assets/css/v103_datatables_fallback.css */
/*DataTables enhancement CSS is intentionally local/fallback-first in V103.*/

.data-table,.simple-table {
    width: 100%;
}

.dt-processing {
    position: absolute;
    inset: 50% auto auto 50%;
    transform: translate(-50%,-50%);
    padding: 10px 14px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #fff;
    z-index: 3;
}


/* V170.11 local server-table loader. Works without jQuery or external CDNs. */
.native-table-controls,
.native-table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 0;
}
.native-table-controls label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}
.native-table-controls input,
.native-table-controls select {
    width: auto;
    min-width: 90px;
}
.native-table-search {
    min-width: 220px !important;
}
.native-table-pager {
    display: inline-flex;
    gap: 8px;
}
.native-table-pager button {
    width: auto;
}
.native-table-message {
    padding: 24px !important;
    text-align: center;
}
@media (max-width: 720px) {
    .native-table-controls,
    .native-table-footer {
        align-items: stretch;
        flex-direction: column;
    }
    .native-table-controls label,
    .native-table-controls input,
    .native-table-controls select,
    .native-table-pager,
    .native-table-pager button {
        width: 100%;
    }
}


/* SOURCE: assets/css/v81_executive_workspace.css */
:root {
    --x-bg: #f4f6f8;
    --x-panel: #ffffff;
    --x-panel-2: #f8fafb;
    --x-text: #101828;
    --x-muted: #667085;
    --x-line: #e4e7ec;
    --x-navy: #0b1727;
    --x-blue: #175cd3;
    --x-blue-2: #1570ef;
    --x-green: #087a62;
    --x-danger: #b42318;
    --x-warning: #b54708;
    --x-radius: 18px;
    --x-shadow: 0 18px 50px rgba(16,24,40,.08);
}

body.executive-ui {
    margin: 0;
    background: var(--x-bg) !important;
    color: var(--x-text) !important;
    font-family: Inter,"Segoe UI",Tahoma,Arial,sans-serif !important;
}

body.executive-ui.theme-dark {
    --x-bg: #0b1118;
    --x-panel: #101820;
    --x-panel-2: #151f2a;
    --x-text: #f2f4f7;
    --x-muted: #98a2b3;
    --x-line: #263341;
    --x-shadow: 0 20px 60px rgba(0,0,0,.32);
}

body.executive-ui .executive-shell {
    min-height: 100vh;
    background: var(--x-bg);
}

.executive-topbar {
    position: sticky;
    top: 0;
    z-index: 500;
    height: 72px;
    display: grid;
    grid-template-columns: 1fr minmax(240px,auto) 1fr;
    align-items: center;
    padding: 0 28px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid var(--x-line);
    backdrop-filter: blur(14px);
}

.theme-dark .executive-topbar {
    background: rgba(16,24,32,.94);
}

.executive-brand,.executive-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.executive-actions {
    justify-content: flex-end;
}

.launcher-trigger {
    width: 44px;
    height: 44px;
    display: grid;
    place-content: center;
    gap: 4px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel);
    cursor: pointer;
}

.launcher-trigger span {
    display: block;
    width: 16px;
    height: 2px;
    background: var(--x-text);
    border-radius: 999px;
}

.brand-wordmark {
    display: flex;
    align-items: center;
    gap: 11px;
    color: inherit;
    text-decoration: none;
}

.brand-wordmark i {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--x-navy);
    color: #fff;
    font-style: normal;
    font-weight: 800;
    font-size: 19px;
}

.brand-wordmark strong {
    display: block;
    font-size: 15px;
    letter-spacing: -.02em;
}

.brand-wordmark small {
    display: block;
    margin-top: 1px;
    color: var(--x-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.executive-page-context {
    text-align: center;
}

.executive-page-context small {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.executive-page-context strong {
    display: block;
    margin-top: 2px;
    font-size: 17px;
    letter-spacing: -.03em;
}

.top-action {
    position: relative;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    background: var(--x-panel);
    color: var(--x-text);
    text-decoration: none;
    font-size: 18px;
    cursor: pointer;
}

.top-action em {
    position: absolute;
    right: -5px;
    top: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: #d92d20;
    color: #fff;
    font-size: 10px;
    font-style: normal;
    display: grid;
    place-items: center;
}

.executive-user {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 5px 8px 5px 6px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel);
    color: inherit;
    text-decoration: none;
}

.executive-avatar {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    object-fit: cover;
}

.executive-user strong {
    display: block;
    font-size: 12px;
}

.executive-user small {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
    text-transform: capitalize;
}

.language-menu {
    position: relative;
}

.language-control {
    height: 40px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 11px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    background: var(--x-panel);
    color: var(--x-text);
    cursor: pointer;
}

.language-control b {
    font-size: 12px;
}

.language-control i {
    font-style: normal;
    color: var(--x-muted);
}

.language-dropdown {
    position: absolute;
    top: 48px;
    right: 0;
    min-width: 160px;
    padding: 7px;
    background: var(--x-panel);
    border: 1px solid var(--x-line);
    border-radius: 12px;
    box-shadow: var(--x-shadow);
    display: none;
}

.language-menu.open .language-dropdown {
    display: block;
}

.language-dropdown a {
    display: flex;
    gap: 9px;
    align-items: center;
    padding: 9px 10px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--x-text);
}

.language-dropdown a:hover,.language-dropdown a.selected {
    background: var(--x-panel-2);
}

.executive-main {
    max-width: 1920px;
    margin: 0 auto;
    padding: 30px 34px 48px;
}

.launcher-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    background: rgba(7,16,28,.46);
    opacity: 0;
    transition: opacity .18s ease;
    backdrop-filter: blur(3px);
}

.launcher-overlay.is-open {
    opacity: 1;
}

.app-launcher {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: min(760px,88vw);
    display: grid;
    grid-template-rows: auto auto 1fr auto;
    background: var(--x-panel);
    box-shadow: 30px 0 90px rgba(7,16,28,.24);
    transform: translateX(-102%);
    transition: transform .22s ease;
}

.rtl .app-launcher {
    left: auto;
    right: 0;
    transform: translateX(102%);
    box-shadow: -30px 0 90px rgba(7,16,28,.24);
}

.launcher-overlay.is-open .app-launcher {
    transform: translateX(0);
}

.launcher-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 28px 30px 18px;
}

.launcher-head span {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.launcher-head strong {
    display: block;
    margin-top: 4px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.launcher-head button {
    width: 40px;
    height: 40px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    background: var(--x-panel);
    color: var(--x-text);
    font-size: 24px;
    cursor: pointer;
}

.launcher-search {
    margin: 0 30px 20px;
    height: 48px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel-2);
}

.launcher-search input {
    flex: 1;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--x-text) !important;
    min-height: 0 !important;
}

.launcher-content {
    overflow: auto;
    padding: 0 30px 30px;
}

.launcher-group {
    margin: 0 0 28px;
}

.launcher-group>header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 11px;
}

.launcher-group-icon {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #eff4ff;
    color: #1849a9;
    font-size: 14px;
}

.theme-dark .launcher-group-icon {
    background: rgba(23,92,211,.15);
    color: #84adff;
}

.launcher-group header strong {
    display: block;
    font-size: 13px;
}

.launcher-group header small {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
}

.launcher-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
}

.app-tile {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 12px 14px;
    border: 1px solid var(--x-line);
    border-radius: 13px;
    background: var(--x-panel);
    color: inherit;
    text-decoration: none;
}

.app-tile:hover {
    border-color: #b2ccff;
    background: #f8faff;
}

.theme-dark .app-tile:hover {
    background: #142235;
}

.app-tile.active {
    border-color: #84adff;
    box-shadow: 0 0 0 3px rgba(23,92,211,.08);
}

.app-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--x-panel-2);
    font-size: 18px;
}

.app-copy strong {
    display: block;
    font-size: 12px;
}

.app-copy small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 10px;
}

.app-arrow {
    color: var(--x-muted);
}

.app-badge {
    position: absolute;
    right: 34px;
    top: 10px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: #d92d20;
    color: #fff;
    font-size: 10px;
    font-style: normal;
    display: grid;
    place-items: center;
}

.rtl .app-badge {
    right: auto;
    left: 34px;
}

.launcher-footer {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 30px;
    border-top: 1px solid var(--x-line);
    background: var(--x-panel-2);
}

.launcher-avatar {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    object-fit: cover;
}

.launcher-footer div {
    flex: 1;
}

.launcher-footer strong {
    display: block;
    font-size: 12px;
}

.launcher-footer small {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
}

.launcher-footer a {
    color: var(--x-danger);
    font-size: 12px;
    text-decoration: none;
}

body.launcher-open {
    overflow: hidden;
}

.executive-ui .page-head,.executive-ui .hero-head {
    padding: 26px 28px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 18px !important;
    background: var(--x-panel) !important;
    box-shadow: none !important;
}

.executive-ui .page-head:before,.executive-ui .hero-head:before {
    display: none !important;
}

.executive-ui h1 {
    font-size: 32px !important;
    letter-spacing: -.05em !important;
    color: var(--x-text) !important;
}

.executive-ui h2,.executive-ui h3 {
    color: var(--x-text) !important;
    letter-spacing: -.03em !important;
}

.executive-ui .card,.executive-ui .stat,.executive-ui .request-status-card,.executive-ui .notification-item {
    border: 1px solid var(--x-line) !important;
    border-radius: 16px !important;
    background: var(--x-panel) !important;
    box-shadow: none !important;
}

.executive-ui .stat {
    padding: 20px !important;
}

.executive-ui .stat:after {
    display: none !important;
}

.executive-ui table {
    background: var(--x-panel) !important;
    border-color: var(--x-line) !important;
}

.executive-ui th {
    background: var(--x-panel-2) !important;
    color: var(--x-muted) !important;
    border-bottom-color: var(--x-line) !important;
}

.executive-ui td {
    color: var(--x-text) !important;
    border-bottom-color: var(--x-line) !important;
}

.executive-ui input,.executive-ui select,.executive-ui textarea {
    border: 1px solid #d0d5dd !important;
    border-radius: 10px !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
}

.executive-ui input:focus,.executive-ui select:focus,.executive-ui textarea:focus {
    border-color: var(--x-blue-2) !important;
    box-shadow: 0 0 0 3px rgba(21,112,239,.12) !important;
}

.executive-ui button,.executive-ui .btn,.executive-ui .button {
    border-radius: 10px !important;
    box-shadow: none !important;
}

.executive-ui .btn.primary,.executive-ui button.primary,.executive-ui .button.primary {
    background: var(--x-blue) !important;
    border-color: var(--x-blue) !important;
    color: #fff !important;
}

.executive-ui .chat-dock-button {
    border-radius: 14px !important;
    background: var(--x-navy) !important;
    box-shadow: 0 16px 36px rgba(11,23,39,.2) !important;
}

.executive-ui .chat-dock-panel {
    border: 1px solid var(--x-line) !important;
    border-radius: 16px !important;
    background: var(--x-panel) !important;
    box-shadow: var(--x-shadow) !important;
}

@media (max-width:1100px) {
    .executive-topbar {
        grid-template-columns: 1fr auto;
    }
    .executive-page-context {
        display: none;
    }
    .executive-user div,.language-control b {
        display: none;
    }
    .executive-main {
        padding: 22px 18px 36px;
    }
}

@media (max-width:680px) {
    .executive-topbar {
        height: 64px;
        padding: 0 12px;
    }
    .brand-wordmark div {
        display: none;
    }
    .executive-actions {
        gap: 6px;
    }
    .top-action,.language-control {
        width: 38px;
        padding: 0;
        justify-content: center;
    }
    .executive-user {
        padding: 3px;
    }
    .executive-main {
        padding: 14px 9px 26px;
    }
    .launcher-grid {
        grid-template-columns: 1fr;
    }
    .launcher-content,.launcher-head {
        padding-left: 18px;
        padding-right: 18px;
    }
    .launcher-search {
        margin-left: 18px;
        margin-right: 18px;
    }
    .app-launcher {
        width: 94vw;
    }
}

.executive-overview-head {
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: flex-end;
    margin-bottom: 24px;
    padding: 28px 30px;
    border: 1px solid var(--x-line);
    border-radius: 20px;
    background: var(--x-panel);
}

.executive-overview-head .eyebrow {
    color: var(--x-blue);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .15em;
}

.executive-overview-head h1 {
    margin: 8px 0 8px !important;
    font-size: 38px !important;
    letter-spacing: -.055em !important;
}

.executive-overview-head p {
    max-width: 760px;
    margin: 0;
    color: var(--x-muted);
    font-size: 14px;
    line-height: 1.6;
}

.period-command {
    min-width: 330px;
}

.period-command label {
    display: block;
    margin-bottom: 7px;
    color: var(--x-muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.period-command>div {
    display: flex;
    gap: 8px;
}

.period-command select {
    flex: 1;
    min-width: 0;
}

.period-command button {
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: var(--x-navy);
    color: #fff;
    font-weight: 700;
}

.executive-metrics {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.metric-card {
    min-height: 142px;
    padding: 22px 23px;
    border: 1px solid var(--x-line);
    border-radius: 18px;
    background: var(--x-panel);
}

.metric-card span {
    display: block;
    color: var(--x-muted);
    font-size: 11px;
    font-weight: 700;
}

.metric-card strong {
    display: block;
    margin: 18px 0 8px;
    font-size: 34px;
    line-height: 1;
    letter-spacing: -.05em;
}

.metric-card small {
    color: var(--x-muted);
    font-size: 11px;
}

.metric-primary {
    background: var(--x-navy);
    color: #fff;
    border-color: var(--x-navy);
}

.metric-primary span,.metric-primary small {
    color: #98a2b3;
}

.metric-finance strong {
    color: var(--x-green);
}

.executive-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0,1.7fr) minmax(330px,.65fr);
    gap: 18px;
}

.workspace-column {
    display: grid;
    gap: 18px;
    align-content: start;
}

.executive-panel {
    border: 1px solid var(--x-line);
    border-radius: 18px;
    background: var(--x-panel);
    overflow: hidden;
}

.panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--x-line);
}

.panel-head span {
    display: block;
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.panel-head h2 {
    margin: 4px 0 0 !important;
    font-size: 18px !important;
}

.panel-head a {
    color: var(--x-blue);
    font-size: 11px;
    text-decoration: none;
}

.health-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    padding: 18px;
}

.health-grid>div {
    padding: 18px;
    border-right: 1px solid var(--x-line);
}

.rtl .health-grid>div {
    border-right: 0;
    border-left: 1px solid var(--x-line);
}

.health-grid>div:last-child {
    border: 0;
}

.health-grid span {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
}

.health-grid strong {
    display: block;
    margin-top: 10px;
    font-size: 27px;
    letter-spacing: -.04em;
}

.health-grid .attention strong {
    color: var(--x-warning);
}

.executive-alert {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    margin: 14px 18px;
    padding: 13px 14px;
    border: 1px solid #fedf89;
    border-radius: 11px;
    background: #fffaeb;
    color: #7a2e0e;
}

.theme-dark .executive-alert {
    background: rgba(181,71,8,.12);
    border-color: rgba(181,71,8,.3);
    color: #fec84b;
}

.executive-alert b {
    font-size: 11px;
}

.executive-alert span {
    font-size: 11px;
}

.executive-alert a {
    color: inherit;
    font-size: 10px;
    font-weight: 800;
}

.executive-table-wrap {
    padding: 0 18px 18px;
}

.clear-state,.empty-state {
    margin: 18px;
    padding: 24px;
    border: 1px dashed var(--x-line);
    border-radius: 12px;
    color: var(--x-muted);
    font-size: 12px;
}

.clear-state {
    display: flex;
    align-items: center;
    gap: 12px;
}

.clear-state>span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #ecfdf3;
    color: #067647;
}

.clear-state b {
    display: block;
    color: var(--x-text);
    font-size: 12px;
}

.clear-state small {
    display: block;
    margin-top: 3px;
}

.command-list {
    padding: 10px 14px 16px;
}

.command-list a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 14px 8px;
    border-bottom: 1px solid var(--x-line);
    color: inherit;
    text-decoration: none;
}

.command-list a:last-child {
    border-bottom: 0;
}

.command-list i {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--x-panel-2);
    color: var(--x-muted);
    font-style: normal;
    font-size: 9px;
    font-weight: 800;
}

.command-list b {
    display: block;
    font-size: 11px;
}

.command-list small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 10px;
}

.command-list span {
    color: var(--x-muted);
}

.period-panel {
    padding-bottom: 16px;
}

.period-status {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 20px;
}

.period-status span {
    font-weight: 800;
}

.period-status em {
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.period-status em.open {
    background: #ecfdf3;
    color: #067647;
}

.period-status em.closed {
    background: #fef3f2;
    color: #b42318;
}

.period-dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 0 20px 16px;
}

.period-dates div {
    padding: 12px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
}

.period-dates small {
    display: block;
    color: var(--x-muted);
    font-size: 9px;
    text-transform: uppercase;
}

.period-dates strong {
    display: block;
    margin-top: 5px;
    font-size: 11px;
}

.period-link {
    display: block;
    margin: 0 20px;
    padding: 11px 12px;
    border-radius: 10px;
    background: var(--x-panel-2);
    color: var(--x-blue);
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

@media (max-width:1200px) {
    .executive-metrics {
        grid-template-columns: repeat(2,1fr);
    }
    .executive-workspace-grid {
        grid-template-columns: 1fr;
    }
    .workspace-side {
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width:760px) {
    .executive-overview-head {
        display: block;
        padding: 20px;
    }
    .period-command {
        min-width: 0;
        margin-top: 22px;
    }
    .executive-metrics {
        grid-template-columns: 1fr 1fr;
    }
    .health-grid {
        grid-template-columns: 1fr 1fr;
    }
    .health-grid>div {
        border-bottom: 1px solid var(--x-line);
    }
    .workspace-side {
        grid-template-columns: 1fr;
    }
}

@media (max-width:520px) {
    .executive-metrics {
        grid-template-columns: 1fr;
    }
    .health-grid {
        grid-template-columns: 1fr;
    }
    .health-grid>div {
        border-right: 0 !important;
        border-left: 0 !important;
    }
    .executive-overview-head h1 {
        font-size: 30px !important;
    }
}

/*V82 launcher clarity and direct messenger*/

.app-tile {
    min-height: 82px !important;
    padding: 16px 18px !important;
}

.app-copy strong {
    font-size: 15px !important;
    line-height: 1.35 !important;
    letter-spacing: -.02em !important;
}

.app-copy small {
    display: none !important;
}

.launcher-grid {
    gap: 12px !important;
}

.launcher-group>header {
    margin-bottom: 14px !important;
}

.launcher-group header strong {
    font-size: 15px !important;
}

.launcher-group header small {
    font-size: 11px !important;
}

.app-icon {
    width: 44px !important;
    height: 44px !important;
    font-size: 19px !important;
}

.app-arrow {
    font-size: 15px !important;
}

.top-chat-trigger {
    font: inherit;
}

.messenger-dock {
    position: fixed;
    right: 24px;
    bottom: 22px;
    z-index: 1400;
}

.rtl .messenger-dock {
    right: auto;
    left: 24px;
}

.messenger-launcher {
    min-width: 148px;
    height: 52px !important;
    padding: 0 17px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #0b1727 !important;
    color: #fff !important;
    box-shadow: 0 18px 45px rgba(11,23,39,.24) !important;
}

.messenger-launcher em {
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #d92d20;
    color: #fff;
    font-size: 10px;
    font-style: normal;
}

.messenger-panel {
    position: absolute !important;
    right: 0 !important;
    bottom: 64px !important;
    width: min(760px,calc(100vw - 48px)) !important;
    height: min(620px,calc(100vh - 110px)) !important;
    display: grid !important;
    grid-template-rows: auto auto 1fr !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 18px !important;
    background: var(--x-panel) !important;
    box-shadow: 0 28px 90px rgba(16,24,40,.22) !important;
    overflow: hidden !important;
}

.rtl .messenger-panel {
    right: auto !important;
    left: 0 !important;
}

.messenger-panel[hidden] {
    display: none !important;
}

.messenger-head {
    min-height: 72px;
    padding: 16px 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 1px solid var(--x-line) !important;
    background: var(--x-panel) !important;
}

.messenger-kicker {
    display: block;
    color: var(--x-blue);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .13em;
}

.messenger-head strong {
    display: block;
    margin-top: 4px;
    font-size: 18px !important;
    letter-spacing: -.03em;
}

.chat-dock-actions button {
    width: 36px;
    height: 36px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    background: var(--x-panel);
    color: var(--x-text);
    font-size: 21px;
    cursor: pointer;
}

.messenger-search {
    height: 52px;
    padding: 8px 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--x-line);
    background: var(--x-panel-2);
}

.messenger-search input {
    width: 100%;
    height: 36px !important;
    min-height: 36px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--x-text) !important;
}

.messenger-body {
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: 250px minmax(0,1fr) !important;
}

.rtl .messenger-body {
    grid-template-columns: 250px minmax(0,1fr) !important;
}

.messenger-conversations {
    min-width: 0 !important;
    overflow-y: auto !important;
    border-right: 1px solid var(--x-line) !important;
    background: var(--x-panel-2) !important;
    padding: 8px !important;
}

.rtl .messenger-conversations {
    border-right: 0 !important;
    border-left: 1px solid var(--x-line) !important;
}

.chat-dock-conversation {
    width: 100%;
    min-height: 60px;
    padding: 9px 10px !important;
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    gap: 9px !important;
    align-items: center !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: var(--x-text) !important;
    text-align: left !important;
    cursor: pointer;
}

.rtl .chat-dock-conversation {
    text-align: right !important;
}

.chat-dock-conversation:hover {
    background: var(--x-panel) !important;
}

.chat-dock-conversation.active {
    background: var(--x-panel) !important;
    box-shadow: 0 0 0 1px var(--x-line) inset !important;
}

.chat-dock-conversation b {
    display: block;
    font-size: 12px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chat-dock-conversation small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted) !important;
    font-size: 10px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chat-dock-conversation em {
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #d92d20;
    color: #fff;
    font-size: 9px;
    font-style: normal;
}

.mini-avatar,.msg-avatar {
    width: 36px !important;
    height: 36px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 10px !important;
    background: #e9eff8 !important;
    color: #344054 !important;
    font-weight: 800 !important;
    overflow: hidden !important;
}

.mini-avatar img,.msg-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.messenger-thread {
    min-width: 0 !important;
    display: grid !important;
    grid-template-rows: auto 1fr auto !important;
    background: var(--x-panel) !important;
}

.messenger-thread-title {
    padding: 15px 17px !important;
    border-bottom: 1px solid var(--x-line) !important;
    font-size: 13px !important;
    font-weight: 800 !important;
}

.messenger-messages {
    min-height: 0 !important;
    overflow-y: auto !important;
    padding: 18px !important;
    background: linear-gradient(180deg,var(--x-panel),var(--x-panel-2)) !important;
}

.dock-msg {
    display: flex !important;
    gap: 9px !important;
    margin-bottom: 14px !important;
    align-items: flex-end !important;
}

.dock-msg.me {
    justify-content: flex-end !important;
}

.dock-msg>div {
    max-width: 76%;
}

.dock-msg small {
    display: block;
    margin-bottom: 4px;
    color: var(--x-muted) !important;
    font-size: 9px !important;
}

.dock-msg p {
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 13px 13px 13px 4px !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
    font-size: 12px !important;
    line-height: 1.5 !important;
}

.rtl .dock-msg p {
    border-radius: 13px 13px 4px 13px !important;
}

.dock-msg.me p {
    border-color: #175cd3 !important;
    background: #175cd3 !important;
    color: #fff !important;
    border-radius: 13px 13px 4px 13px !important;
}

.rtl .dock-msg.me p {
    border-radius: 13px 13px 13px 4px !important;
}

.messenger-compose {
    padding: 12px !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
    border-top: 1px solid var(--x-line) !important;
    background: var(--x-panel) !important;
}

.messenger-compose textarea {
    min-height: 46px !important;
    max-height: 110px !important;
    resize: none !important;
    padding: 12px 13px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 12px !important;
    background: var(--x-panel-2) !important;
    color: var(--x-text) !important;
}

.messenger-compose button {
    width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #0b1727 !important;
    color: #fff !important;
    font-size: 17px !important;
    cursor: pointer;
}

.theme-dark .messenger-compose button {
    background: #175cd3 !important;
}

.chat-loading,.chat-empty {
    padding: 18px;
    color: var(--x-muted);
    font-size: 11px;
    text-align: center;
}

@media (max-width:720px) {
    .messenger-dock {
        right: 10px;
        bottom: 10px;
    }
    .rtl .messenger-dock {
        right: auto;
        left: 10px;
    }
    .messenger-panel {
        position: fixed !important;
        inset: 72px 10px 10px 10px !important;
        width: auto !important;
        height: auto !important;
    }
    .rtl .messenger-panel {
        inset: 72px 10px 10px 10px !important;
    }
    .messenger-body {
        grid-template-columns: 116px minmax(0,1fr) !important;
    }
    .chat-dock-conversation {
        grid-template-columns: auto 1fr !important;
    }
    .chat-dock-conversation em {
        position: absolute;
    }
    .messenger-launcher {
        min-width: 54px !important;
        width: 54px !important;
        padding: 0 !important;
    }
    .messenger-launcher .chat-dock-label {
        display: none;
    }
    .messenger-conversations {
        padding: 5px !important;
    }
    .chat-dock-conversation {
        padding: 8px 5px !important;
    }
    .chat-dock-conversation small {
        display: none !important;
    }
    .app-tile {
        min-height: 72px !important;
    }
    .app-copy strong {
        font-size: 14px !important;
    }
}

/*V83 hard isolation for launcher labels and legacy-CSS regression fixes*/

.executive-ui .launcher-content nav,.executive-ui .launcher-grid {
    display: grid !important;
}

.executive-ui .launcher-group-code {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid var(--x-line);
    border-radius: 9px;
    background: var(--x-panel);
    color: var(--x-blue);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .04em;
}

.executive-ui .app-tile {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 48px minmax(0,1fr) 22px !important;
    align-items: center !important;
    gap: 14px !important;
    min-height: 86px !important;
    padding: 16px 18px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 14px !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
    text-decoration: none !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.executive-ui .app-tile[hidden] {
    display: none !important;
}

.executive-ui .app-code {
    width: 48px !important;
    height: 48px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 12px !important;
    background: var(--x-panel-2) !important;
    color: #344054 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .04em !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.executive-ui.theme-dark .app-code {
    color: #d0d5dd !important;
}

.executive-ui .app-label {
    display: block !important;
    min-width: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--x-text) !important;
    font-size: 16px !important;
    font-weight: 760 !important;
    line-height: 1.32 !important;
    letter-spacing: -.025em !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    text-transform: none !important;
}

.executive-ui .app-tile:hover {
    border-color: #84adff !important;
    background: #f8faff !important;
}

.executive-ui.theme-dark .app-tile:hover {
    background: #142235 !important;
}

.executive-ui .app-tile.active {
    border-color: #528bff !important;
    box-shadow: 0 0 0 3px rgba(23,92,211,.09) !important;
}

.executive-ui .app-arrow {
    display: block !important;
    color: var(--x-muted) !important;
    font-size: 16px !important;
}

.executive-ui .app-badge {
    position: absolute !important;
    top: 9px !important;
    right: 9px !important;
    left: auto !important;
    z-index: 2 !important;
    min-width: 20px !important;
    height: 20px !important;
    padding: 0 5px !important;
    border-radius: 999px !important;
    background: #d92d20 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    font-style: normal !important;
    display: grid !important;
    place-items: center !important;
}

.executive-ui.rtl .app-badge {
    right: auto !important;
    left: 9px !important;
}

.executive-ui .launcher-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 12px !important;
}

.executive-ui .launcher-group>header {
    display: flex !important;
    align-items: center !important;
    gap: 11px !important;
}

.executive-ui .launcher-group header strong {
    display: block !important;
    color: var(--x-text) !important;
    font-size: 15px !important;
    visibility: visible !important;
    opacity: 1 !important;
}

.executive-ui .launcher-group header small {
    display: block !important;
    color: var(--x-muted) !important;
    font-size: 10px !important;
}

.executive-ui .launcher-head strong {
    color: var(--x-text) !important;
}

.executive-ui .executive-page-context strong {
    color: var(--x-text) !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/*Defuse generic legacy nav/aside rules inside the new executive shell*/

.executive-ui aside.app-launcher {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    height: auto !important;
    overflow: hidden !important;
    padding: 0 !important;
    color: var(--x-text) !important;
}

.executive-ui .app-launcher a {
    padding: 16px 18px !important;
    border-radius: 14px !important;
    font-weight: inherit !important;
    font-size: inherit !important;
}

.executive-ui .launcher-footer a {
    padding: 0 !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

@media (max-width:680px) {
    .executive-ui .launcher-grid {
        grid-template-columns: 1fr !important;
    }
    .executive-ui .app-label {
        font-size: 15px !important;
    }
    .executive-ui .app-tile {
        min-height: 76px !important;
        grid-template-columns: 44px minmax(0,1fr) 18px !important;
        padding: 13px 14px !important;
    }
    .executive-ui .app-code {
        width: 44px !important;
        height: 44px !important;
    }
}

/*V102 native language selector: works without JavaScript*/

.native-language-menu > summary {
    list-style: none;
}

.native-language-menu > summary::-webkit-details-marker {
    display: none;
}

.native-language-menu[open] .language-dropdown {
    display: block;
}

.native-language-menu .language-control {
    user-select: none;
}


/* SOURCE: assets/css/v84_page_standardization.css */
/*V84 Page Standardization Layer*/

.executive-ui .executive-main {
    display: block;
}

.executive-ui .auto-page-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    margin: 0 0 18px !important;
    padding: 24px 26px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 18px !important;
    background: var(--x-panel) !important;
}

.executive-ui .auto-page-head h1 {
    margin: 0 !important;
}

.executive-ui .page-head {
    margin-bottom: 18px !important;
}

.executive-ui .page-head .mini-label,.executive-ui .page-head>div>span:first-child {
    display: block;
    color: var(--x-blue) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    margin-bottom: 7px;
}

.executive-ui .card {
    margin-bottom: 16px !important;
    padding: 20px !important;
}

.executive-ui .card>h2:first-child,.executive-ui .card>h3:first-child {
    margin-top: 0 !important;
}

.executive-ui .filter-card,.executive-ui .card:has(form.row[method="get"]) {
    padding: 14px 16px !important;
}

.executive-ui form.row {
    align-items: end !important;
    gap: 12px !important;
}

.executive-ui form.row>div {
    min-width: 170px;
}

.executive-ui form.row label {
    display: block;
    margin-bottom: 7px !important;
    color: var(--x-muted) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

.executive-ui .dataTables_wrapper,.executive-ui .dt-container {
    border: 1px solid var(--x-line) !important;
    border-radius: 15px !important;
    background: var(--x-panel) !important;
    overflow: hidden !important;
}

.executive-ui .table-wrap {
    overflow: auto !important;
}

.executive-ui table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

.executive-ui th {
    height: 48px !important;
    padding: 0 14px !important;
    white-space: nowrap !important;
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: .055em !important;
}

.executive-ui td {
    padding: 12px 14px !important;
    vertical-align: middle !important;
}

.executive-ui tbody tr:last-child td {
    border-bottom: 0 !important;
}

.executive-ui .actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.executive-ui .btn,.executive-ui button {
    font-weight: 700 !important;
}

.executive-ui .btn.small,.executive-ui button.small {
    min-height: 34px !important;
    padding: 7px 10px !important;
    font-size: 10px !important;
}

.executive-ui .badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 24px !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    font-size: 9px !important;
    font-weight: 800 !important;
    letter-spacing: .035em !important;
}

.executive-ui .badge.good {
    background: #ecfdf3 !important;
    color: #067647 !important;
}

.executive-ui .badge.warn {
    background: #fffaeb !important;
    color: #b54708 !important;
}

.executive-ui .badge.bad {
    background: #fef3f2 !important;
    color: #b42318 !important;
}

.theme-dark.executive-ui .badge.good {
    background: rgba(6,118,71,.18) !important;
    color: #75e0a7 !important;
}

.theme-dark.executive-ui .badge.warn {
    background: rgba(181,71,8,.18) !important;
    color: #fec84b !important;
}

.theme-dark.executive-ui .badge.bad {
    background: rgba(180,35,24,.18) !important;
    color: #fda29b !important;
}

.executive-ui .grid {
    gap: 14px !important;
}

.executive-ui .grid2,.executive-ui .two-cols {
    gap: 16px !important;
}

.executive-ui .stat,.executive-ui .stat-card {
    min-height: 118px !important;
    padding: 18px 20px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 16px !important;
    background: var(--x-panel) !important;
}

.executive-ui .stat span,.executive-ui .stat-card span {
    color: var(--x-muted) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

.executive-ui .stat b,.executive-ui .stat strong,.executive-ui .stat-card b,.executive-ui .stat-card strong {
    display: block !important;
    margin-top: 13px !important;
    font-size: 26px !important;
    letter-spacing: -.04em !important;
}

.executive-ui .alert {
    border-radius: 12px !important;
    padding: 13px 15px !important;
}

.executive-ui hr {
    border: 0 !important;
    border-top: 1px solid var(--x-line) !important;
    margin: 18px 0 !important;
}

.executive-ui .profile-head {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}

.executive-ui .profile-head .avatar {
    width: 58px !important;
    height: 58px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 16px !important;
    background: var(--x-navy) !important;
    color: #fff !important;
    font-size: 22px !important;
    font-weight: 800 !important;
}

.executive-ui .auto-empty-row td {
    text-align: center !important;
    color: var(--x-muted) !important;
    padding: 28px !important;
}

@media (max-width:760px) {
    .executive-ui .auto-page-head {
        padding: 18px !important;
    }
    .executive-ui form.row>div {
        min-width: 100% !important;
    }
    .executive-ui .card {
        padding: 16px !important;
    }
}

/*V85 Command Center*/

.command-layout-v85 {
    display: grid;
    grid-template-columns: minmax(0,1.65fr) minmax(320px,.55fr);
    gap: 18px;
}

.command-main-v85,.command-side-v85 {
    display: grid;
    gap: 18px;
    align-content: start;
}

.risk-grid-v85 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    padding: 16px;
}

.risk-tile {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 11px;
    align-items: center;
    min-height: 72px;
    padding: 13px 15px;
    border: 1px solid var(--x-line);
    border-radius: 13px;
    background: var(--x-panel);
    color: inherit;
    text-decoration: none;
}

.risk-tile:hover {
    background: var(--x-panel-2);
}

.risk-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #98a2b3;
}

.risk-tile b {
    display: block;
    font-size: 12px;
}

.risk-tile small {
    display: block;
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.risk-tile strong {
    font-size: 22px;
}

.risk-critical .risk-dot {
    background: #d92d20;
}

.risk-high .risk-dot {
    background: #f79009;
}

.risk-medium .risk-dot {
    background: #2e90fa;
}

.risk-clear .risk-dot {
    background: #12b76a;
}

.period-health-v85 {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}

.period-health-v85>div:nth-child(3n) {
    border-right: 0 !important;
}

.rtl .period-health-v85>div:nth-child(3n) {
    border-left: 0 !important;
}

.dashboard-kpis .metric-card {
    min-height: 132px !important;
}

.dashboard-command-head {
    margin-bottom: 18px !important;
}

@media (max-width:1200px) {
    .command-layout-v85 {
        grid-template-columns: 1fr;
    }
    .command-side-v85 {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width:760px) {
    .risk-grid-v85,.period-health-v85,.command-side-v85 {
        grid-template-columns: 1fr !important;
    }
    .period-health-v85>div {
        border-left: 0 !important;
        border-right: 0 !important;
        border-bottom: 1px solid var(--x-line) !important;
    }
}

/*V86 Employee 360*/

.employee360-hero {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-bottom: 14px;
    padding: 24px 26px;
    border: 1px solid var(--x-line);
    border-radius: 18px;
    background: var(--x-panel);
}

.employee360-identity {
    display: flex;
    align-items: center;
    gap: 16px;
}

.employee360-avatar {
    width: 74px;
    height: 74px;
    border-radius: 19px;
    object-fit: cover;
}

.employee360-initial {
    display: grid;
    place-items: center;
    background: var(--x-navy);
    color: #fff;
    font-size: 28px;
    font-weight: 800;
}

.employee360-code {
    color: var(--x-blue);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
}

.employee360-identity h2 {
    margin: 5px 0 4px !important;
    font-size: 27px !important;
}

.employee360-identity p {
    margin: 0;
    color: var(--x-muted);
    font-size: 11px;
}

.employee360-period {
    min-width: 330px;
}

.employee360-period label {
    display: block;
    margin-bottom: 7px;
    color: var(--x-muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.employee360-period>div {
    display: flex;
    gap: 8px;
}

.employee360-period select {
    flex: 1;
}

.employee360-tabs {
    position: sticky;
    top: 82px;
    z-index: 25;
    display: flex;
    gap: 4px;
    overflow: auto;
    margin-bottom: 14px;
    padding: 7px;
    border: 1px solid var(--x-line);
    border-radius: 13px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
}

.theme-dark .employee360-tabs {
    background: rgba(16,24,32,.94);
}

.employee360-tabs a {
    white-space: nowrap;
    padding: 9px 12px;
    border-radius: 8px;
    color: var(--x-muted);
    text-decoration: none;
    font-size: 10px;
    font-weight: 800;
}

.employee360-tabs a:hover {
    background: var(--x-panel-2);
    color: var(--x-text);
}

.employee360-metrics {
    display: grid;
    grid-template-columns: repeat(6,minmax(0,1fr));
    gap: 10px;
    margin-bottom: 16px;
}

.employee360-metrics article {
    padding: 17px;
    border: 1px solid var(--x-line);
    border-radius: 14px;
    background: var(--x-panel);
}

.employee360-metrics span,.employee360-payroll-grid span {
    display: block;
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.employee360-metrics strong,.employee360-payroll-grid strong {
    display: block;
    margin: 11px 0 5px;
    font-size: 24px;
    letter-spacing: -.04em;
}

.employee360-metrics small {
    color: var(--x-muted);
    font-size: 9px;
}

.employee360-section {
    margin-bottom: 16px;
}

.employee360-payroll-grid {
    display: grid;
    grid-template-columns: repeat(6,minmax(0,1fr));
    padding: 16px;
}

.employee360-payroll-grid>div {
    padding: 16px;
    border-right: 1px solid var(--x-line);
}

.rtl .employee360-payroll-grid>div {
    border-right: 0;
    border-left: 1px solid var(--x-line);
}

.employee360-payroll-grid>div:last-child {
    border: 0;
}

.employee360-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.compact-list360 {
    padding: 8px 14px 16px;
}

.compact-list360>a,.compact-row360 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 13px 7px;
    border-bottom: 1px solid var(--x-line);
    color: inherit;
    text-decoration: none;
}

.compact-list360 b {
    display: block;
    font-size: 11px;
}

.compact-list360 small {
    display: block;
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.document-upload360 {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr)) auto;
    gap: 10px;
    align-items: end;
    padding: 16px;
    border-bottom: 1px solid var(--x-line);
    background: var(--x-panel-2);
}

.document-upload360 label {
    display: block;
    margin-bottom: 6px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--x-muted);
}

.document-grid360 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    padding: 16px;
}

.document-card360 {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
}

.document-card360.expired {
    border-color: #fda29b;
    background: #fff7f7;
}

.theme-dark .document-card360.expired {
    background: rgba(180,35,24,.1);
}

.document-type360 {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--x-panel-2);
    font-size: 9px;
    font-weight: 900;
}

.document-card360 b {
    display: block;
    font-size: 11px;
}

.document-card360 small {
    display: block;
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.timeline360 {
    padding: 12px 20px 20px;
}

.timeline-event360 {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    padding: 10px 0;
}

.timeline-event360 i {
    width: 10px;
    height: 10px;
    margin-top: 4px;
    border-radius: 50%;
    background: var(--x-blue);
    box-shadow: 0 0 0 5px rgba(23,92,211,.1);
}

.timeline-event360 b {
    display: block;
    font-size: 11px;
}

.timeline-event360 small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 9px;
}

.timeline-event360 p {
    margin: 4px 0 0;
    color: var(--x-muted);
    font-size: 9px;
}

@media (max-width:1200px) {
    .employee360-metrics,.employee360-payroll-grid {
        grid-template-columns: repeat(3,1fr);
    }
    .document-upload360 {
        grid-template-columns: repeat(2,1fr);
    }
    .document-upload360 button {
        width: 100%;
    }
}

@media (max-width:760px) {
    .employee360-hero {
        display: block;
    }
    .employee360-period {
        min-width: 0;
        margin-top: 18px;
    }
    .employee360-metrics,.employee360-payroll-grid,.employee360-split,.document-grid360,.document-upload360 {
        grid-template-columns: 1fr;
    }
    .employee360-payroll-grid>div {
        border-right: 0 !important;
        border-left: 0 !important;
        border-bottom: 1px solid var(--x-line);
    }
    .document-card360 {
        grid-template-columns: auto 1fr;
    }
    .document-card360 .actions {
        grid-column: 1/-1;
    }
}

/*V87 controlled month close*/

.close-workflow-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 14px;
    padding: 22px 24px;
    border: 1px solid var(--x-line);
    border-radius: 17px;
    background: var(--x-panel);
}

.close-workflow-head span {
    color: var(--x-muted);
    font-size: 9px;
    text-transform: uppercase;
    font-weight: 800;
}

.close-workflow-head h2 {
    margin: 5px 0 !important;
    font-size: 26px !important;
}

.close-workflow-head p {
    margin: 0;
    color: var(--x-muted);
    font-size: 10px;
}

.close-state {
    min-width: 190px;
    padding: 15px;
    border-radius: 13px;
    text-align: center;
    background: var(--x-panel-2);
}

.close-state strong {
    display: block;
    margin-top: 5px;
    font-size: 17px;
}

.close-state.ready strong {
    color: #067647;
}

.close-state.blocked strong {
    color: #b54708;
}

.close-state.closed strong {
    color: #175cd3;
}

.close-step-list {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.close-step {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 13px;
    align-items: center;
    padding: 13px 16px;
    border: 1px solid var(--x-line);
    border-radius: 13px;
    background: var(--x-panel);
}

.close-step.done {
    border-left: 4px solid #12b76a;
}

.close-step.pending {
    border-left: 4px solid #f79009;
}

.rtl .close-step.done {
    border-left: 1px solid var(--x-line);
    border-right: 4px solid #12b76a;
}

.rtl .close-step.pending {
    border-left: 1px solid var(--x-line);
    border-right: 4px solid #f79009;
}

.step-no {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--x-panel-2);
    font-size: 10px;
    font-weight: 900;
}

.close-step b {
    display: block;
    font-size: 12px;
}

.close-step small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 9px;
}

.close-step em {
    font-style: normal;
    font-size: 14px;
    font-weight: 800;
}

.close-step a {
    color: var(--x-blue);
    font-size: 10px;
    font-weight: 800;
    text-decoration: none;
}

.close-workflow-grid {
    display: grid;
    grid-template-columns: minmax(0,1.4fr) minmax(300px,.6fr);
    gap: 16px;
    margin-bottom: 16px;
}

.close-control-body {
    padding: 16px;
}

.close-action-box {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel-2);
}

.close-action-box>div {
    flex: 1;
}

.close-action-box label {
    display: block;
    margin-bottom: 6px;
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.close-preview-numbers {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 8px;
    margin: 12px 0;
}

.close-preview-numbers div {
    padding: 13px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
}

.close-preview-numbers span {
    display: block;
    color: var(--x-muted);
    font-size: 8px;
    text-transform: uppercase;
    font-weight: 800;
}

.close-preview-numbers strong {
    display: block;
    margin-top: 8px;
    font-size: 17px;
}

.close-wide-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 4px;
    border-bottom: 1px solid var(--x-line);
}

.close-wide-action b {
    display: block;
    font-size: 11px;
}

.close-wide-action small {
    display: block;
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.final-close-box {
    padding: 28px;
    text-align: center;
}

.close-readiness-ring {
    width: 128px;
    height: 128px;
    margin: 0 auto 20px;
    display: grid;
    place-content: center;
    border: 8px solid #e4e7ec;
    border-top-color: #175cd3;
    border-radius: 50%;
}

.theme-dark .close-readiness-ring {
    border-color: #263341;
    border-top-color: #2e90fa;
}

.close-readiness-ring strong {
    font-size: 22px;
}

.close-readiness-ring span {
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.final-close-box h3 {
    font-size: 20px !important;
}

.final-close-box p {
    color: var(--x-muted);
    font-size: 11px;
    line-height: 1.6;
}

.close-success-mark {
    width: 74px;
    height: 74px;
    margin: 0 auto 18px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #ecfdf3;
    color: #067647;
    font-size: 30px;
}

@media (max-width:1000px) {
    .close-workflow-grid {
        grid-template-columns: 1fr;
    }
    .close-preview-numbers {
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width:620px) {
    .close-workflow-head,.close-action-box,.close-wide-action {
        display: block;
    }
    .close-state {
        margin-top: 14px;
    }
    .close-step {
        grid-template-columns: auto 1fr auto;
    }
    .close-step a {
        grid-column: 2/-1;
    }
    .close-preview-numbers {
        grid-template-columns: 1fr;
    }
    .close-action-box button,.close-wide-action button {
        width: 100%;
        margin-top: 10px;
    }
}

/*V88 Risk Center*/

.risk-summary-v88 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.risk-summary-v88 article {
    padding: 18px 20px;
    border: 1px solid var(--x-line);
    border-radius: 15px;
    background: var(--x-panel);
}

.risk-summary-v88 span {
    display: block;
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.risk-summary-v88 strong {
    display: block;
    margin: 12px 0 5px;
    font-size: 27px;
}

.risk-summary-v88 small {
    color: var(--x-muted);
    font-size: 9px;
}

.risk-summary-critical {
    border-top: 4px solid #d92d20 !important;
}

.risk-summary-high {
    border-top: 4px solid #f79009 !important;
}

.risk-center-grid-v88 {
    display: grid;
    grid-template-columns: minmax(0,1.5fr) minmax(300px,.5fr);
    gap: 16px;
    margin-bottom: 16px;
}

.risk-register-v88 {
    padding: 8px 14px 16px;
}

.risk-register-row {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 13px 8px;
    border-bottom: 1px solid var(--x-line);
    color: inherit;
    text-decoration: none;
}

.risk-severity-v88 {
    min-width: 64px;
    padding: 5px 7px;
    border-radius: 999px;
    background: var(--x-panel-2);
    font-size: 8px;
    font-weight: 900;
    text-align: center;
}

.risk-register-row b {
    display: block;
    font-size: 11px;
}

.risk-register-row small {
    display: block;
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.risk-register-row strong {
    font-size: 20px;
}

.risk-register-row em {
    color: var(--x-blue);
    font-size: 9px;
    font-style: normal;
    font-weight: 800;
}

.severity-critical .risk-severity-v88 {
    background: #fef3f2;
    color: #b42318;
}

.severity-high .risk-severity-v88 {
    background: #fffaeb;
    color: #b54708;
}

.severity-medium .risk-severity-v88 {
    background: #eff8ff;
    color: #175cd3;
}

.severity-clear .risk-severity-v88 {
    background: #ecfdf3;
    color: #067647;
}

.blocking-list-v88 {
    padding: 12px;
}

.blocking-list-v88>a {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 11px;
    align-items: center;
    padding: 12px;
    border-bottom: 1px solid var(--x-line);
    color: inherit;
    text-decoration: none;
}

.blocking-list-v88>a>span {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: #fef3f2;
    color: #b42318;
    font-weight: 900;
}

.blocking-list-v88 b {
    display: block;
    font-size: 11px;
}

.blocking-list-v88 small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 9px;
}

.notification-risk-strip {
    margin-bottom: 16px;
}

.notification-risk-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
    padding: 14px;
}

.notification-risk-grid a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 9px;
    align-items: center;
    padding: 11px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    color: inherit;
    text-decoration: none;
}

.severity-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #98a2b3;
}

.severity-dot.critical {
    background: #d92d20;
}

.severity-dot.high {
    background: #f79009;
}

.severity-dot.medium {
    background: #2e90fa;
}

.notification-risk-grid b {
    display: block;
    font-size: 10px;
}

.notification-risk-grid small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 8px;
}

.notification-risk-grid strong {
    font-size: 17px;
}

@media (max-width:1000px) {
    .risk-summary-v88 {
        grid-template-columns: repeat(2,1fr);
    }
    .risk-center-grid-v88 {
        grid-template-columns: 1fr;
    }
    .notification-risk-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width:600px) {
    .risk-summary-v88,.notification-risk-grid {
        grid-template-columns: 1fr;
    }
    .risk-register-row {
        grid-template-columns: auto 1fr auto;
    }
    .risk-register-row em {
        grid-column: 2/-1;
    }
}

/*V89 Chat Pro*/

.messenger-thread-toolbar {
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 14px;
    border-bottom: 1px solid var(--x-line);
}

.messenger-thread-title {
    padding: 0 !important;
    border: 0 !important;
}

.chat-profile-shortcut {
    display: inline-block;
    margin-top: 4px;
    color: var(--x-blue);
    font-size: 8px;
    font-weight: 800;
    text-decoration: none;
}

.message-search-v89 {
    width: 190px;
    height: 36px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 9px;
    border: 1px solid var(--x-line);
    border-radius: 9px;
    background: var(--x-panel-2);
}

.message-search-v89 input {
    width: 100%;
    min-height: 0 !important;
    height: 30px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 10px !important;
}

.typing-indicator-v89 {
    min-height: 24px;
    padding: 4px 14px;
    color: var(--x-muted);
    font-size: 9px;
    font-style: italic;
    background: var(--x-panel);
}

.reply-preview-v89 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 12px;
    border-top: 1px solid var(--x-line);
    border-left: 3px solid var(--x-blue);
    background: var(--x-panel-2);
}

.rtl .reply-preview-v89 {
    border-left: 0;
    border-right: 3px solid var(--x-blue);
}

.reply-preview-v89 span {
    display: block;
    color: var(--x-blue);
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.reply-preview-v89 b {
    display: block;
    margin-top: 2px;
    font-size: 10px;
}

.reply-preview-v89 small {
    display: block;
    margin-top: 2px;
    color: var(--x-muted);
    font-size: 9px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 430px;
}

.reply-preview-v89 button {
    width: 30px;
    height: 30px;
    min-height: 30px !important;
    padding: 0 !important;
}

.messenger-compose {
    grid-template-columns: auto 1fr auto !important;
}

.attach-button-v89 {
    width: 46px;
    height: 46px;
    display: grid !important;
    place-items: center;
    border: 1px solid var(--x-line) !important;
    border-radius: 12px !important;
    background: var(--x-panel-2) !important;
    cursor: pointer;
}

.attach-button-v89 input {
    display: none !important;
}

.attach-button-v89 span {
    font-size: 22px;
    color: var(--x-muted);
}

.compose-text-v89 {
    min-width: 0;
}

.compose-text-v89 textarea {
    width: 100%;
}

.compose-text-v89 small {
    display: block;
    padding: 4px 5px 0;
    color: var(--x-blue);
    font-size: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.quoted-message-v89 {
    margin-bottom: 6px;
    padding: 7px 9px;
    border-left: 3px solid #84adff;
    border-radius: 7px;
    background: rgba(23,92,211,.07);
}

.rtl .quoted-message-v89 {
    border-left: 0;
    border-right: 3px solid #84adff;
}

.quoted-message-v89 b {
    display: block;
    font-size: 8px !important;
    color: var(--x-blue);
}

.quoted-message-v89 span {
    display: block;
    margin-top: 2px;
    color: var(--x-muted);
    font-size: 9px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.reply-message-v89 {
    min-height: 0 !important;
    height: auto !important;
    margin-top: 5px !important;
    padding: 2px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--x-muted) !important;
    font-size: 8px !important;
    box-shadow: none !important;
}

.seen-state-v89 {
    margin-left: 5px;
    color: var(--x-muted);
    font-size: 8px;
}

.rtl .seen-state-v89 {
    margin-left: 0;
    margin-right: 5px;
}

.chat-image-v89 {
    display: block;
    margin-top: 7px;
    max-width: 260px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    overflow: hidden;
    color: inherit;
    text-decoration: none;
    background: var(--x-panel);
}

.chat-image-v89 img {
    display: block;
    width: 100%;
    max-height: 210px;
    object-fit: cover;
}

.chat-image-v89 span {
    display: block;
    padding: 6px 8px;
    color: var(--x-muted);
    font-size: 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chat-file-v89 {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 9px;
    align-items: center;
    margin-top: 7px;
    padding: 8px;
    border: 1px solid var(--x-line);
    border-radius: 9px;
    background: var(--x-panel);
    color: inherit;
    text-decoration: none;
}

.chat-file-v89 i {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--x-panel-2);
    font-size: 7px;
    font-style: normal;
    font-weight: 900;
}

.chat-file-v89 b {
    display: block;
    font-size: 9px !important;
}

.chat-file-v89 small {
    display: block !important;
    margin-top: 2px !important;
    font-size: 8px !important;
}

.dock-msg.me .chat-file-v89,.dock-msg.me .chat-image-v89 {
    color: var(--x-text);
    background: #fff;
}

.dock-msg.me .quoted-message-v89 {
    background: rgba(255,255,255,.16);
    border-color: #fff;
}

.dock-msg.me .quoted-message-v89 b,.dock-msg.me .quoted-message-v89 span {
    color: #fff;
}

.dock-msg.me .reply-message-v89,.dock-msg.me .seen-state-v89 {
    color: rgba(255,255,255,.7) !important;
}

@media (max-width:720px) {
    .message-search-v89 {
        width: 120px;
    }
    .messenger-thread-toolbar {
        padding: 7px 9px;
    }
    .reply-preview-v89 small {
        max-width: 220px;
    }
    .chat-image-v89 {
        max-width: 210px;
    }
}

/*V90 system health*/

.health-summary-v90 {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.health-summary-v90 article {
    padding: 18px 20px;
    border: 1px solid var(--x-line);
    border-radius: 15px;
    background: var(--x-panel);
}

.health-summary-v90 span {
    display: block;
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.health-summary-v90 strong {
    display: block;
    margin: 11px 0 5px;
    font-size: 28px;
}

.health-summary-v90 small {
    color: var(--x-muted);
    font-size: 9px;
}

.health-summary-v90 .health-good {
    border-top: 4px solid #12b76a;
}

.health-summary-v90 .health-bad {
    border-top: 4px solid #d92d20;
}

.health-grid-v90 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.health-check-list {
    padding: 8px 15px 16px;
}

.health-check-list>div {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 10px 6px;
    border-bottom: 1px solid var(--x-line);
}

.health-check-icon {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 900;
}

.health-check-icon.ok {
    background: #ecfdf3;
    color: #067647;
}

.health-check-icon.fail {
    background: #fef3f2;
    color: #b42318;
}

.health-check-list b {
    font-size: 10px;
}

.health-check-list em {
    color: var(--x-muted);
    font-size: 8px;
    font-style: normal;
}

.health-scroll-v90 {
    max-height: 360px;
    overflow: auto;
}

.build-report-v90 {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    padding: 16px;
}

.build-report-v90>div {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    align-items: center;
    padding: 12px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
}

.build-report-v90 b {
    display: block;
    font-size: 10px;
}

.build-report-v90 small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 8px;
}

@media (max-width:900px) {
    .health-summary-v90,.health-grid-v90,.build-report-v90 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width:600px) {
    .health-summary-v90,.health-grid-v90,.build-report-v90 {
        grid-template-columns: 1fr;
    }
}

.payroll-net-link {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: inherit;
    text-decoration: none;
}

.payroll-net-link small {
    font-size: 9px;
}

.inline-check {
    display: inline-flex !important;
    align-items: center;
    gap: 5px !important;
    font-size: 10px !important;
}

.inline-check input {
    width: auto !important;
    min-height: 0 !important;
}

.analytics-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.analytics-kpi-grid article {
    padding: 22px;
    border: 1px solid var(--x-line);
    border-radius: 16px;
    background: var(--x-panel);
}

.analytics-kpi-grid span {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.analytics-kpi-grid strong {
    display: block;
    margin: 14px 0 8px;
    font-size: 28px;
    letter-spacing: -.04em;
}

.analytics-kpi-grid small {
    color: var(--x-muted);
}

.analytics-kpi-grid small.good,.text-good {
    color: #067647 !important;
}

.analytics-kpi-grid small.bad,.analytics-kpi-grid small.up,.text-danger {
    color: #b42318 !important;
}

.analytics-kpi-grid small.down {
    color: #067647 !important;
}

.analytics-panel {
    min-height: 330px;
}

.bar-chart-list {
    padding: 20px;
}

.bar-chart-row {
    display: grid;
    grid-template-columns: 110px 1fr 120px;
    gap: 12px;
    align-items: center;
    margin: 14px 0;
}

.bar-chart-row span,.bar-chart-row b {
    font-size: 11px;
}

.bar-chart-row b {
    text-align: right;
}

.rtl .bar-chart-row b {
    text-align: left;
}

.bar-chart-row>div {
    height: 12px;
    border-radius: 999px;
    background: var(--x-panel-2);
    overflow: hidden;
}

.bar-chart-row i {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: #175cd3;
}

.analytics-table-mini {
    padding: 16px 20px;
}

.analytics-table-mini>div {
    display: grid;
    grid-template-columns: 1.2fr repeat(3,.8fr);
    gap: 8px;
    padding: 11px 4px;
    border-bottom: 1px solid var(--x-line);
    font-size: 11px;
}

.analytics-table-head {
    color: var(--x-muted);
    font-size: 9px !important;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.production-check-row {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 12px 0;
    border-bottom: 1px solid var(--x-line);
    font-size: 12px;
}

.code-input {
    font-family: ui-monospace,SFMono-Regular,Consolas,monospace !important;
    font-size: 12px !important;
    direction: ltr !important;
    text-align: left !important;
}

@media (max-width:900px) {
    .analytics-kpi-grid {
        grid-template-columns: repeat(2,1fr);
    }
}

@media (max-width:560px) {
    .analytics-kpi-grid {
        grid-template-columns: 1fr;
    }
    .bar-chart-row {
        grid-template-columns: 80px 1fr;
    }
    .bar-chart-row b {
        grid-column: 2;
    }
}


/* SOURCE: assets/css/v101_chat_pro.css */
/*V101 Chat Pro — direct enterprise messenger*/

.top-action svg,
.messenger-launcher svg,
.compose-tool svg,
.compose-send svg {
    width: 20px;
    height: 20px;
    display: block;
}

.top-action {
    appearance: none;
}

.top-action em[hidden] {
    display: none !important;
}

.chat-v101 {
    position: fixed;
    right: 24px;
    bottom: 22px;
    z-index: 1450;
}

.rtl .chat-v101 {
    right: auto;
    left: 24px;
}

.chat-v101 .messenger-launcher {
    min-width: 154px;
    height: 54px;
    padding: 0 18px;
    border: 0;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: #0b1727;
    color: #fff;
    box-shadow: 0 18px 48px rgba(11, 23, 39, .24);
    cursor: pointer;
    font: inherit;
    font-weight: 750;
}

.chat-v101 .messenger-launcher:hover {
    transform: translateY(-1px);
}

.chat-v101 .messenger-launcher .chat-dock-icon {
    display: grid;
    place-items: center;
}

.chat-v101 .messenger-launcher em {
    min-width: 21px;
    height: 21px;
    padding: 0 5px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #d92d20;
    color: #fff;
    font-size: 10px;
    font-style: normal;
}

.chat-v101-panel {
    position: absolute;
    right: 0;
    bottom: 66px;
    width: min(920px, calc(100vw - 48px));
    height: min(700px, calc(100vh - 105px));
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    border: 1px solid var(--x-line);
    border-radius: 20px;
    background: var(--x-panel);
    box-shadow: 0 34px 110px rgba(16, 24, 40, .26);
    overflow: hidden;
}

.rtl .chat-v101-panel {
    right: auto;
    left: 0;
}

.chat-v101-panel[hidden] {
    display: none !important;
}

.chat-v101 .messenger-head {
    min-height: 76px;
    padding: 15px 18px 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--x-line);
    background: var(--x-panel);
}

.messenger-title-block .messenger-kicker {
    display: block;
    color: var(--x-blue);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.messenger-title-block strong {
    display: block;
    margin-top: 3px;
    color: var(--x-text);
    font-size: 19px;
    letter-spacing: -.035em;
}

.messenger-title-block small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 10px;
}

.messenger-title-block small[data-state="ready"] {
    color: #067647;
}

.messenger-title-block small[data-state="error"] {
    color: #b42318;
}

.messenger-title-block small[data-state="loading"] {
    color: #b54708;
}

.chat-v101 .chat-dock-actions {
    display: flex;
    gap: 7px;
}

.chat-icon-button {
    width: 37px;
    height: 37px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: var(--x-panel);
    color: var(--x-text);
    font-size: 18px;
    cursor: pointer;
}

.chat-icon-button:hover {
    background: var(--x-panel-2);
}

.chat-v101 .messenger-search {
    height: 54px;
    padding: 8px 14px;
    display: flex;
    align-items: center;
    gap: 9px;
    border-bottom: 1px solid var(--x-line);
    background: var(--x-panel-2);
}

.chat-v101 .messenger-search input {
    width: 100%;
    min-height: 36px !important;
    height: 36px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--x-text) !important;
}

.chat-v101 .messenger-body {
    min-height: 0;
    display: grid;
    grid-template-columns: 285px minmax(0, 1fr);
}

.rtl .chat-v101 .messenger-body {
    grid-template-columns: 285px minmax(0, 1fr);
}

.chat-v101 .messenger-conversations {
    min-width: 0;
    overflow-y: auto;
    padding: 10px;
    border-right: 1px solid var(--x-line);
    background: var(--x-panel-2);
}

.rtl .chat-v101 .messenger-conversations {
    border-right: 0;
    border-left: 1px solid var(--x-line);
}

.chat-conversation {
    position: relative;
    width: 100%;
    min-height: 65px;
    padding: 9px 10px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--x-text);
    text-align: left;
    cursor: pointer;
    font: inherit;
}

.rtl .chat-conversation {
    text-align: right;
}

.chat-conversation:hover {
    background: var(--x-panel);
}

.chat-conversation.active {
    background: var(--x-panel);
    box-shadow: inset 0 0 0 1px var(--x-line), 0 6px 16px rgba(16, 24, 40, .04);
}

.chat-conversation em {
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 999px;
    display: grid;
    place-items: center;
    background: #d92d20;
    color: #fff;
    font-style: normal;
    font-size: 10px;
}

.avatar-wrap {
    position: relative;
    width: 40px;
    height: 40px;
}

.mini-avatar,
.msg-avatar,
.thread-avatar-image {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #e9eff8;
    color: #344054;
    overflow: hidden;
    font-size: 11px;
    font-weight: 850;
}

.mini-avatar img,
.msg-avatar img,
.thread-avatar-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.general-avatar {
    background: #0b1727;
    color: #fff;
}

.presence-dot {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 11px;
    height: 11px;
    border: 2px solid var(--x-panel-2);
    border-radius: 50%;
    background: #98a2b3;
}

.chat-conversation.active .presence-dot,
.chat-conversation:hover .presence-dot {
    border-color: var(--x-panel);
}

.presence-dot.online {
    background: #12b76a;
}

.conversation-copy {
    min-width: 0;
}

.conversation-copy b {
    display: block;
    overflow: hidden;
    color: var(--x-text);
    font-size: 12px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.conversation-copy small {
    display: block;
    margin-top: 4px;
    overflow: hidden;
    color: var(--x-muted);
    font-size: 10px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.chat-v101 .messenger-thread {
    position: relative;
    min-width: 0;
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto auto auto;
    background: var(--x-panel);
}

.messenger-thread-toolbar {
    min-height: 68px;
    padding: 10px 14px 10px 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border-bottom: 1px solid var(--x-line);
}

.thread-identity {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.thread-avatar {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex: 0 0 40px;
    border-radius: 12px;
    background: #0b1727;
    color: #fff;
    font-size: 16px;
    font-weight: 850;
    overflow: hidden;
}

.thread-avatar.has-user {
    background: transparent;
}

.thread-avatar-image {
    width: 40px;
    height: 40px;
}

.messenger-thread-title {
    color: var(--x-text);
    font-size: 13px;
    font-weight: 850;
}

.thread-identity small {
    display: block;
    margin-top: 2px;
    color: var(--x-muted);
    font-size: 9px;
}

.chat-profile-shortcut {
    display: inline-block;
    margin-top: 3px;
    color: var(--x-blue);
    font-size: 9px;
    font-weight: 750;
    text-decoration: none;
}

.message-search-v101 {
    width: 205px;
    height: 36px;
    padding: 0 10px;
    display: flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    background: var(--x-panel-2);
}

.message-search-v101 input {
    width: 100%;
    min-height: 0 !important;
    height: 30px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--x-text) !important;
    font-size: 10px !important;
}

.chat-v101 .messenger-messages {
    min-height: 0;
    overflow-y: auto;
    padding: 20px 18px 24px;
    background: linear-gradient(rgba(255,255,255,.92), rgba(255,255,255,.92)),
    radial-gradient(circle at 20% 20%, rgba(23,92,211,.06), transparent 24rem);
}

.theme-dark .chat-v101 .messenger-messages {
    background: linear-gradient(rgba(16,24,32,.95), rgba(16,24,32,.95)),
    radial-gradient(circle at 20% 20%, rgba(23,92,211,.10), transparent 24rem);
}

.chat-message {
    position: relative;
    display: flex;
    align-items: flex-end;
    gap: 9px;
    margin: 4px 0 16px;
}

.chat-message.mine {
    justify-content: flex-end;
}

.msg-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 10px;
}

.message-content {
    position: relative;
    max-width: min(78%, 570px);
}

.message-meta {
    min-height: 16px;
    margin: 0 4px 5px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    color: var(--x-muted);
    font-size: 9px;
}

.chat-message.mine .message-meta {
    justify-content: flex-end;
}

.message-meta b {
    color: var(--x-text);
    font-size: 10px;
}

.message-edited {
    font-style: italic;
}

.message-delivery.seen {
    color: #175cd3;
}

.message-bubble {
    padding: 10px 12px;
    border: 1px solid var(--x-line);
    border-radius: 15px 15px 15px 5px;
    background: var(--x-panel);
    color: var(--x-text);
    box-shadow: 0 4px 14px rgba(16, 24, 40, .035);
}

.rtl .message-bubble {
    border-radius: 15px 15px 5px 15px;
}

.chat-message.mine .message-bubble {
    border-color: #175cd3;
    border-radius: 15px 15px 5px 15px;
    background: #175cd3;
    color: #fff;
}

.rtl .chat-message.mine .message-bubble {
    border-radius: 15px 15px 15px 5px;
}

.message-bubble p {
    margin: 0 !important;
    color: inherit !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    overflow-wrap: anywhere;
}

.message-bubble.is-deleted {
    border-style: dashed;
    background: transparent;
    box-shadow: none;
}

.chat-message.mine .message-bubble.is-deleted {
    border-color: var(--x-line);
    background: transparent;
    color: var(--x-muted);
}

.deleted-message {
    color: var(--x-muted) !important;
    font-style: italic;
}

.quoted-message {
    margin: -2px 0 9px;
    padding: 7px 9px;
    border-left: 3px solid currentColor;
    border-radius: 6px;
    background: rgba(16, 24, 40, .06);
    opacity: .88;
}

.rtl .quoted-message {
    border-left: 0;
    border-right: 3px solid currentColor;
}

.chat-message.mine .quoted-message {
    background: rgba(255,255,255,.12);
}

.quoted-message b,
.quoted-message span {
    display: block;
    font-size: 9px;
}

.quoted-message span {
    margin-top: 2px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.chat-image-attachment {
    display: block;
    margin-top: 9px;
    color: inherit;
    text-decoration: none;
}

.chat-image-attachment img {
    display: block;
    width: min(100%, 330px);
    max-height: 260px;
    border-radius: 10px;
    object-fit: cover;
}

.chat-image-attachment span {
    display: block;
    margin-top: 5px;
    font-size: 9px;
    opacity: .82;
}

.chat-file-attachment {
    min-width: 250px;
    margin-top: 9px;
    padding: 9px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 9px;
    border: 1px solid rgba(152,162,179,.35);
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
}

.chat-file-attachment i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: rgba(152,162,179,.14);
    font-size: 8px;
    font-style: normal;
    font-weight: 850;
}

.chat-file-attachment b,
.chat-file-attachment small {
    display: block;
}

.chat-file-attachment b {
    max-width: 210px;
    overflow: hidden;
    font-size: 10px;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.chat-file-attachment small {
    margin-top: 2px;
    font-size: 8px;
    opacity: .78;
}

.message-actions {
    position: absolute;
    top: -27px;
    right: 0;
    padding: 4px;
    display: none;
    align-items: center;
    gap: 2px;
    border: 1px solid var(--x-line);
    border-radius: 9px;
    background: var(--x-panel);
    box-shadow: 0 8px 24px rgba(16,24,40,.10);
    z-index: 4;
}

.rtl .message-actions {
    right: auto;
    left: 0;
}

.chat-message:hover .message-actions,
.message-actions:focus-within {
    display: flex;
}

.message-actions button,
.quick-reactions button {
    height: 25px;
    min-height: 25px !important;
    padding: 0 6px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
    font-size: 9px !important;
    cursor: pointer;
}

.message-actions button:hover {
    background: var(--x-panel-2) !important;
}

.message-actions .danger-action {
    color: #b42318 !important;
}

.quick-reactions {
    padding-right: 4px;
    display: flex;
    border-right: 1px solid var(--x-line);
}

.rtl .quick-reactions {
    padding-right: 0;
    padding-left: 4px;
    border-right: 0;
    border-left: 1px solid var(--x-line);
}

.quick-reactions button {
    width: 27px;
    padding: 0 !important;
    font-size: 14px !important;
}

.message-reactions {
    margin: 5px 4px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.chat-message.mine .message-reactions {
    justify-content: flex-end;
}

.reaction-pill {
    height: 25px;
    min-height: 25px !important;
    padding: 0 7px !important;
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
    border: 1px solid var(--x-line) !important;
    border-radius: 999px !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
    font-size: 11px !important;
    cursor: pointer;
}

.reaction-pill b {
    font-size: 9px;
}

.reaction-pill.mine {
    border-color: #84adff !important;
    background: #eff4ff !important;
}

.theme-dark .reaction-pill.mine {
    background: rgba(23,92,211,.18) !important;
}

.typing-indicator-v101 {
    min-height: 25px;
    padding: 5px 17px;
    color: var(--x-muted);
    font-size: 9px;
    font-style: italic;
    background: var(--x-panel);
}

.reply-preview-v101,
.edit-preview-v101 {
    margin: 0 12px;
    padding: 9px 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--x-line);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    background: var(--x-panel-2);
}

.reply-preview-v101[hidden],
.edit-preview-v101[hidden] {
    display: none !important;
}

.reply-preview-v101 span,
.edit-preview-v101 span {
    display: block;
    color: var(--x-blue);
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.reply-preview-v101 b,
.reply-preview-v101 small,
.edit-preview-v101 small {
    display: block;
    margin-top: 2px;
    color: var(--x-text);
    font-size: 9px;
}

.reply-preview-v101 button,
.edit-preview-v101 button {
    width: 28px;
    height: 28px;
    min-height: 28px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--x-text) !important;
    font-size: 17px !important;
    box-shadow: none !important;
}

.chat-v101 .messenger-compose {
    position: relative;
    padding: 11px 12px 12px;
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    gap: 7px;
    align-items: end;
    border-top: 1px solid var(--x-line);
    background: var(--x-panel);
}

.compose-tool,
.compose-send {
    width: 43px;
    height: 43px;
    min-height: 43px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 11px !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
    cursor: pointer;
}

.compose-tool input {
    display: none;
}

.compose-tool:hover {
    background: var(--x-panel-2) !important;
}

.compose-send {
    border-color: #0b1727 !important;
    background: #0b1727 !important;
    color: #fff !important;
}

.theme-dark .compose-send {
    border-color: #175cd3 !important;
    background: #175cd3 !important;
}

.compose-send:disabled {
    opacity: .55;
    cursor: wait;
}

.compose-text-v101 {
    min-width: 0;
}

.compose-text-v101 textarea {
    width: 100%;
    min-height: 43px !important;
    max-height: 140px !important;
    padding: 11px 13px !important;
    resize: none !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 11px !important;
    background: var(--x-panel-2) !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
    line-height: 1.45;
}

.compose-text-v101 textarea:focus {
    border-color: #84adff !important;
    box-shadow: 0 0 0 3px rgba(23,92,211,.10) !important;
}

.compose-text-v101 > small {
    display: block;
    margin: 5px 3px 0;
    color: var(--x-blue);
    font-size: 9px;
}

.compose-hint {
    margin: 5px 3px 0;
    color: var(--x-muted);
    font-size: 8px;
}

.messenger-compose.is-sending {
    opacity: .82;
}

.emoji-picker-v101 {
    position: absolute;
    left: 66px;
    bottom: 75px;
    z-index: 20;
    width: 312px;
    padding: 10px;
    border: 1px solid var(--x-line);
    border-radius: 15px;
    background: var(--x-panel);
    box-shadow: 0 20px 58px rgba(16,24,40,.18);
}

.rtl .emoji-picker-v101 {
    left: auto;
    right: 66px;
}

.emoji-picker-v101[hidden] {
    display: none !important;
}

.emoji-picker-head {
    padding: 2px 3px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.emoji-picker-head strong {
    font-size: 11px;
}

.emoji-picker-head button {
    width: 27px;
    height: 27px;
    min-height: 27px !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
}

.emoji-grid-v101 {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 3px;
}

.emoji-grid-v101 button {
    width: 34px;
    height: 34px;
    min-height: 34px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 20px !important;
    cursor: pointer;
}

.emoji-grid-v101 button:hover {
    background: var(--x-panel-2) !important;
    transform: scale(1.08);
}

.chat-error-banner {
    margin: 10px 0;
    padding: 11px 12px;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: 9px;
    align-items: center;
    border: 1px solid #fecdca;
    border-radius: 11px;
    background: #fef3f2;
    color: #b42318;
    font-size: 10px;
}

.theme-dark .chat-error-banner {
    border-color: rgba(240,68,56,.28);
    background: rgba(240,68,56,.12);
    color: #fda29b;
}

.chat-error-banner button {
    min-height: 30px !important;
    padding: 0 9px !important;
    border: 1px solid currentColor !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: inherit !important;
    box-shadow: none !important;
    font-size: 9px !important;
}

.chat-loading,
.chat-empty {
    padding: 22px;
    color: var(--x-muted);
    font-size: 11px;
    text-align: center;
}

@media (max-width: 900px) {
    .chat-v101-panel {
        width: min(780px, calc(100vw - 30px));
    }
    .chat-v101 .messenger-body {
        grid-template-columns: 230px minmax(0, 1fr);
    }
    .message-search-v101 {
        width: 160px;
    }
}

@media (max-width: 680px) {
    .chat-v101 {
        right: 10px;
        bottom: 10px;
    }
    .rtl .chat-v101 {
        right: auto;
        left: 10px;
    }
    .chat-v101-panel,
  .rtl .chat-v101-panel {
        position: fixed;
        inset: 70px 8px 8px 8px;
        width: auto;
        height: auto;
        border-radius: 16px;
    }
    .chat-v101 .messenger-body {
        grid-template-columns: 112px minmax(0, 1fr);
    }
    .chat-v101 .messenger-conversations {
        padding: 5px;
    }
    .chat-conversation {
        min-height: 58px;
        padding: 7px 5px;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 6px;
    }
    .chat-conversation em {
        position: absolute;
        top: 4px;
        right: 4px;
    }
    .rtl .chat-conversation em {
        right: auto;
        left: 4px;
    }
    .conversation-copy small {
        display: none;
    }
    .mini-avatar,
  .avatar-wrap {
        width: 34px;
        height: 34px;
    }
    .mini-avatar {
        height: 34px;
    }
    .message-search-v101 {
        display: none;
    }
    .message-content {
        max-width: 88%;
    }
    .quick-reactions {
        display: none;
    }
    .chat-v101 .messenger-launcher {
        min-width: 54px;
        width: 54px;
        padding: 0;
    }
    .chat-v101 .messenger-launcher .chat-dock-label {
        display: none;
    }
    .emoji-picker-v101,
  .rtl .emoji-picker-v101 {
        position: absolute;
        left: 8px;
        right: 8px;
        bottom: 72px;
        width: auto;
    }
    .emoji-grid-v101 {
        grid-template-columns: repeat(8, 1fr);
    }
    .emoji-grid-v101 button {
        width: 100%;
    }
    .compose-hint {
        display: none;
    }
}

@media (max-width: 460px) {
    .chat-v101 .messenger-body {
        grid-template-columns: 78px minmax(0, 1fr);
    }
    .conversation-copy {
        display: none;
    }
    .chat-conversation {
        grid-template-columns: 1fr;
        justify-items: center;
    }
    .messenger-thread-toolbar {
        padding: 8px 10px;
    }
    .chat-v101 .messenger-compose {
        grid-template-columns: auto auto minmax(0,1fr) auto;
        gap: 4px;
        padding: 8px;
    }
    .compose-tool,
  .compose-send {
        width: 38px;
        height: 40px;
        min-height: 40px !important;
    }
}


/* SOURCE: assets/css/v103_performance_recovery.css */
/*V103 performance + language recovery*/

.locale-switcher {
    position: relative;
    z-index: 4;
    height: 40px;
    padding: 3px;
    display: flex;
    align-items: center;
    gap: 2px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    background: var(--x-panel);
    pointer-events: auto;
    isolation: isolate;
}

.locale-switcher a {
    min-width: 34px;
    height: 32px;
    padding: 0 8px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: var(--x-muted);
    text-decoration: none;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .03em;
    line-height: 1;
    pointer-events: auto;
}

.locale-switcher a:hover {
    background: var(--x-panel-2);
    color: var(--x-text);
}

.locale-switcher a.active {
    background: var(--x-navy);
    color: #fff;
}

.theme-dark .locale-switcher a.active {
    background: #175cd3;
}

.executive-actions {
    position: relative;
    z-index: 3;
}

.executive-topbar {
    overflow: visible !important;
}

/*Tables remain readable and usable even if the optional DataTables CDN is slow/offline.*/

.data-table {
    width: 100%;
    border-collapse: collapse;
}

.dt-container {
    color: var(--x-text);
}

.dt-container .dt-layout-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 0;
}

.dt-container .dt-search input,.dt-container .dt-length select {
    min-height: 36px !important;
}

.dt-container .dt-paging {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.dt-container .dt-paging button {
    min-width: 34px;
    min-height: 34px !important;
    padding: 5px 9px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 8px !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
}

.dt-container .dt-paging button.current {
    background: var(--x-navy) !important;
    color: #fff !important;
}

@media (max-width:680px) {
    .locale-switcher {
        height: 38px;
    }
    .locale-switcher a {
        min-width: 30px;
        height: 30px;
        padding: 0 5px;
        font-size: 10px;
    }
}


/* SOURCE: assets/css/v104_interface_recovery.css */
/*V104 Interface Recovery — isolated language control and messenger layout*/

/*Language control is intentionally not a <nav> element so legacy nav rules cannot affect it.*/

.locale-switcher-v104 {
    position: relative;
    z-index: 12;
    height: 40px;
    padding: 3px;
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel);
    direction: ltr !important;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(16,24,40,.04);
}

.locale-switcher-icon {
    width: 29px;
    height: 32px;
    display: grid;
    place-items: center;
    color: var(--x-muted);
    border-right: 1px solid var(--x-line);
}

.locale-switcher-icon svg {
    width: 17px;
    height: 17px;
    display: block;
}

.locale-switcher-v104 a {
    min-width: 38px !important;
    height: 32px !important;
    padding: 0 9px !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--x-muted) !important;
    text-decoration: none !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
    box-shadow: none !important;
    transform: none !important;
}

.locale-switcher-v104 a:hover {
    background: var(--x-panel-2) !important;
    color: var(--x-text) !important;
}

.locale-switcher-v104 a.active {
    background: #0b1727 !important;
    color: #fff !important;
}

.theme-dark .locale-switcher-v104 a.active {
    background: #175cd3 !important;
}

.theme-dark .locale-switcher-icon {
    border-right-color: var(--x-line);
}

/*Messenger shell: hard isolation from legacy aside/main/form/button rules.*/

.executive-ui .chat-v101-panel {
    width: min(940px,calc(100vw - 48px)) !important;
    height: min(720px,calc(100vh - 104px)) !important;
    min-height: 520px !important;
    display: grid !important;
    grid-template-rows: 76px 54px minmax(0,1fr) !important;
    overflow: hidden !important;
    background: var(--x-panel) !important;
    color: var(--x-text) !important;
}

.executive-ui .chat-v101 .messenger-body {
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    display: grid !important;
    grid-template-columns: 270px minmax(0,1fr) !important;
    overflow: hidden !important;
    background: var(--x-panel) !important;
}

.executive-ui .chat-v101 .messenger-conversations {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    width: auto !important;
    padding: 10px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    background: #f7f8fa !important;
    color: #182230 !important;
    border-right: 1px solid #e4e7ec !important;
    border-left: 0 !important;
    box-shadow: none !important;
}

.rtl.executive-ui .chat-v101 .messenger-conversations {
    border-right: 0 !important;
    border-left: 1px solid #e4e7ec !important;
}

.theme-dark .chat-v101 .messenger-conversations {
    background: #111a24 !important;
    color: #f2f4f7 !important;
    border-color: var(--x-line) !important;
}

.executive-ui .chat-v101 .messenger-thread {
    position: relative !important;
    top: auto !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    max-width: none !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-rows: auto minmax(0,1fr) auto auto auto auto !important;
    overflow: hidden !important;
    animation: none !important;
    background: #fff !important;
    color: #182230 !important;
}

.theme-dark .chat-v101 .messenger-thread {
    background: #101820 !important;
    color: #f2f4f7 !important;
}

.executive-ui .chat-v101 .messenger-thread-toolbar {
    flex: 0 0 auto !important;
    min-height: 68px !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    background: var(--x-panel) !important;
    border-bottom: 1px solid var(--x-line) !important;
    overflow: hidden !important;
}

.executive-ui .chat-v101 .messenger-messages {
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    padding: 20px 18px 26px !important;
    margin: 0 !important;
    overflow-y: scroll !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    scrollbar-gutter: stable !important;
    background: #f8fafc !important;
    color: #182230 !important;
}

.theme-dark .chat-v101 .messenger-messages {
    background: #0d151e !important;
    color: #f2f4f7 !important;
}

.executive-ui .chat-v101 .messenger-messages::-webkit-scrollbar,
.executive-ui .chat-v101 .messenger-conversations::-webkit-scrollbar {
    width: 9px !important;
}

.executive-ui .chat-v101 .messenger-messages::-webkit-scrollbar-thumb,
.executive-ui .chat-v101 .messenger-conversations::-webkit-scrollbar-thumb {
    background: #c5ccd5 !important;
    border: 2px solid transparent !important;
    background-clip: padding-box !important;
    border-radius: 999px !important;
}

.theme-dark .chat-v101 .messenger-messages::-webkit-scrollbar-thumb,
.theme-dark .chat-v101 .messenger-conversations::-webkit-scrollbar-thumb {
    background: #475467 !important;
    border: 2px solid transparent !important;
    background-clip: padding-box !important;
}

/*Conversation list contrast*/

.executive-ui .chat-v101 .chat-conversation {
    background: transparent !important;
    color: #182230 !important;
    box-shadow: none !important;
    transform: none !important;
}

.executive-ui .chat-v101 .chat-conversation:hover {
    background: #fff !important;
}

.executive-ui .chat-v101 .chat-conversation.active {
    background: #fff !important;
    box-shadow: inset 3px 0 0 #175cd3,0 0 0 1px #e4e7ec !important;
}

.rtl.executive-ui .chat-v101 .chat-conversation.active {
    box-shadow: inset -3px 0 0 #175cd3,0 0 0 1px #e4e7ec !important;
}

.executive-ui .chat-v101 .conversation-copy b {
    color: #182230 !important;
}

.executive-ui .chat-v101 .conversation-copy small {
    color: #667085 !important;
}

.theme-dark .chat-v101 .chat-conversation {
    color: #f2f4f7 !important;
}

.theme-dark .chat-v101 .chat-conversation:hover,
.theme-dark .chat-v101 .chat-conversation.active {
    background: #182431 !important;
}

.theme-dark .chat-v101 .conversation-copy b {
    color: #f2f4f7 !important;
}

.theme-dark .chat-v101 .conversation-copy small {
    color: #98a2b3 !important;
}

/*Message palette: quieter, readable and consistent.*/

.executive-ui .chat-v101 .message-content {
    max-width: min(76%,590px) !important;
}

.executive-ui .chat-v101 .message-meta,
.executive-ui .chat-v101 .message-meta span {
    color: #667085 !important;
}

.executive-ui .chat-v101 .message-meta b {
    color: #344054 !important;
}

.theme-dark .chat-v101 .message-meta,
.theme-dark .chat-v101 .message-meta span {
    color: #98a2b3 !important;
}

.theme-dark .chat-v101 .message-meta b {
    color: #e4e7ec !important;
}

.executive-ui .chat-v101 .message-bubble {
    background: #fff !important;
    color: #182230 !important;
    border: 1px solid #dfe3e8 !important;
    box-shadow: 0 2px 8px rgba(16,24,40,.05) !important;
}

.executive-ui .chat-v101 .chat-message.mine .message-bubble {
    background: #0b1727 !important;
    color: #fff !important;
    border-color: #0b1727 !important;
    box-shadow: none !important;
}

.theme-dark .chat-v101 .message-bubble {
    background: #182431 !important;
    color: #f2f4f7 !important;
    border-color: #2f4052 !important;
}

.theme-dark .chat-v101 .chat-message.mine .message-bubble {
    background: #175cd3 !important;
    border-color: #175cd3 !important;
    color: #fff !important;
}

.executive-ui .chat-v101 .message-bubble p {
    color: inherit !important;
    opacity: 1 !important;
    text-shadow: none !important;
}

.executive-ui .chat-v101 .quoted-message {
    background: #f2f4f7 !important;
    color: #344054 !important;
    border-color: #98a2b3 !important;
    opacity: 1 !important;
}

.executive-ui .chat-v101 .chat-message.mine .quoted-message {
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.7) !important;
}

.theme-dark .chat-v101 .quoted-message {
    background: #101820 !important;
    color: #d0d5dd !important;
}

/*Composer is a fixed visible final row inside the messenger grid.*/

.executive-ui .chat-v101 .messenger-compose {
    position: relative !important;
    inset: auto !important;
    z-index: 12 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 74px !important;
    margin: 0 !important;
    padding: 11px 12px 12px !important;
    display: grid !important;
    grid-template-columns: 43px 43px minmax(0,1fr) 43px !important;
    grid-auto-flow: column !important;
    grid-auto-rows: auto !important;
    gap: 7px !important;
    align-items: end !important;
    overflow: visible !important;
    border-top: 1px solid var(--x-line) !important;
    background: var(--x-panel) !important;
    box-shadow: 0 -6px 20px rgba(16,24,40,.035) !important;
}

.executive-ui .chat-v101 .compose-text-v101 {
    min-width: 0 !important;
    width: 100% !important;
}

.executive-ui .chat-v101 .compose-text-v101 textarea {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    max-height: 130px !important;
    margin: 0 !important;
    padding: 12px 13px !important;
    border: 1px solid #cfd5dd !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: #101828 !important;
    caret-color: #175cd3 !important;
    -webkit-text-fill-color: #101828 !important;
    box-shadow: none !important;
}

.executive-ui .chat-v101 .compose-text-v101 textarea::placeholder {
    color: #98a2b3 !important;
    opacity: 1 !important;
}

.theme-dark .chat-v101 .compose-text-v101 textarea {
    background: #182431 !important;
    color: #f2f4f7 !important;
    -webkit-text-fill-color: #f2f4f7 !important;
    border-color: #34495d !important;
}

.theme-dark .chat-v101 .compose-text-v101 textarea::placeholder {
    color: #98a2b3 !important;
}

.executive-ui .chat-v101 .compose-tool,
.executive-ui .chat-v101 .compose-send {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 43px !important;
    min-width: 43px !important;
    height: 43px !important;
    min-height: 43px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    transform: none !important;
}

.executive-ui .chat-v101 .compose-tool {
    background: #fff !important;
    color: #475467 !important;
    border: 1px solid #d0d5dd !important;
}

.executive-ui .chat-v101 .compose-send {
    background: #175cd3 !important;
    color: #fff !important;
    border: 1px solid #175cd3 !important;
}

.theme-dark .chat-v101 .compose-tool {
    background: #182431 !important;
    color: #d0d5dd !important;
    border-color: #34495d !important;
}

.executive-ui .chat-v101 .compose-hint {
    color: #98a2b3 !important;
}

/*Reply / edit / typing rows should never cover the input.*/

.executive-ui .chat-v101 .typing-indicator-v101,
.executive-ui .chat-v101 .reply-preview-v101,
.executive-ui .chat-v101 .edit-preview-v101 {
    position: relative !important;
    inset: auto !important;
    z-index: 8 !important;
    margin: 0 12px !important;
}

.executive-ui .chat-v101 .typing-indicator-v101[hidden],
.executive-ui .chat-v101 .reply-preview-v101[hidden],
.executive-ui .chat-v101 .edit-preview-v101[hidden],
.executive-ui .chat-v101 .emoji-picker-v101[hidden] {
    display: none !important;
}

@media (max-width:900px) {
    .executive-ui .chat-v101 .messenger-body {
        grid-template-columns: 220px minmax(0,1fr) !important;
    }
}

@media (max-width:680px) {
    .locale-switcher-v104 {
        height: 38px;
        padding: 3px;
    }
    .locale-switcher-icon {
        width: 25px;
        height: 30px;
    }
    .locale-switcher-v104 a {
        min-width: 31px !important;
        height: 30px !important;
        padding: 0 5px !important;
        font-size: 10px !important;
    }
    .executive-ui .chat-v101-panel {
        position: fixed !important;
        inset: 68px 8px 8px 8px !important;
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .executive-ui .chat-v101 .messenger-body {
        grid-template-columns: 108px minmax(0,1fr) !important;
    }
    .executive-ui .chat-v101 .messenger-compose {
        grid-template-columns: 40px 40px minmax(0,1fr) 40px !important;
        padding: 8px !important;
        gap: 5px !important;
    }
    .executive-ui .chat-v101 .compose-tool,
  .executive-ui .chat-v101 .compose-send {
        width: 40px !important;
        min-width: 40px !important;
        height: 42px !important;
        min-height: 42px !important;
    }
    .executive-ui .chat-v101 .message-content {
        max-width: 90% !important;
    }
}

@media (max-width:460px) {
    .locale-switcher-icon {
        display: none !important;
    }
    .executive-ui .chat-v101 .messenger-body {
        grid-template-columns: 76px minmax(0,1fr) !important;
    }
    .executive-ui .chat-v101 .messenger-compose {
        grid-template-columns: 37px 37px minmax(0,1fr) 37px !important;
        gap: 4px !important;
        padding: 7px !important;
    }
    .executive-ui .chat-v101 .compose-tool,
  .executive-ui .chat-v101 .compose-send {
        width: 37px !important;
        min-width: 37px !important;
        height: 40px !important;
        min-height: 40px !important;
    }
}

/*V105 chat close regression fix.
   This rule MUST remain after the V104 forced display:grid rule.*/

.executive-ui .chat-v101-panel[hidden],
.executive-ui [data-chat-panel][hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}


/* SOURCE: assets/css/v120_enterprise_stabilization.css */
/*V106-V120 enterprise stabilization layer*/

:root {
    --v120-success: #067647;
    --v120-warning: #b54708;
    --v120-danger: #b42318;
    --v120-info: #175cd3;
}

.executive-ui .executive-main {
    min-width: 0;
}

.executive-ui .page-head {
    align-items: flex-end;
    gap: 18px;
}

.executive-ui .page-head h1 {
    letter-spacing: -.045em;
}

.executive-ui .page-head .actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.executive-ui .executive-panel,.executive-ui .card {
    min-width: 0;
}

.executive-ui .executive-table-wrap {
    overflow: auto;
    overscroll-behavior: contain;
}

.executive-ui table {
    font-variant-numeric: tabular-nums;
}

.executive-ui table th {
    white-space: nowrap;
}

.executive-ui table td {
    vertical-align: middle;
}

.executive-ui .empty-state,.executive-ui .chat-empty {
    line-height: 1.6;
}

.executive-ui button,.executive-ui .btn,.executive-ui a {
    touch-action: manipulation;
}

/*Direct language switch remains clickable and visually compact in LTR/RTL.*/

.executive-ui .locale-switcher-v104 {
    position: relative !important;
    z-index: 10 !important;
    display: grid !important;
    grid-template-columns: 34px 38px 38px !important;
    width: auto !important;
    min-width: 116px !important;
    height: 40px !important;
    padding: 3px !important;
    gap: 2px !important;
    overflow: visible !important;
    isolation: isolate !important;
    direction: ltr !important;
}

.executive-ui .locale-switcher-v104 a {
    display: grid !important;
    place-items: center !important;
    min-width: 38px !important;
    height: 32px !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

.executive-ui .locale-switcher-v104 a.active {
    background: var(--x-navy) !important;
    color: #fff !important;
}

.theme-dark.executive-ui .locale-switcher-v104 a.active {
    background: var(--x-blue) !important;
}

/*Local no-CDN table tools.*/

.v120-table-tools {
    margin: 0 0 10px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    background: var(--x-panel-2);
}

.v120-table-tools label {
    margin: 0 !important;
    display: flex !important;
    align-items: center;
    gap: 9px;
    min-width: min(440px,70%);
}

.v120-table-tools label span {
    color: var(--x-muted);
    font-size: 10px;
    font-weight: 750;
}

.v120-table-tools input {
    width: 100%;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 10px !important;
    background: var(--x-panel) !important;
}

.v120-table-tools small {
    white-space: nowrap;
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 700;
}

.v120-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
}

.v120-kpi {
    padding: 17px;
    border: 1px solid var(--x-line);
    border-radius: 14px;
    background: var(--x-panel);
}

.v120-kpi span,.v120-kpi small {
    display: block;
    color: var(--x-muted);
}

.v120-kpi span {
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.v120-kpi strong {
    display: block;
    margin: 8px 0 5px;
    color: var(--x-text);
    font-size: 25px;
    letter-spacing: -.04em;
}

.v120-kpi small {
    font-size: 9px;
    line-height: 1.5;
}

.v120-delta {
    display: inline-flex !important;
    width: max-content;
    margin-top: 5px;
    padding: 3px 6px;
    border-radius: 999px;
    font-size: 8px !important;
    font-weight: 800;
}

.v120-delta.up {
    background: #ecfdf3;
    color: var(--v120-success);
}

.v120-delta.down {
    background: #fef3f2;
    color: var(--v120-danger);
}

.v120-delta.neutral {
    background: var(--x-panel-2);
    color: var(--x-muted);
}

.v120-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    text-transform: capitalize;
}

.v120-status.good {
    background: #ecfdf3;
    color: var(--v120-success);
}

.v120-status.warn {
    background: #fffaeb;
    color: var(--v120-warning);
}

.v120-status.bad {
    background: #fef3f2;
    color: var(--v120-danger);
}

.v120-status.info {
    background: #eff4ff;
    color: var(--v120-info);
}

.v120-split {
    display: grid;
    grid-template-columns: minmax(0,1.65fr) minmax(280px,.75fr);
    gap: 14px;
    align-items: start;
}

.v120-list {
    display: grid;
    gap: 8px;
}

.v120-list-item {
    padding: 12px 13px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    background: var(--x-panel);
}

.v120-list-item b,.v120-list-item small {
    display: block;
}

.v120-list-item small {
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 9px;
}

.v120-warning-list {
    display: grid;
    gap: 5px;
    margin: 5px 0 0;
    padding: 0;
    list-style: none;
}

.v120-warning-list li {
    padding: 5px 7px;
    border-radius: 7px;
    background: #fef3f2;
    color: var(--v120-danger);
    font-size: 9px;
    font-weight: 650;
}

.theme-dark .v120-warning-list li {
    background: rgba(240,68,56,.12);
    color: #fda29b;
}

.v120-toolbar {
    padding: 12px;
    display: flex;
    align-items: end;
    gap: 10px;
    flex-wrap: wrap;
    border: 1px solid var(--x-line);
    border-radius: 13px;
    background: var(--x-panel);
}

.v120-toolbar>div {
    min-width: 150px;
    flex: 1;
}

.v120-toolbar label {
    font-size: 9px;
}

.v120-toolbar .actions {
    flex: 0 0 auto;
    display: flex;
    gap: 7px;
}

.v120-tabs {
    position: sticky;
    top: 76px;
    z-index: 20;
    margin: 0 0 14px;
    padding: 6px;
    display: flex;
    gap: 4px;
    overflow: auto;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: color-mix(in srgb,var(--x-panel) 94%,transparent);
    backdrop-filter: blur(14px);
}

.v120-tabs a {
    padding: 8px 10px;
    border-radius: 8px;
    color: var(--x-muted);
    font-size: 10px;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}

.v120-tabs a:hover {
    background: var(--x-panel-2);
    color: var(--x-text);
}

.v120-file-drop {
    padding: 18px;
    border: 1.5px dashed var(--x-line);
    border-radius: 13px;
    background: var(--x-panel-2);
    transition: .16s ease;
}

.v120-file-drop.is-dragging {
    border-color: var(--x-blue);
    background: #eff4ff;
}

@media (max-width:1050px) {
    .v120-kpi-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .v120-split {
        grid-template-columns: 1fr;
    }
}

@media (max-width:680px) {
    .executive-ui .page-head {
        align-items: stretch;
    }
    .executive-ui .page-head .actions {
        justify-content: flex-start;
    }
    .v120-kpi-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .v120-kpi {
        padding: 13px;
    }
    .v120-kpi strong {
        font-size: 20px;
    }
    .v120-table-tools {
        align-items: stretch;
        flex-direction: column;
    }
    .v120-table-tools label {
        min-width: 0;
        width: 100%;
    }
    .v120-tabs {
        top: 68px;
    }
    .executive-ui .locale-switcher-v104 {
        grid-template-columns: 30px 34px 34px !important;
        min-width: 104px !important;
        height: 38px !important;
    }
    .executive-ui .locale-switcher-v104 a {
        min-width: 34px !important;
        height: 30px !important;
    }
}

/*V107 Chat 2.0 additions*/

.chat-thread-actions-v120 {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
}

.chat-thread-tool {
    height: 31px !important;
    min-height: 31px !important;
    padding: 0 7px !important;
    border: 1px solid var(--x-line) !important;
    border-radius: 8px !important;
    background: var(--x-panel) !important;
    color: var(--x-muted) !important;
    box-shadow: none !important;
    font-size: 8px !important;
    font-weight: 850 !important;
    letter-spacing: .04em !important;
}

.chat-thread-tool.active {
    border-color: #84adff !important;
    background: #eff4ff !important;
    color: #175cd3 !important;
}

.theme-dark .chat-thread-tool.active {
    background: rgba(23,92,211,.18) !important;
}

.conversation-muted {
    width: 18px;
    height: 18px;
    display: grid;
    place-items: center;
    border-radius: 6px;
    background: var(--x-panel-2);
    color: var(--x-muted);
    font-size: 8px;
    font-weight: 900;
}

.chat-date-separator {
    margin: 17px 0;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--x-muted);
}

.chat-date-separator::before,.chat-date-separator::after {
    content: "";
    height: 1px;
    flex: 1;
    background: var(--x-line);
}

.chat-date-separator span {
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.chat-message.is-pinned .message-bubble {
    box-shadow: 0 0 0 2px rgba(245,158,11,.25),0 5px 16px rgba(16,24,40,.04);
}

.chat-message.is-pinned .message-meta::before {
    content: "PIN";
    padding: 2px 4px;
    border-radius: 5px;
    background: #fffaeb;
    color: #b54708;
    font-size: 7px;
    font-weight: 900;
}

.forwarded-message-v120 {
    margin: -2px 0 8px;
    padding: 7px 8px;
    border: 1px solid rgba(152,162,179,.28);
    border-radius: 8px;
    background: rgba(152,162,179,.08);
}

.forwarded-message-v120 span,.forwarded-message-v120 b,.forwarded-message-v120 small {
    display: block;
}

.forwarded-message-v120 span {
    font-size: 7px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .7;
}

.forwarded-message-v120 b {
    margin-top: 3px;
    font-size: 9px;
}

.forwarded-message-v120 small {
    margin-top: 2px;
    font-size: 8px;
    opacity: .82;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chat-forward-menu-v120 {
    position: absolute;
    right: 14px;
    top: 82px;
    z-index: 90;
    width: 260px;
    max-height: 360px;
    overflow: hidden;
    border: 1px solid var(--x-line);
    border-radius: 13px;
    background: var(--x-panel);
    box-shadow: 0 20px 60px rgba(16,24,40,.2);
}

.rtl .chat-forward-menu-v120 {
    right: auto;
    left: 14px;
}

.chat-forward-menu-v120 header {
    padding: 9px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--x-line);
}

.chat-forward-menu-v120 header b {
    font-size: 10px;
}

.chat-forward-menu-v120 header button {
    width: 27px;
    height: 27px;
    min-height: 27px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--x-text) !important;
    box-shadow: none !important;
}

.chat-forward-menu-v120>div {
    max-height: 305px;
    overflow: auto;
    padding: 6px;
}

.chat-forward-menu-v120>div button {
    width: 100%;
    min-height: 35px !important;
    padding: 7px 9px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: var(--x-text) !important;
    text-align: left !important;
    box-shadow: none !important;
    font-size: 10px !important;
}

.rtl .chat-forward-menu-v120>div button {
    text-align: right !important;
}

.chat-forward-menu-v120>div button:hover {
    background: var(--x-panel-2) !important;
}

.executive-ui .chat-v101 .messenger-compose.is-dragging {
    box-shadow: inset 0 0 0 2px #84adff;
    background: #eff4ff !important;
}

@media (max-width:680px) {
    .chat-thread-tool {
        display: none !important;
    }
    .chat-forward-menu-v120,.rtl .chat-forward-menu-v120 {
        position: fixed;
        left: 14px;
        right: 14px;
        top: 110px;
        width: auto;
    }
}

.v120-notification-list {
    display: grid;
    gap: 8px;
}

.v120-notification-list .notification-item {
    display: grid !important;
    grid-template-columns: auto minmax(0,1fr) auto !important;
    gap: 11px !important;
    align-items: center !important;
}

.notification-category-v120 {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--x-panel-2);
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 900;
}

.notification-category-v120.cat-attendance {
    background: #eff8ff;
    color: #175cd3;
}

.notification-category-v120.cat-payroll {
    background: #ecfdf3;
    color: #067647;
}

.notification-category-v120.cat-commission {
    background: #f9f5ff;
    color: #6941c6;
}

.notification-category-v120.cat-hr {
    background: #fff6ed;
    color: #c4320a;
}

.notification-category-v120.cat-finance {
    background: #eef4ff;
    color: #3538cd;
}

.notification-category-v120.cat-chat {
    background: #f0f9ff;
    color: #026aa2;
}

.notification-category-v120.cat-system {
    background: var(--x-panel-2);
    color: var(--x-muted);
}

.notification-copy-v120 {
    min-width: 0;
}

.notification-copy-v120>b {
    display: block;
    color: var(--x-text);
    font-size: 12px;
}

.notification-copy-v120 small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 9px;
}

.notification-copy-v120 p {
    margin: 7px 0 0 !important;
    color: var(--x-muted) !important;
    font-size: 10px !important;
    line-height: 1.55 !important;
}

.v120-preferences-panel {
    position: sticky;
    top: 86px;
}

@media (max-width:680px) {
    .v120-notification-list .notification-item {
        grid-template-columns: auto minmax(0,1fr) !important;
    }
    .v120-notification-list .notification-item>.actions {
        grid-column: 1/-1;
    }
    .v120-preferences-panel {
        position: static;
    }
}

.v120-risk-row td {
    background: color-mix(in srgb,#fef3f2 55%,var(--x-panel));
}

.theme-dark .v120-risk-row td {
    background: rgba(240,68,56,.055);
}

.commission-control-grid-v120 {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 13px;
    margin: 14px 0;
}

.commission-control-card-v120 {
    padding: 16px;
    border: 1px solid var(--x-line);
    border-radius: 16px;
    background: var(--x-panel);
}

.commission-control-card-v120 header {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 9px;
}

.commission-control-card-v120 header b,.commission-control-card-v120 header small {
    display: block;
}

.commission-control-card-v120 header small {
    margin-top: 3px;
    color: var(--x-muted);
    font-size: 8px;
}

.commission-code-v120 {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--x-navy);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
}

.commission-metrics-v120 {
    margin: 14px 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}

.commission-metrics-v120 div,.commission-currency-v120 div {
    padding: 10px;
    border: 1px solid var(--x-line);
    border-radius: 10px;
    background: var(--x-panel-2);
}

.commission-metrics-v120 span,.commission-currency-v120 span {
    display: block;
    color: var(--x-muted);
    font-size: 8px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.commission-metrics-v120 strong,.commission-currency-v120 b {
    display: block;
    margin-top: 5px;
    color: var(--x-text);
    font-size: 15px;
}

.commission-currency-v120 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}

.commission-control-card-v120 footer {
    margin-top: 13px;
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

.commission-flow-v120 {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.commission-flow-v120 span {
    padding: 8px 11px;
    border: 1px solid var(--x-line);
    border-radius: 9px;
    background: var(--x-panel-2);
    font-size: 10px;
    font-weight: 800;
}

.commission-flow-v120 i {
    color: var(--x-muted);
    font-style: normal;
}

@media (max-width:1050px) {
    .commission-control-grid-v120 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width:680px) {
    .commission-control-grid-v120 {
        grid-template-columns: 1fr;
    }
}

.finance-accounts-v120 {
    margin: 14px 0;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
}

.finance-account-card-v120 {
    padding: 14px;
    border: 1px solid var(--x-line);
    border-radius: 14px;
    background: var(--x-panel);
}

.finance-account-card-v120 header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: start;
}

.finance-account-card-v120 header span {
    color: var(--x-muted);
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
}

.finance-account-card-v120 h3 {
    margin: 4px 0 0;
    font-size: 13px;
}

.finance-account-card-v120 header>strong {
    font-size: 18px;
}

.finance-account-card-v120>small {
    display: block;
    margin: 7px 0;
    color: var(--x-muted);
    font-size: 8px;
}

.finance-account-card-v120 select {
    min-height: 30px !important;
    height: 30px !important;
    padding: 0 7px !important;
    font-size: 9px !important;
}

@media (max-width:1050px) {
    .finance-accounts-v120 {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width:680px) {
    .finance-accounts-v120 {
        grid-template-columns: 1fr;
    }
}

/*V113-V120 operational centers*/

.employee360-metrics-v120 {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}

.v120-form-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    align-items: end;
}

.v120-form-grid>div {
    min-width: 0;
}

.v120-form-grid label {
    display: block;
    margin: 0 0 7px;
    font-size: 11px;
    font-weight: 750;
    color: var(--x-muted);
}

.v120-form-grid input,.v120-form-grid select,.v120-form-grid textarea {
    width: 100%;
}

.v120-span-2 {
    grid-column: span 2;
}

.v120-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
    margin: 0 0 18px;
}

.v120-kpi-grid article {
    min-height: 118px;
    padding: 18px;
    border: 1px solid var(--x-line);
    border-radius: 16px;
    background: var(--x-panel);
    box-shadow: 0 7px 24px rgba(16,24,40,.035);
}

.v120-kpi-grid span {
    display: block;
    color: var(--x-muted);
    font-size: 10px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.v120-kpi-grid strong {
    display: block;
    margin-top: 12px;
    color: var(--x-text);
    font-size: 25px;
    line-height: 1.1;
    letter-spacing: -.045em;
}

.v120-kpi-grid small {
    display: block;
    margin-top: 8px;
    color: var(--x-muted);
    font-size: 10px;
    line-height: 1.45;
}

.v120-status {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 0 9px;
    border-radius: 999px;
    border: 1px solid var(--x-line);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--x-panel-2);
    color: var(--x-muted);
}

.v120-status.approved,.v120-status.applied,.v120-status.created {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.v120-status.requested {
    border-color: #fedf89;
    background: #fffaeb;
    color: #b54708;
}

.v120-status.rejected,.v120-status.failed,.v120-status.deleted {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.theme-dark .v120-status.approved,.theme-dark .v120-status.applied,.theme-dark .v120-status.created {
    background: rgba(18,183,106,.12);
}

.theme-dark .v120-status.requested {
    background: rgba(247,144,9,.12);
}

.theme-dark .v120-status.rejected,.theme-dark .v120-status.failed,.theme-dark .v120-status.deleted {
    background: rgba(240,68,56,.12);
}

.v120-table-sub {
    display: block;
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
    line-height: 1.35;
}

.bad-text {
    color: #b42318 !important;
}

.v120-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px;
}

.v120-flow>span {
    padding: 10px 12px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    background: var(--x-panel-2);
    color: var(--x-text);
    font-size: 10px;
    font-weight: 700;
}

.v120-flow>span small {
    display: block;
    margin-top: 3px;
    color: var(--x-muted);
    font-weight: 500;
}

.v120-flow>i {
    color: var(--x-muted);
    font-style: normal;
}

.v120-split {
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(320px,.75fr);
    gap: 18px;
    margin: 0 0 18px;
}

.v120-warning-list {
    display: grid;
    gap: 8px;
}

.v120-warning-list>div {
    padding: 11px;
    border: 1px solid var(--x-line);
    border-radius: 11px;
    background: var(--x-panel-2);
}

.v120-warning-list b,.v120-warning-list small {
    display: block;
}

.v120-warning-list span {
    float: right;
    color: #b42318;
    font-size: 9px;
    font-weight: 750;
}

.rtl .v120-warning-list span {
    float: left;
}

.v120-warning-list small {
    margin-top: 4px;
    color: var(--x-muted);
    font-size: 9px;
}

.v120-test-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
}

.v120-test-grid article {
    padding: 13px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel-2);
}

.v120-test-grid article.pass {
    border-left: 4px solid #12b76a;
}

.v120-test-grid article.fail {
    border-left: 4px solid #f04438;
}

.rtl .v120-test-grid article.pass,.rtl .v120-test-grid article.fail {
    border-left: 1px solid var(--x-line);
    border-right-width: 4px;
}

.v120-test-grid span {
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
}

.v120-test-grid .pass span {
    color: #067647;
}

.v120-test-grid .fail span {
    color: #b42318;
}

.v120-test-grid b,.v120-test-grid small {
    display: block;
}

.v120-test-grid b {
    margin-top: 5px;
    font-size: 11px;
}

.v120-test-grid small {
    margin-top: 5px;
    color: var(--x-muted);
    font-size: 9px;
    line-height: 1.4;
}

.v120-dashboard-compare {
    margin-bottom: 18px;
}

.v120-compare-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 11px;
}

.v120-compare-grid article {
    padding: 14px;
    border: 1px solid var(--x-line);
    border-radius: 12px;
    background: var(--x-panel-2);
}

.v120-compare-grid span,.v120-compare-grid small {
    display: block;
}

.v120-compare-grid span {
    color: var(--x-muted);
    font-size: 9px;
    font-weight: 750;
}

.v120-compare-grid strong {
    display: block;
    margin-top: 8px;
    font-size: 21px;
    letter-spacing: -.04em;
}

.v120-compare-grid small {
    margin-top: 6px;
    font-size: 9px;
}

.delta-up {
    color: #067647 !important;
}

.delta-down {
    color: #b42318 !important;
}

.v120-department-costs {
    display: grid;
    gap: 12px;
}

.v120-department-costs>div>span {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.v120-department-costs b {
    font-size: 10px;
}

.v120-department-costs em {
    color: var(--x-muted);
    font-size: 9px;
    font-style: normal;
}

.v120-department-costs i {
    display: block;
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--x-panel-2);
}

.v120-department-costs u {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #175cd3;
    text-decoration: none;
}

.v120-risk-row {
    background: rgba(240,68,56,.045) !important;
}

@media (max-width:1050px) {
    .employee360-metrics-v120,.v120-kpi-grid,.v120-compare-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .v120-form-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
    .v120-split {
        grid-template-columns: 1fr;
    }
    .v120-test-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width:650px) {
    .employee360-metrics-v120,.v120-kpi-grid,.v120-compare-grid,.v120-form-grid,.v120-test-grid {
        grid-template-columns: 1fr;
    }
    .v120-span-2 {
        grid-column: auto;
    }
    .v120-flow {
        align-items: stretch;
        flex-direction: column;
    }
    .v120-flow>i {
        transform: rotate(90deg);
        text-align: center;
    }
}

/*V120 chat file drop state*/

.executive-ui .messenger-compose[data-file-drop-zone] {
    position: relative;
}

.executive-ui .messenger-compose[data-file-drop-zone].is-file-dragging {
    outline: 2px dashed var(--x-blue);
    outline-offset: -5px;
    background: #eff4ff !important;
}

.executive-ui .messenger-compose[data-file-drop-zone].is-file-dragging::before {
    content: 'Drop file to attach';
    position: absolute;
    inset: 5px;
    z-index: 12;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(239,244,255,.94);
    color: #175cd3;
    font-size: 12px;
    font-weight: 800;
    pointer-events: none;
}

.theme-dark .executive-ui .messenger-compose[data-file-drop-zone].is-file-dragging {
    background: rgba(23,92,211,.15) !important;
}

.theme-dark .executive-ui .messenger-compose[data-file-drop-zone].is-file-dragging::before {
    background: rgba(16,24,32,.94);
    color: #84adff;
}


/* SOURCE: assets/css/v139_diagnostics.css */
/*Datalytics V139 Diagnostic Engine*/

.executive-ui .health-summary-v90 {
    grid-template-columns: repeat(5,minmax(0,1fr));
}

.executive-ui .health-summary-v90 .health-warn {
    border-top: 4px solid #f79009;
}

.executive-ui .health-check-icon.warn {
    background: #fffaeb;
    color: #b54708;
}

.theme-dark.executive-ui .health-check-icon.warn {
    background: rgba(181,71,8,.18);
    color: #fec84b;
}

.executive-ui .health-check-list>div {
    min-width: 0;
}

.executive-ui .health-check-list b {
    min-width: 0;
    overflow-wrap: anywhere;
}

.executive-ui .health-report-v90 {
    margin: 0;
    padding: 18px 20px;
    max-height: 520px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    background: var(--x-panel-2);
    color: var(--x-text);
    border-top: 1px solid var(--x-line);
    font: 10px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;
}

@media (max-width:1180px) {
    .executive-ui .health-summary-v90 {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }
}

@media (max-width:760px) {
    .executive-ui .health-summary-v90 {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width:520px) {
    .executive-ui .health-summary-v90 {
        grid-template-columns: 1fr;
    }
}


/* SOURCE: assets/css/v149_design_system.css */
/*Datalytics V149 consolidated production design layer. Loaded last.*/

:root {
    --ds-space-1: 4px;
    --ds-space-2: 8px;
    --ds-space-3: 12px;
    --ds-space-4: 16px;
    --ds-space-5: 20px;
    --ds-space-6: 24px;
    --ds-radius-sm: 10px;
    --ds-radius-md: 14px;
    --ds-radius-lg: 20px;
    --ds-radius-xl: 28px;
    --ds-surface: #fff;
    --ds-surface-soft: #f8fafc;
    --ds-line: #e2e8f0;
    --ds-text: #0f172a;
    --ds-muted: #64748b;
}

.executive-main {
    min-width: 0;
}

.page-head {
    align-items: flex-start;
}

.page-head .actions {
    justify-content: flex-end;
}

.v120-kpi-grid>article {
    min-width: 0;
}

.v120-kpi-grid strong {
    overflow-wrap: anywhere;
}

.executive-panel {
    min-width: 0;
}

.executive-table-wrap {
    max-width: 100%;
    overflow: auto;
    border-radius: var(--ds-radius-md);
}

.executive-table-wrap table {
    min-width: 760px;
}

.executive-table-wrap td,.executive-table-wrap th {
    vertical-align: top;
}

.executive-table-wrap code {
    white-space: normal;
    overflow-wrap: anywhere;
}

.repair-grid-v153 {
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(280px,1fr));
    gap: 16px;
    margin: 18px 0;
}

.repair-grid-v153 .executive-panel {
    margin: 0;
}

.v120-form-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
    align-items: end;
}

.v120-form-grid .v120-span-2 {
    grid-column: 1/-1;
}

.v120-form-grid>button {
    justify-self: start;
}

.clear-state {
    display: flex;
    gap: 14px;
    align-items: center;
    padding: 22px;
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    border-radius: 18px;
}

.clear-state>span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #16a34a;
    color: #fff;
    font-size: 22px;
}

.clear-state small {
    display: block;
    color: #64748b;
    margin-top: 4px;
}

.production-check-row {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid var(--ds-line);
}

.timeline360 {
    display: grid;
    gap: 12px;
}

.timeline-event360 {
    display: grid;
    grid-template-columns: 14px 1fr;
    gap: 12px;
}

.timeline-event360 i {
    width: 10px;
    height: 10px;
    margin-top: 5px;
    border-radius: 50%;
    background: #6366f1;
}

.timeline-event360 small {
    display: block;
    color: var(--ds-muted);
}

[data-theme="dark"] {
    --ds-surface: #111827;
    --ds-surface-soft: #0f172a;
    --ds-line: #334155;
    --ds-text: #f8fafc;
    --ds-muted: #cbd5e1;
}

[data-theme="dark"] .executive-table-wrap table,[data-theme="dark"] .executive-table-wrap th {
    background: #111827;
    color: #f8fafc;
}

body.rtl .executive-table-wrap th,body.rtl .executive-table-wrap td {
    text-align: right;
}

@media (max-width:760px) {
    .v120-form-grid {
        grid-template-columns: 1fr;
    }
    .v120-form-grid .v120-span-2 {
        grid-column: auto;
    }
    .page-head {
        display: block;
    }
    .page-head>.actions,.page-head>form,.page-head>a {
        margin-top: 12px;
    }
    .executive-table-wrap table {
        min-width: 680px;
    }
}


/* SOURCE: assets/css/v17025_performance_recovery.css */
/* Datalytics V170.25 performance and scroll recovery. */
html {
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

body.executive-ui {
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

/* The browser back/forward cache can restore a stale launcher-open class. */
body.executive-ui:not(.launcher-open) {
    overflow-y: auto !important;
}

body.page-performance-center .executive-shell,
body.page-system-health .executive-shell {
    height: auto !important;
    min-height: 100vh !important;
    overflow: visible !important;
}

body.page-performance-center .executive-main,
body.page-system-health .executive-main {
    height: auto !important;
    min-height: calc(100vh - 72px) !important;
    overflow: visible !important;
    padding-bottom: 72px !important;
}

body.page-performance-center .executive-table-wrap {
    max-height: none !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-gutter: stable;
}

body.page-performance-center .v120-split {
    align-items: start;
}

.performance-pagination,
.notification-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 18px 18px;
}

.performance-pagination span,
.notification-pagination span,
.dashboard-cache-note {
    color: var(--x-muted);
    font-size: 12px;
}

.dashboard-cache-note a {
    color: var(--x-blue);
    font-weight: 700;
    text-decoration: none;
}

.page-performance-center .page-head .actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.page-performance-center .page-head .actions form {
    margin: 0;
}

@media (max-width: 760px) {
    body.page-performance-center .executive-main,
    body.page-system-health .executive-main {
        padding-bottom: 44px !important;
    }
}


/* Datalytics V171.2 readability and invoice workspace layer. Loaded last. */
:root{
    --read-bg:#f3f6fa;
    --read-panel:#ffffff;
    --read-panel-soft:#f8fafc;
    --read-text:#111827;
    --read-muted:#475569;
    --read-line:#cbd5e1;
    --read-link:#1d4ed8;
    --read-link-hover:#1e40af;
    --read-secondary:#334155;
}
body.executive-ui{
    background:var(--read-bg)!important;
    color:var(--read-text)!important;
}
body.executive-ui .executive-main,
body.executive-ui .main-content{color:var(--read-text)!important;}
body.executive-ui .card,
body.executive-ui .stat,
body.executive-ui .stat-card,
body.executive-ui .executive-panel{
    background:var(--read-panel)!important;
    color:var(--read-text)!important;
    border-color:var(--read-line)!important;
}
body.executive-ui .card h1,
body.executive-ui .card h2,
body.executive-ui .card h3,
body.executive-ui .card h4,
body.executive-ui .card strong,
body.executive-ui .page-head h1,
body.executive-ui .page-head h2{
    color:var(--read-text)!important;
    background:none!important;
    -webkit-background-clip:initial!important;
    background-clip:initial!important;
    -webkit-text-fill-color:currentColor!important;
    opacity:1!important;
}
body.executive-ui .page-head p,
body.executive-ui .muted,
body.executive-ui small.muted,
body.executive-ui .hint,
body.executive-ui .card small{
    color:var(--read-muted)!important;
    opacity:1!important;
}
body.executive-ui label{color:#334155!important;}
body.executive-ui a:not(.btn):not(.app-tile):not(.executive-user){color:var(--read-link);}
body.executive-ui a:not(.btn):not(.app-tile):not(.executive-user):hover{color:var(--read-link-hover);}
body.executive-ui button,
body.executive-ui .btn,
body.executive-ui .btn:visited{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
}
body.executive-ui .btn.secondary,
body.executive-ui button.secondary{
    background:var(--read-secondary)!important;
    color:#fff!important;
    border:1px solid #1e293b!important;
    box-shadow:0 8px 20px rgba(15,23,42,.16)!important;
}
body.executive-ui .btn.secondary:hover,
body.executive-ui button.secondary:hover{background:#1e293b!important;}
body.executive-ui input,
body.executive-ui select,
body.executive-ui textarea{
    background:#fff!important;
    color:#111827!important;
    border-color:#94a3b8!important;
}
body.executive-ui input::placeholder,
body.executive-ui textarea::placeholder{color:#64748b!important;opacity:1;}
body.executive-ui th{background:#e9eef5!important;color:#172033!important;border-color:#cbd5e1!important;}
body.executive-ui td{color:#1f2937!important;border-color:#d7dee8!important;}
body.executive-ui code{color:#1e3a8a;background:#eef2ff;border-radius:6px;padding:2px 5px;}

body.executive-ui.theme-dark{
    --read-bg:#09111c;
    --read-panel:#111c29;
    --read-panel-soft:#162334;
    --read-text:#f8fafc;
    --read-muted:#d1d9e6;
    --read-line:#3a4a5f;
    --read-link:#93c5fd;
    --read-link-hover:#bfdbfe;
    --read-secondary:#475569;
    background:var(--read-bg)!important;
    color:var(--read-text)!important;
}
body.executive-ui.theme-dark .card,
body.executive-ui.theme-dark .stat,
body.executive-ui.theme-dark .stat-card,
body.executive-ui.theme-dark .executive-panel{background:var(--read-panel)!important;border-color:var(--read-line)!important;color:var(--read-text)!important;}
body.executive-ui.theme-dark .card h1,
body.executive-ui.theme-dark .card h2,
body.executive-ui.theme-dark .card h3,
body.executive-ui.theme-dark .card h4,
body.executive-ui.theme-dark .card strong,
body.executive-ui.theme-dark .page-head h1,
body.executive-ui.theme-dark .page-head h2{color:var(--read-text)!important;}
body.executive-ui.theme-dark .page-head p,
body.executive-ui.theme-dark .muted,
body.executive-ui.theme-dark small.muted,
body.executive-ui.theme-dark .hint,
body.executive-ui.theme-dark .card small{color:var(--read-muted)!important;}
body.executive-ui.theme-dark label{color:#e2e8f0!important;}
body.executive-ui.theme-dark input,
body.executive-ui.theme-dark select,
body.executive-ui.theme-dark textarea{background:#0b1522!important;color:#f8fafc!important;border-color:#52647b!important;}
body.executive-ui.theme-dark input::placeholder,
body.executive-ui.theme-dark textarea::placeholder{color:#aab7c8!important;}
body.executive-ui.theme-dark th{background:#1b2b3d!important;color:#f8fafc!important;border-color:#46596f!important;}
body.executive-ui.theme-dark td{background:#111c29!important;color:#edf2f7!important;border-color:#34465b!important;}
body.executive-ui.theme-dark code{color:#bfdbfe;background:#172554;}
body.executive-ui.theme-dark .alert.info{background:#102a43!important;color:#dbeafe!important;border-color:#315b7d!important;}
body.executive-ui.theme-dark .alert.good{background:#102a22!important;color:#d1fae5!important;border-color:#2f6b59!important;}
body.executive-ui.theme-dark .alert.warn{background:#34230c!important;color:#ffedd5!important;border-color:#805b26!important;}
body.executive-ui.theme-dark .alert.danger{background:#351719!important;color:#fee2e2!important;border-color:#7f3b40!important;}

/* Independent invoices page */
.invoice-department-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 20px;}
.invoice-department-card{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:center;padding:18px;border:2px solid var(--read-line);border-radius:18px;background:var(--read-panel);color:var(--read-text)!important;text-decoration:none!important;box-shadow:0 10px 28px rgba(15,23,42,.07);}
.invoice-department-card:hover{border-color:#60a5fa;transform:translateY(-1px);}
.invoice-department-card.active{border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.11),0 14px 34px rgba(15,23,42,.09);}
.invoice-department-card strong{display:block;color:var(--read-text)!important;font-size:18px;}
.invoice-department-card small{display:block;color:var(--read-muted)!important;margin-top:4px;font-size:13px;}
.invoice-department-code{width:54px;height:54px;display:grid;place-items:center;border-radius:15px;background:#dbeafe;color:#1e3a8a;font-weight:900;}
.invoice-department-card.active .invoice-department-code{background:#2563eb;color:#fff;}
.invoice-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.invoice-summary-grid .stat b{font-size:25px;}
.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.section-heading-row h2{margin:4px 0 0;}
.invoice-form-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1fr);gap:16px;align-items:end;margin-bottom:14px;}
.invoice-break-option{display:flex!important;align-items:center;gap:10px;min-height:48px;padding:12px 14px;margin:0!important;border:1px solid var(--read-line);border-radius:14px;background:var(--read-panel-soft);}
.invoice-break-option input,.invoice-extra-day input{width:auto!important;margin:0;accent-color:#2563eb;}
.invoice-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;}
.invoice-extra-days{color:var(--read-muted);font-weight:700;margin-top:8px;}
.invoice-preview-section{padding:14px;border:1px solid var(--read-line);border-radius:14px;background:var(--read-panel-soft);margin:14px 0;}
.invoice-extra-day-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;}
.invoice-extra-day{display:flex!important;align-items:center;gap:10px;padding:12px;border:1px solid var(--read-line);border-radius:12px;background:var(--read-panel);}
.invoice-extra-day b,.invoice-extra-day small{display:block;}
.invoice-preview-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0;}
.invoice-preview-meta span{display:block;padding:12px;border:1px solid var(--read-line);border-radius:12px;background:var(--read-panel-soft);color:var(--read-text);}
.invoice-preview-meta b{display:block;margin-bottom:4px;font-size:12px;color:var(--read-muted)!important;text-transform:uppercase;letter-spacing:.05em;}
.invoice-ready-card p{max-width:850px;line-height:1.7;}
@media(max-width:900px){.invoice-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.invoice-form-grid,.invoice-department-switch{grid-template-columns:1fr;}.section-heading-row{display:block}.section-heading-row .btn{margin-top:12px}.invoice-preview-meta{grid-template-columns:1fr;}}
@media(max-width:520px){.invoice-summary-grid{grid-template-columns:1fr}.invoice-actions .btn,.invoice-actions button{width:100%;text-align:center;}}


/* BonusGrid reliable weekly autosave */
.week-save-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 12px;}
#weekArchiveStatus{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid transparent;border-radius:999px;}
#weekArchiveStatus.dirty{background:#fff7ed;color:#9a3412;border-color:#fdba74;}
#weekArchiveStatus.saving{background:#eff6ff;color:#1d4ed8;border-color:#93c5fd;}
#weekArchiveStatus.good{background:#ecfdf3;color:#166534;border-color:#86efac;}
#weekArchiveStatus.bad{background:#fef2f2;color:#b91c1c;border-color:#fca5a5;}
body.executive-ui.theme-dark #weekArchiveStatus.dirty{background:#3a240d;color:#fed7aa;border-color:#9a5f21;}
body.executive-ui.theme-dark #weekArchiveStatus.saving{background:#102a43;color:#bfdbfe;border-color:#315b7d;}
body.executive-ui.theme-dark #weekArchiveStatus.good{background:#102a22;color:#bbf7d0;border-color:#2f6b59;}
body.executive-ui.theme-dark #weekArchiveStatus.bad{background:#351719;color:#fecaca;border-color:#7f3b40;}
.invoice-additional-lines{margin:16px 0;padding:16px;border:1px solid var(--read-line);border-radius:16px;background:var(--read-panel-soft)}
.invoice-additional-line{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px);gap:12px;margin-top:10px}
.invoice-additional-line input{width:100%}
@media(max-width:700px){.invoice-additional-line{grid-template-columns:1fr}}


/* SOURCE: V171.9.8 Team Chat visibility and avatar fallback repair */
.executive-ui .chat-v101-panel,
.executive-ui .chat-v101 .messenger-head,
.executive-ui .chat-v101 .messenger-search {
    background: #ffffff !important;
    color: #101828 !important;
}

.executive-ui .chat-v101 .messenger-conversations {
    background: #eef2f6 !important;
    color: #101828 !important;
}

.executive-ui .chat-v101 .chat-conversation {
    background: transparent !important;
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    opacity: 1 !important;
}

.executive-ui .chat-v101 .chat-conversation:hover,
.executive-ui .chat-v101 .chat-conversation.active {
    background: #ffffff !important;
}

.executive-ui .chat-v101 .conversation-copy,
.executive-ui .chat-v101 .conversation-copy b,
.executive-ui .chat-v101 .conversation-copy small {
    visibility: visible !important;
    opacity: 1 !important;
}

.executive-ui .chat-v101 .conversation-copy b {
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
    font-weight: 800 !important;
}

.executive-ui .chat-v101 .conversation-copy small {
    color: #475467 !important;
    -webkit-text-fill-color: #475467 !important;
    font-weight: 600 !important;
}

.executive-ui .chat-v101 .mini-avatar,
.executive-ui .chat-v101 .msg-avatar,
.executive-ui .chat-v101 .thread-avatar-image {
    display: grid !important;
    place-items: center !important;
    background: #1f3a5f !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border: 1px solid #15304f !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.executive-ui .chat-v101 .mini-avatar.has-photo,
.executive-ui .chat-v101 .msg-avatar.has-photo,
.executive-ui .chat-v101 .thread-avatar-image.has-photo {
    background: #dbe4ee !important;
}

.executive-ui .chat-v101 .mini-avatar img,
.executive-ui .chat-v101 .msg-avatar img,
.executive-ui .chat-v101 .thread-avatar-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.executive-ui .chat-v101 .general-avatar {
    background: #0b1727 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.executive-ui .chat-v101 .thread-avatar {
    background: #0b1727 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

.theme-dark.executive-ui .chat-v101-panel,
.theme-dark.executive-ui .chat-v101 .messenger-head,
.theme-dark.executive-ui .chat-v101 .messenger-search {
    background: #101820 !important;
    color: #f2f4f7 !important;
}

.theme-dark.executive-ui .chat-v101 .messenger-conversations {
    background: #111a24 !important;
    color: #f2f4f7 !important;
}

.theme-dark.executive-ui .chat-v101 .chat-conversation {
    color: #f2f4f7 !important;
    -webkit-text-fill-color: #f2f4f7 !important;
}

.theme-dark.executive-ui .chat-v101 .chat-conversation:hover,
.theme-dark.executive-ui .chat-v101 .chat-conversation.active {
    background: #182431 !important;
}

.theme-dark.executive-ui .chat-v101 .conversation-copy b {
    color: #f2f4f7 !important;
    -webkit-text-fill-color: #f2f4f7 !important;
}

.theme-dark.executive-ui .chat-v101 .conversation-copy small {
    color: #b8c1cc !important;
    -webkit-text-fill-color: #b8c1cc !important;
}

.theme-dark.executive-ui .chat-v101 .mini-avatar,
.theme-dark.executive-ui .chat-v101 .msg-avatar,
.theme-dark.executive-ui .chat-v101 .thread-avatar-image {
    background: #294a70 !important;
    border-color: #3c5f86 !important;
}


/* SOURCE: V171.9.9 Team Chat control contrast repair */
.executive-ui .chat-v101 .chat-icon-button {
    position: relative !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    border: 1px solid #98a2b3 !important;
    border-radius: 10px !important;
    background: #e8eef5 !important;
    color: #172033 !important;
    -webkit-text-fill-color: #172033 !important;
    box-shadow: 0 1px 2px rgba(16,24,40,.08) !important;
    opacity: 1 !important;
    visibility: visible !important;
    font-size: 21px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}
.executive-ui .chat-v101 .chat-icon-button:hover,
.executive-ui .chat-v101 .chat-icon-button:focus-visible {
    background: #dbe5f0 !important;
    border-color: #667085 !important;
    color: #0b1727 !important;
    -webkit-text-fill-color: #0b1727 !important;
    outline: 3px solid rgba(37,99,235,.18) !important;
    outline-offset: 1px !important;
}
.executive-ui .chat-v101 [data-chat-close] {
    background: #fff1f0 !important;
    border-color: #f97066 !important;
    color: #b42318 !important;
    -webkit-text-fill-color: #b42318 !important;
}
.executive-ui .chat-v101 [data-chat-close]:hover,
.executive-ui .chat-v101 [data-chat-close]:focus-visible {
    background: #fee4e2 !important;
    border-color: #d92d20 !important;
    color: #7a271a !important;
    -webkit-text-fill-color: #7a271a !important;
    outline-color: rgba(217,45,32,.18) !important;
}
.executive-ui .chat-v101 [data-chat-refresh] {
    background: #eff8ff !important;
    border-color: #84caff !important;
    color: #175cd3 !important;
    -webkit-text-fill-color: #175cd3 !important;
}
.executive-ui .chat-v101 [data-chat-refresh]:hover,
.executive-ui .chat-v101 [data-chat-refresh]:focus-visible {
    background: #d1e9ff !important;
    border-color: #2e90fa !important;
    color: #1849a9 !important;
    -webkit-text-fill-color: #1849a9 !important;
}
.executive-ui .chat-v101 .chat-thread-tool,
.executive-ui .chat-v101 [data-chat-reply-cancel],
.executive-ui .chat-v101 [data-chat-edit-cancel],
.executive-ui .chat-v101 [data-chat-emoji-close] {
    border: 1px solid #98a2b3 !important;
    background: #f2f4f7 !important;
    color: #344054 !important;
    -webkit-text-fill-color: #344054 !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.executive-ui .chat-v101 .chat-thread-tool:hover,
.executive-ui .chat-v101 .chat-thread-tool:focus-visible,
.executive-ui .chat-v101 [data-chat-reply-cancel]:hover,
.executive-ui .chat-v101 [data-chat-edit-cancel]:hover,
.executive-ui .chat-v101 [data-chat-emoji-close]:hover {
    background: #e4e7ec !important;
    border-color: #667085 !important;
    color: #101828 !important;
    -webkit-text-fill-color: #101828 !important;
}
.theme-dark.executive-ui .chat-v101 .chat-icon-button {
    background: #243447 !important;
    border-color: #667085 !important;
    color: #f9fafb !important;
    -webkit-text-fill-color: #f9fafb !important;
}
.theme-dark.executive-ui .chat-v101 .chat-icon-button:hover,
.theme-dark.executive-ui .chat-v101 .chat-icon-button:focus-visible {
    background: #34495e !important;
    border-color: #98a2b3 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.theme-dark.executive-ui .chat-v101 [data-chat-close] {
    background: #4a1d1f !important;
    border-color: #f97066 !important;
    color: #fecdca !important;
    -webkit-text-fill-color: #fecdca !important;
}
.theme-dark.executive-ui .chat-v101 [data-chat-refresh] {
    background: #102a43 !important;
    border-color: #53b1fd !important;
    color: #b2ddff !important;
    -webkit-text-fill-color: #b2ddff !important;
}
.theme-dark.executive-ui .chat-v101 .chat-thread-tool,
.theme-dark.executive-ui .chat-v101 [data-chat-reply-cancel],
.theme-dark.executive-ui .chat-v101 [data-chat-edit-cancel],
.theme-dark.executive-ui .chat-v101 [data-chat-emoji-close] {
    background: #1d2939 !important;
    border-color: #667085 !important;
    color: #f2f4f7 !important;
    -webkit-text-fill-color: #f2f4f7 !important;
}

/* V171.9.18 staged attendance rows */
.attendance-staged-row{outline:2px solid rgba(38,132,255,.35);outline-offset:-2px;background:rgba(38,132,255,.05)}


/* V171.9.25 Attendance review order, status visibility and horizontal-scroll fix. */
body.page-attendance #attendance-review-form .table-wrap {
    overflow-x: auto !important;
    overflow-y: visible !important;
    scrollbar-gutter: stable both-edges;
    overscroll-behavior-x: contain;
}
body.page-attendance .attendance-review-table {
    width: max-content !important;
    min-width: 2360px !important;
    table-layout: auto !important;
}
body.page-attendance .attendance-review-table th,
body.page-attendance .attendance-review-table td {
    white-space: nowrap !important;
}
body.page-attendance .attendance-review-table th:nth-child(1),
body.page-attendance .attendance-review-table td:nth-child(1) { min-width: 112px; }
body.page-attendance .attendance-review-table th:nth-child(2),
body.page-attendance .attendance-review-table td:nth-child(2) { min-width: 76px; }
body.page-attendance .attendance-review-table th:nth-child(3),
body.page-attendance .attendance-review-table td:nth-child(3) { min-width: 165px; }
body.page-attendance .attendance-review-table th:nth-child(4),
body.page-attendance .attendance-review-table td:nth-child(4) { min-width: 105px; }
body.page-attendance .attendance-review-table th:nth-child(5),
body.page-attendance .attendance-review-table td:nth-child(5) { min-width: 155px; }
body.page-attendance .attendance-review-table th:nth-child(6),
body.page-attendance .attendance-review-table td:nth-child(6),
body.page-attendance .attendance-review-table th:nth-child(7),
body.page-attendance .attendance-review-table td:nth-child(7) { min-width: 105px; }
body.page-attendance .attendance-review-table th:nth-child(8),
body.page-attendance .attendance-review-table td:nth-child(8),
body.page-attendance .attendance-review-table th:nth-child(9),
body.page-attendance .attendance-review-table td:nth-child(9) { min-width: 92px; }
body.page-attendance .attendance-review-table th:nth-child(10),
body.page-attendance .attendance-review-table td:nth-child(10) { min-width: 190px; }
body.page-attendance .attendance-review-table .attendance-status-select {
    min-width: 178px !important;
    width: 100% !important;
}
body.page-attendance .attendance-review-table .time-24-input { min-width: 92px !important; }
body.page-attendance .attendance-review-table td:nth-child(10) { border-right: 1px solid var(--x-line); }
body.page-attendance .dataTables_wrapper,
body.page-attendance .dt-container {
    overflow: visible !important;
}

/* V171.9.26 Per-user table column layouts + optional pinned/frozen columns. */
.table-layout-scroll-host {
    overflow-x: auto !important;
    overflow-y: visible;
    max-width: 100%;
    scrollbar-gutter: stable;
    overscroll-behavior-x: contain;
}
.table-layout-toolbar {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 0 8px;
    z-index: 15;
}
.table-layout-status {
    min-height: 18px;
}
.table-layout-status.is-dirty {
    color: var(--warn) !important;
    font-weight: 700;
}
.table-layout-status.is-error {
    color: var(--bad) !important;
    font-weight: 700;
}
.table-layout-panel {
    flex-basis: 100%;
    width: min(620px, 100%);
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--card);
    color: var(--text);
    padding: 12px;
    box-shadow: 0 10px 28px rgba(15,23,42,.12);
}
.table-layout-panel[hidden] { display: none !important; }
.table-layout-help {
    margin: 0 0 10px;
    color: var(--muted);
    white-space: normal;
}
.table-layout-list {
    display: grid;
    gap: 6px;
    max-height: 360px;
    overflow: auto;
}
.table-layout-item {
    display: grid;
    grid-template-columns: 32px minmax(120px,1fr) auto;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--card);
    cursor: grab;
}
.table-layout-item:active { cursor: grabbing; }
.table-layout-handle {
    color: var(--muted);
    font-weight: 900;
    letter-spacing: -3px;
    user-select: none;
}
.table-layout-column-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 700;
}
.table-layout-pin {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    white-space: nowrap;
}
.table-layout-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}
table.dl-layout-enabled thead th[data-dl-column-key] {
    cursor: grab;
    user-select: none;
}
table.dl-layout-enabled thead th.dl-column-dragging {
    opacity: .55;
}
table.dl-layout-enabled .dl-pinned-column {
    position: sticky !important;
    left: var(--dl-pin-left, 0px) !important;
    z-index: 5;
    background: var(--card) !important;
    background-clip: padding-box !important;
}
table.dl-layout-enabled thead .dl-pinned-column {
    z-index: 8;
    background: #f8fafc !important;
}
table.dl-layout-enabled .dl-pinned-edge {
    box-shadow: 3px 0 0 rgba(100,116,139,.20), 8px 0 14px rgba(15,23,42,.08);
}
.theme-dark table.dl-layout-enabled .dl-pinned-column,
[data-theme="dark"] table.dl-layout-enabled .dl-pinned-column {
    background: #101820 !important;
}
.theme-dark table.dl-layout-enabled thead .dl-pinned-column,
[data-theme="dark"] table.dl-layout-enabled thead .dl-pinned-column {
    background: #17212b !important;
}
body.rtl .table-layout-panel { text-align: right; }
@media (max-width: 640px) {
    .table-layout-item { grid-template-columns: 26px minmax(90px,1fr) auto; }
    .table-layout-panel { padding: 10px; }
}


/* V171.9.28: keep the staged-change counter readable in every theme. */
.attendance-staged-count-badge {
    min-width: 28px;
    justify-content: center;
    background: #1d4ed8 !important;
    color: #ffffff !important;
    border: 1px solid #1e40af !important;
}
.theme-dark .attendance-staged-count-badge {
    background: #60a5fa !important;
    color: #0f172a !important;
    border-color: #93c5fd !important;
}


/* V171.9.56 HF3 — precise top action icon centering */
.top-action [data-theme-icon] {
    width: 22px;
    height: 22px;
    display: inline-grid;
    place-items: center;
    line-height: 1;
    text-align: center;
    vertical-align: middle;
    font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
}

/* V171.9.56 HF4: session continuity warning. */
.session-expiry-warning {
    position: fixed;
    z-index: 10050;
    inset-inline-end: 20px;
    bottom: 20px;
    max-width: min(440px, calc(100vw - 40px));
    padding: 12px 16px;
    border-radius: 12px;
    background: #fff7ed;
    color: #9a3412;
    border: 1px solid #fdba74;
    box-shadow: 0 14px 35px rgba(15,23,42,.2);
    font-weight: 700;
}
.session-expiry-warning.critical {
    background: #fef2f2;
    color: #991b1b;
    border-color: #fca5a5;
}

/* V171.9.66: make the department-wide preset action unmistakable. */
.schedule-department-heading{align-items:center;gap:16px;flex-wrap:wrap}
.schedule-apply-preset{font-weight:800;min-height:42px;white-space:normal}
.schedule-preset-help{margin:-2px 0 14px;padding:10px 12px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a8a}
.theme-dark .schedule-preset-help{background:#172554;border-color:#1d4ed8;color:#dbeafe}

/* V171.9.74 Team Chat directory / favorites / groups */
.chat-v101 .messenger-search{gap:8px}.chat-v101 .messenger-search input{min-width:0;flex:1}.chat-directory-create{border:0;border-radius:10px;padding:8px 10px;font-weight:800;white-space:nowrap;background:var(--accent,#2563eb);color:#fff;cursor:pointer}.chat-directory-section{padding:6px 0 10px}.chat-directory-heading{display:flex;align-items:center;justify-content:space-between;padding:7px 10px 5px;color:var(--read-muted,#667085);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.chat-directory-folder{width:100%;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:7px;align-items:center;border:0;background:transparent;color:inherit;text-align:left;padding:9px 10px;border-radius:10px;cursor:pointer}.rtl .chat-directory-folder{text-align:right}.chat-directory-folder:hover,.chat-directory-folder.active{background:rgba(37,99,235,.08)}.chat-directory-folder b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-directory-folder em{font-style:normal;font-size:10px;color:var(--read-muted,#667085)}.chat-directory-members{padding:0 0 5px 12px}.rtl .chat-directory-members{padding-left:0;padding-right:12px}.chat-directory-members .chat-conversation{transform:scale(.98);transform-origin:center}.chat-group-row .group-avatar{background:#ede9fe!important;color:#5b21b6!important}.chat-thread-tool[data-chat-favorite].active{color:#b7791f;border-color:#f6c453;background:#fff8db}.chat-group-editor[hidden]{display:none!important}.chat-group-editor{position:fixed;inset:0;z-index:10050;background:rgba(15,23,42,.48);display:grid;place-items:center;padding:20px}.chat-group-editor-card{width:min(520px,96vw);max-height:min(720px,88vh);overflow:auto;background:var(--read-panel,#fff);color:var(--read-text,#101828);border:1px solid var(--read-line,#e4e7ec);border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.28);padding:18px}.chat-group-editor-card>header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.chat-group-editor-card>header strong{display:block;font-size:18px}.chat-group-editor-card>header small{display:block;color:var(--read-muted,#667085);margin-top:3px}.chat-group-editor-card>header button{border:0;background:transparent;font-size:24px;cursor:pointer;color:inherit}.chat-group-editor-card label{display:grid;gap:6px;font-size:12px;font-weight:800}.chat-group-editor-card label>input{width:100%;padding:10px 12px;border:1px solid var(--read-line,#d0d5dd);border-radius:10px;background:transparent;color:inherit}.chat-group-editor-card .messenger-search.compact{margin:12px 0}.chat-group-search-results{max-height:270px;overflow:auto;border:1px solid var(--read-line,#e4e7ec);border-radius:12px;padding:6px}.chat-group-person{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 24px;gap:9px;align-items:center;border:0;background:transparent;color:inherit;text-align:left;padding:8px;border-radius:9px;cursor:pointer}.rtl .chat-group-person{text-align:right}.chat-group-person:hover{background:rgba(37,99,235,.08)}.chat-group-person span b,.chat-group-person span small{display:block}.chat-group-person span small{color:var(--read-muted,#667085);font-size:10px}.chat-group-person em{font-style:normal;font-size:18px}.chat-group-selected{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.chat-group-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--read-line,#d0d5dd);border-radius:999px;padding:5px 8px;background:rgba(37,99,235,.06);font-size:11px}.chat-group-chip button{border:0;background:transparent;color:inherit;cursor:pointer;font-size:15px}.chat-group-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.chat-group-editor-actions button{padding:9px 14px;border-radius:10px;cursor:pointer}.theme-dark .chat-group-editor-card{background:#101828;color:#f8fafc;border-color:#344054}.theme-dark .chat-directory-folder:hover,.theme-dark .chat-directory-folder.active,.theme-dark .chat-group-person:hover{background:rgba(96,165,250,.12)}

/* V171.9.76 — modern, collapsible Team Chat directory */
.executive-ui .chat-v101-panel{width:min(1040px,calc(100vw - 32px));height:min(760px,calc(100vh - 92px));border-radius:22px;overflow:hidden;box-shadow:0 28px 80px rgba(15,23,42,.24)}
.executive-ui .chat-v101 .messenger-head{min-height:66px;padding:14px 18px;background:linear-gradient(135deg,rgba(37,99,235,.10),rgba(124,58,237,.06));border-bottom:1px solid var(--read-line,#e4e7ec)}
.executive-ui .chat-v101 .messenger-search{position:sticky;top:0;z-index:4;padding:12px 14px;background:var(--read-panel,#fff);border-bottom:1px solid var(--read-line,#e4e7ec)}
.executive-ui .chat-v101 .messenger-conversations{padding:10px 8px 18px;background:color-mix(in srgb,var(--read-panel,#fff) 94%,#f5f7fb 6%);scrollbar-gutter:stable}
.executive-ui .chat-v101 .chat-general-wrap{padding:0 4px 8px;border-bottom:1px solid var(--read-line,#e4e7ec);margin-bottom:6px}
.executive-ui .chat-v101 .chat-general-row{min-height:52px}
.executive-ui .chat-v101 .chat-directory-section{margin:7px 0;border-radius:13px}
.executive-ui .chat-v101 .chat-directory-heading{width:100%;border:0;background:transparent;color:var(--read-muted,#667085);display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px;cursor:pointer;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.075em;text-align:left}
.executive-ui.rtl .chat-v101 .chat-directory-heading{text-align:right}
.executive-ui .chat-v101 .chat-directory-heading>span{display:flex;align-items:center;gap:7px}.executive-ui .chat-v101 .chat-directory-heading i{font-style:normal;width:11px;font-size:11px}.executive-ui .chat-v101 .chat-directory-heading>em{font-style:normal;min-width:20px;text-align:center;border-radius:999px;padding:2px 6px;background:rgba(148,163,184,.15);color:inherit}
.executive-ui .chat-v101 .chat-directory-section-body[hidden]{display:none!important}
.executive-ui .chat-v101 .chat-department-block{margin:2px 0;border:1px solid transparent;border-radius:12px;overflow:hidden;transition:background .16s ease,border-color .16s ease}
.executive-ui .chat-v101 .chat-department-block.is-open{background:rgba(37,99,235,.045);border-color:rgba(37,99,235,.12)}
.executive-ui .chat-v101 .chat-directory-folder{grid-template-columns:14px 25px minmax(0,1fr) auto;min-height:43px;padding:8px 10px;border-radius:11px;font-size:12px}
.executive-ui .chat-v101 .chat-directory-folder.active{background:rgba(37,99,235,.09)}
.executive-ui .chat-v101 .chat-folder-chevron{font-size:12px;color:var(--read-muted,#667085);transition:transform .16s ease}.executive-ui .chat-v101 .chat-folder-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:rgba(37,99,235,.10);color:var(--accent,#2563eb);font-size:11px}
.executive-ui .chat-v101 .chat-directory-members{padding:2px 6px 7px 28px;animation:chatDirectoryOpen .15s ease-out}.executive-ui.rtl .chat-v101 .chat-directory-members{padding-left:6px;padding-right:28px}
@keyframes chatDirectoryOpen{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.executive-ui .chat-v101 .chat-directory-members .chat-conversation{transform:none;min-height:45px;border-radius:10px;margin:1px 0}
.executive-ui .chat-v101 .chat-conversation{position:relative;min-height:48px;padding:7px 9px;border-radius:11px;transition:background .14s ease,transform .14s ease}
.executive-ui .chat-v101 .chat-conversation:hover{transform:translateX(2px)}.executive-ui.rtl .chat-v101 .chat-conversation:hover{transform:translateX(-2px)}
.executive-ui .chat-v101 .chat-conversation.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:4px;background:var(--accent,#2563eb)}.executive-ui.rtl .chat-v101 .chat-conversation.active:before{left:auto;right:0}
.executive-ui .chat-v101 .chat-conversation>em{font-style:normal;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--accent,#2563eb);color:#fff;font-size:10px;font-weight:900}
.executive-ui .chat-v101 .conversation-copy b{font-size:12px}.executive-ui .chat-v101 .conversation-copy small{font-size:10px;margin-top:2px}
.executive-ui .chat-v101 .chat-empty.compact,.executive-ui .chat-v101 .chat-directory-loading{padding:12px 9px;font-size:11px;color:var(--read-muted,#667085)}
.executive-ui .chat-v101 .chat-group-row .group-avatar{background:linear-gradient(135deg,#ede9fe,#ddd6fe)!important;color:#5b21b6!important}
.theme-dark.executive-ui .chat-v101 .messenger-search{background:#101828}.theme-dark.executive-ui .chat-v101 .messenger-conversations{background:#0f172a}.theme-dark.executive-ui .chat-v101 .chat-department-block.is-open{background:rgba(96,165,250,.07);border-color:rgba(96,165,250,.15)}.theme-dark.executive-ui .chat-v101 .chat-directory-heading>em{background:rgba(148,163,184,.12)}
@media(max-width:760px){.executive-ui .chat-v101-panel{width:calc(100vw - 14px);height:calc(100vh - 74px);border-radius:16px}.executive-ui .chat-v101 .messenger-body{grid-template-columns:minmax(150px,38%) minmax(0,1fr)}.executive-ui .chat-v101 .chat-directory-members{padding-left:14px}.executive-ui.rtl .chat-v101 .chat-directory-members{padding-right:14px}}


/* V171.9.86 - bounded Notification Center rendering */
.notification-body-preview {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    line-height: 1.45;
    max-height: 4.35em;
    overflow-wrap: anywhere;
}
.v120-toolbar select[name="per_page"] {
    min-width: 84px;
}
@media (max-width: 680px) {
    .notification-body-preview {
        -webkit-line-clamp: 4;
        max-height: 5.8em;
    }
}
