:root { --b1go-accent:#0B75BC; --b1go-bg:#f5f7fb; --b1go-surface:#ffffff; --b1go-text:#1f2937; --b1go-muted:#64748b; --b1go-border:#e2e8f0; }
html, body { margin:0; min-height:100%; font-family:"Segoe UI", Arial, Helvetica, sans-serif; background:var(--b1go-bg); color:var(--b1go-text); }
*, *::before, *::after { box-sizing:border-box; }
a { color:var(--b1go-accent); }
.shell { min-height:100vh; background:var(--b1go-bg); color:var(--b1go-text); }
.theme-dark { --b1go-bg:#0f172a; --b1go-surface:#111827; --b1go-text:#e5e7eb; --b1go-muted:#94a3b8; --b1go-border:#334155; }
.size-small { font-size:13px; }
.size-medium { font-size:14px; }
.size-large { font-size:16px; }
.portal-shell, .public-shell { display:block; }
.portal-drawer { min-height:100vh; }
.portal-drawer .dxbl-drawer-panel { background:#111827; color:white; }
.drawer-header { padding:18px 18px 8px; }
.drawer-title { font-size:12px; color:#cbd5e1; margin-top:2px; }
.brand { font-size:21px; font-weight:700; color:white; letter-spacing:.2px; }
.public-brand { margin:0; color:var(--b1go-accent); }
.signed-in { font-size:12px; color:#cbd5e1; margin:8px 18px 14px; word-break:break-all; }
.navbtn { display:block; width:calc(100% - 28px); text-align:left; margin:5px 14px; color:white; border-radius:12px; min-height:42px; }
.navbtn:hover { background:rgba(255,255,255,.08); }
.logout { margin-top:20px; }
.portal-topbar { position:sticky; top:0; z-index:100; min-height:60px; background:var(--b1go-surface); border-bottom:1px solid var(--b1go-border); display:flex; align-items:center; gap:12px; padding:10px 18px; box-shadow:0 4px 18px rgba(15,23,42,.04); }
.hamburger-button { min-width:44px; min-height:42px; font-size:20px; }
.topbar-title { font-weight:700; color:var(--b1go-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.topbar-actions { margin-left:auto; display:flex; align-items:center; gap:8px; min-width:0; }
.rtl .topbar-actions { margin-left:0; margin-right:auto; }
.content { padding:24px; box-sizing:border-box; min-height:calc(100vh - 60px); max-width:1500px; }
.public-content { max-width:980px; margin:0 auto; padding:24px; box-sizing:border-box; }
.public-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; gap:12px; }
.public-actions { display:flex; align-items:center; gap:8px; }
.language-combo { min-width:150px; }
.topbar-language { width:180px; }
.card { background:var(--b1go-surface); border-radius:18px; box-shadow:0 10px 24px rgba(15,23,42,.08); padding:18px; margin-bottom:18px; border:1px solid rgba(148,163,184,.12); }
.theme-dark .card { box-shadow:0 10px 24px rgba(0,0,0,.28); }
.small-card { max-width:620px; margin:40px auto; }
.landing-card { margin-top:40px; }
.settings-card { margin-bottom:18px; }
.settings-tabs { margin:14px 0; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.settings-grid { margin-top:18px; }
.status { background:#eef6ff; border:1px solid #bfdbfe; color:#1e3a8a; padding:12px 14px; border-radius:12px; margin:12px 0; }
.theme-dark .status { background:#172554; border-color:#1d4ed8; color:#dbeafe; }
.hint { color:var(--b1go-muted); line-height:1.5; }
.setting-meta { color:var(--b1go-muted); font-size:12px; margin-top:6px; line-height:1.35; }
.ms-2 { margin-left:8px; }
.rtl .ms-2 { margin-left:0; margin-right:8px; }
code { background:#f1f5f9; padding:4px 6px; border-radius:6px; word-break:break-all; display:inline-block; max-width:100%; }
.theme-dark code { background:#020617; }
.dashboard-grid { display:grid; grid-template-columns:repeat(3, minmax(180px, 1fr)); gap:16px; margin-bottom:18px; }
.metric-card { background:var(--b1go-surface); border-radius:18px; box-shadow:0 10px 24px rgba(15,23,42,.08); padding:18px; border-left:5px solid var(--b1go-accent); min-height:120px; }
.rtl .metric-card { border-left:0; border-right:5px solid var(--b1go-accent); }
.metric-title { color:var(--b1go-muted); font-size:13px; margin-bottom:8px; }
.metric-value { font-size:34px; font-weight:700; color:var(--b1go-text); line-height:1.1; }
.metric-value.warning { color:#dc2626; }
.metric-value.date { font-size:24px; }
.rtl { direction:rtl; }
.responsive-grid { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.responsive-grid .dxbl-grid { min-width:720px; }
.mobile-only { display:none; }
.desktop-only { display:block; }
button, .dxbl-btn { touch-action:manipulation; }
.dxbl-text-edit, .dxbl-combobox, .dxbl-memo-edit { max-width:100%; }
.dxbl-fl .dxbl-fl-item { min-width:0; }
@media (min-width: 761px) {
  .portal-shell:not(.is-mobile) .hamburger-button { display:none; }
}
@media (max-width: 1100px) {
  .dashboard-grid { grid-template-columns:repeat(2, minmax(160px, 1fr)); }
}
@media (max-width: 760px) {
  html, body { width:100%; overflow-x:hidden; }
  .content, .public-content { padding:12px; width:100%; }
  .portal-topbar { padding:8px 10px; min-height:56px; gap:8px; }
  .topbar-title { font-size:15px; }
  .topbar-actions { gap:6px; }
  .topbar-language { width:128px; min-width:128px; }
  .profile-button { display:none; }
  .public-header { display:block; }
  .public-actions { margin-top:12px; flex-wrap:wrap; width:100%; }
  .public-actions .dxbl-btn { flex:1 1 120px; min-height:42px; }
  .language-combo { min-width:100%; width:100%; }
  .small-card { margin:16px 0; max-width:none; }
  .landing-card { margin-top:16px; }
  .card { border-radius:14px; padding:12px; margin-bottom:12px; }
  .dashboard-grid { grid-template-columns:1fr; gap:12px; }
  .metric-card { min-height:96px; padding:14px; }
  .metric-value { font-size:30px; }
  .metric-value.date { font-size:21px; }
  .navbtn { min-height:48px; font-size:15px; }
  .drawer-header { padding-top:14px; }
  .responsive-grid { margin-left:-12px; margin-right:-12px; border-radius:0; }
  .responsive-grid .dxbl-grid { min-width:760px; }
  .dxbl-fl .dxbl-fl-cpt { white-space:normal; }
  .dxbl-tabs { min-width:max-content; }
  .mobile-full-width, .dxbl-btn { max-width:100%; }
  .mobile-button-row { display:flex; flex-direction:column; gap:8px; }
  .mobile-button-row .dxbl-btn { width:100%; margin-left:0 !important; margin-right:0 !important; }
  .desktop-only { display:none; }
  .mobile-only { display:block; }
}
@media (max-width: 420px) {
  .topbar-language { display:none; }
  .topbar-title { max-width:calc(100vw - 88px); }
  .public-actions { gap:6px; }
}

.login-public-header { max-width:520px; margin:0 auto 8px; }
.login-hero { min-height:calc(100vh - 120px); display:flex; align-items:flex-start; justify-content:center; padding-top:34px; }
.login-card { width:100%; max-width:440px; background:var(--b1go-surface); border:1px solid rgba(148,163,184,.16); border-radius:22px; box-shadow:0 20px 50px rgba(15,23,42,.14); padding:30px; }
.login-logo { width:74px; height:74px; border-radius:22px; background:var(--b1go-accent); color:white; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:24px; margin:0 auto 16px; box-shadow:0 12px 24px rgba(11,117,188,.25); }
.login-card h1 { text-align:center; margin:0 0 8px; font-size:26px; }
.login-card .hint { text-align:center; margin-bottom:18px; }
.login-form { margin-top:6px; }
.login-options { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; }
.login-button { width:100%; min-height:44px; font-weight:700; }
.signup-line { text-align:center; color:var(--b1go-muted); }
.auth-card { margin-top:20px; }
.theme-dark .login-card { box-shadow:0 20px 50px rgba(0,0,0,.35); }
@media (max-width:760px) {
  .login-hero { min-height:auto; padding-top:8px; }
  .login-card { padding:18px; border-radius:16px; box-shadow:0 10px 24px rgba(15,23,42,.10); }
  .login-logo { width:62px; height:62px; border-radius:18px; font-size:20px; }
  .login-card h1 { font-size:22px; }
  .login-options { align-items:flex-start; flex-direction:column; gap:8px; }
  .login-public-header { max-width:none; }
}

.external-login-block { margin: 12px 0 14px; text-align: center; }
.external-login-title { font-size: .9rem; opacity: .75; margin-bottom: 8px; }
.external-login-buttons { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.external-login-button { min-width: 120px; }
.external-login-note { margin-top: 8px; font-size: .82rem; opacity: .65; }
.status .dxbl-btn, .status + .dxbl-btn { margin-top: 8px; }
@media (max-width: 640px) {
    .external-login-buttons { flex-direction: column; }
    .external-login-button { width: 100%; }
}

.brand { display:flex; align-items:center; gap:10px; }
.brand-home-link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    border-radius:10px;
    text-decoration:none;
}
.brand-home-link:focus-visible {
    outline:2px solid currentColor;
    outline-offset:3px;
}
.brand-logo { width:38px; height:38px; display:block; }
.public-brand .brand-logo { width:42px; height:42px; }
.login-logo img { width:100%; height:100%; display:block; }
.captcha-row { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; }
.captcha-refresh { min-width:46px; min-height:40px; }
@media (max-width:760px) { .captcha-row { grid-template-columns:1fr; } .captcha-refresh { width:100%; } }

.strong-hint {
    font-weight: 600;
}
.turnstile-box {
    min-height: 70px;
    display: flex;
    align-items: center;
}

/* Official B1Go logo usage */
.brand-logo {
    width: 34px;
    height: 34px;
    object-fit: contain;
}
.public-brand .brand-logo {
    width: 42px;
    height: 42px;
}
.login-logo img {
    width: 96px;
    height: 96px;
    object-fit: contain;
}

/* V20 professional portal navigation refresh */
.portal-drawer .dxbl-drawer-panel {
    background: linear-gradient(180deg, #0f172a 0%, #111827 58%, #0b1220 100%);
    border-right: 1px solid rgba(255,255,255,.08);
}
.drawer-header { padding: 20px 18px 14px; border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:10px; }
.drawer-header .brand span { font-size:22px; }
.signed-in { margin:10px 14px 14px; padding:12px; border:1px solid rgba(255,255,255,.10); border-radius:14px; background:rgba(255,255,255,.05); }
.signed-in-label { font-size:11px; color:#94a3b8; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.signed-in-user { font-size:13px; color:#f8fafc; line-height:1.25; word-break:break-word; }
.nav-section-label { color:#94a3b8; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.10em; margin:18px 18px 7px; }
.navbtn { position:relative; width:calc(100% - 24px); margin:4px 12px; padding-left:12px; color:#e5e7eb !important; min-height:40px; border-radius:12px; font-weight:600; }
.navbtn:hover { background:rgba(255,255,255,.10); color:white !important; }
.navbtn:focus-within { outline:2px solid rgba(14,165,233,.35); outline-offset:1px; }
.portal-topbar { min-height:64px; padding:10px 22px; backdrop-filter:saturate(180%) blur(8px); }
.topbar-title { font-size:17px; }
.content { padding:26px; width:100%; }
.page-hero { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; }
.page-kicker { color:var(--b1go-accent); font-size:12px; font-weight:800; letter-spacing:.10em; text-transform:uppercase; margin-bottom:6px; }
.page-title { margin:0; font-size:28px; line-height:1.15; color:var(--b1go-text); }
.page-subtitle { color:var(--b1go-muted); margin:8px 0 0; max-width:760px; line-height:1.5; }
.quick-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:flex-end; }
.dashboard-grid { grid-template-columns:repeat(3, minmax(210px, 1fr)); gap:18px; }
.metric-card { border-left:0; border-top:4px solid var(--b1go-accent); min-height:128px; transition:transform .15s ease, box-shadow .15s ease; }
.metric-card:hover { transform:translateY(-2px); box-shadow:0 16px 32px rgba(15,23,42,.11); }
.metric-title { font-size:12px; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.metric-value { font-size:34px; font-weight:800; }
.metric-value.date { font-size:24px; }
.dashboard-two-col { display:grid; grid-template-columns:1.3fr .7fr; gap:18px; align-items:start; }
.next-step-list { display:grid; gap:10px; }
.next-step-item { display:flex; gap:12px; align-items:flex-start; padding:12px; border:1px solid var(--b1go-border); border-radius:14px; background:rgba(148,163,184,.07); }
.step-dot { width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--b1go-accent); color:white; font-weight:800; flex:0 0 28px; }
.card { border:1px solid rgba(148,163,184,.18); }
.dxbl-grid, .dxbl-fl { font-size:inherit; }
@media (max-width:1100px) {
    .dashboard-grid { grid-template-columns:repeat(2, minmax(180px, 1fr)); }
    .dashboard-two-col { grid-template-columns:1fr; }
}
@media (max-width:760px) {
    .content { padding:14px; }
    .portal-topbar { padding:8px 10px; min-height:58px; }
    .topbar-actions .profile-button { display:none; }
    .page-hero { flex-direction:column; }
    .page-title { font-size:23px; }
    .quick-actions { width:100%; justify-content:stretch; }
    .quick-actions .dxbl-btn { width:100%; }
    .dashboard-grid { grid-template-columns:1fr; gap:12px; }
    .metric-card { min-height:108px; padding:16px; }
    .metric-value { font-size:30px; }
    .metric-value.date { font-size:22px; }
}


.captcha-wrapper { display: flex; flex-direction: column; gap: 10px; }
.captcha-fallback-note { font-size: 0.85rem; color: #667085; }
.captcha-local-box { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; padding: 10px; border: 1px solid #d0d5dd; border-radius: 10px; background: #f9fafb; }
.captcha-local-question { font-weight: 600; min-width: 70px; }
@media (max-width:760px) { .captcha-local-box { grid-template-columns: 1fr; } }


/* V25 unified official B1Go branding */
.auth-brand-block {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    margin:0 auto 18px;
    text-align:center;
}
.auth-brand-block.compact {
    margin-bottom:8px;
}
.auth-logo {
    width:96px;
    height:96px;
    object-fit:contain;
    display:block;
}
.auth-subtitle {
    margin-top:6px;
    color:var(--b1go-muted);
    font-size:14px;
    font-weight:700;
    letter-spacing:.02em;
}
.brand span {
    display:flex;
    flex-direction:column;
    line-height:1.05;
}
.brand span small {
    font-size:10px;
    color:rgba(226,232,240,.72);
    font-weight:600;
    margin-top:3px;
    white-space:nowrap;
}
.public-brand span small {
    color:var(--b1go-muted);
}
.login-logo {
    display:none !important;
}
@media (max-width:760px) {
    .auth-logo { width:82px; height:82px; }
    .auth-subtitle { font-size:13px; }
}

/* V27 built-in free CAPTCHA */
.captcha-built-in-box {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    background: linear-gradient(135deg, #f8fbff, #ffffff);
}
.captcha-code {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    border: 1px dashed #98a2b3;
    border-radius: 10px;
    background: repeating-linear-gradient(45deg, #f2f4f7, #f2f4f7 6px, #ffffff 6px, #ffffff 12px);
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 4px;
    user-select: none;
}
.captcha-code span:nth-child(odd) { transform: rotate(-7deg); }
.captcha-code span:nth-child(even) { transform: rotate(6deg); }
.captcha-entry-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
}
.captcha-textbox { min-width: 0; }
@media (max-width:760px) { .captcha-entry-row { grid-template-columns: 1fr; } .captcha-refresh { width: 100%; } }

.inline-action-field {
  display: flex;
  gap: 10px;
  align-items: center;
  width: 100%;
}
.inline-action-field > .dxbl-text-edit,
.inline-action-field > .dxbl-combobox,
.inline-action-field > .dxbl-edit {
  flex: 1 1 auto;
}
.button-row {
  display: flex;
  gap: 10px;
  align-items: center;
}
.button-row.wrap {
  flex-wrap: wrap;
}
.webhook-editor-form .dxbl-fl-cpt {
  min-width: 190px;
}
@media (max-width: 640px) {
  .inline-action-field,
  .button-row {
    flex-direction: column;
    align-items: stretch;
  }
  .inline-action-field .dxbl-btn,
  .button-row .dxbl-btn {
    width: 100%;
  }
}


.admin-tabs { margin-top: 1rem; }
.admin-dashboard-grid { margin-bottom: 1rem; }
.vertical-form .dxbl-fl-cpt { align-items: flex-start; }
.status.error { color: #b00020; font-weight: 600; }

/* V46 click/navigation stability fix
   Replaces the Drawer target-content overlay with a plain responsive shell so no invisible overlay can capture clicks after the first navigation. */
.portal-frame {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    background: var(--b1go-bg);
}
.portal-sidebar {
    min-height: 100vh;
    background: linear-gradient(180deg, #0f172a 0%, #111827 58%, #0b1220 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(255,255,255,.08);
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    z-index: 20;
}
.portal-main-panel {
    min-width: 0;
    min-height: 100vh;
}
.portal-nav {
    flex: 1 1 auto;
    padding-bottom: 10px;
}
.navbtn,
.navbtn:visited,
.navbtn:active {
    display: flex;
    align-items: center;
    text-decoration: none;
    cursor: pointer;
}
.action-link,
.action-link:visited,
.action-link:active {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
    border: 1px solid var(--b1go-border);
    color: var(--b1go-text);
    background: var(--b1go-surface);
    cursor: pointer;
}
.action-link.primary {
    background: var(--b1go-accent);
    border-color: var(--b1go-accent);
    color: #fff;
}
.action-link.secondary {
    background: var(--b1go-surface);
    color: var(--b1go-text);
}
.action-link:hover,
.navbtn:hover {
    text-decoration: none;
}
@media (min-width: 761px) {
    .portal-frame .portal-sidebar { transform: none !important; }
}
@media (max-width: 760px) {
    .portal-frame {
        display: block;
    }
    .portal-sidebar {
        position: fixed;
        left: 0;
        top: 0;
        bottom: 0;
        width: min(86vw, 300px);
        transform: translateX(-105%);
        transition: transform .18s ease;
        box-shadow: 16px 0 28px rgba(15,23,42,.24);
    }
    .rtl .portal-sidebar {
        left: auto;
        right: 0;
        transform: translateX(105%);
    }
    .portal-frame.menu-open .portal-sidebar {
        transform: translateX(0);
    }
    .portal-main-panel {
        min-height: 100vh;
    }
    .quick-actions .action-link {
        width: 100%;
    }
}

.profile-icon-button {
    width: 42px;
    min-width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 999px;
}
.profile-icon {
    width: 22px;
    height: 22px;
    fill: currentColor;
}
.authenticator-qr-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--b1go-border);
    border-radius: 16px;
    background: var(--b1go-surface);
}
.authenticator-qr-code {
    width: min(260px, 100%);
    max-width: 260px;
    background: #fff;
    padding: 12px;
    border-radius: 14px;
    box-shadow: 0 8px 20px rgba(15,23,42,.08);
}
.authenticator-qr-code svg {
    display: block;
    width: 100%;
    height: auto;
}

.service-layer-message { white-space: pre-line; }

.device-settings-shell {
    min-height: 420px;
}
.app-settings-menu-layout {
    display: grid;
    grid-template-columns: minmax(190px, 240px) 1fr;
    gap: 18px;
    align-items: start;
}
.app-settings-menu {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 10px;
    border: 1px solid var(--b1go-border);
    border-radius: 16px;
    background: var(--b1go-soft);
    position: sticky;
    top: 0;
}
.settings-menu-item {
    width: 100%;
    border: 1px solid transparent;
    background: transparent;
    color: var(--b1go-text);
    text-align: left;
    border-radius: 12px;
    padding: 10px 12px;
    font-weight: 700;
    cursor: pointer;
}
.rtl .settings-menu-item {
    text-align: right;
}
.settings-menu-item:hover,
.settings-menu-item.active {
    background: var(--b1go-surface);
    border-color: var(--b1go-border);
    color: var(--b1go-accent);
    box-shadow: 0 8px 18px rgba(15,23,42,.06);
}
.app-settings-editor {
    min-width: 0;
    padding: 4px;
}
@media (max-width: 760px) {
    .app-settings-menu-layout {
        grid-template-columns: 1fr;
    }
    .app-settings-menu {
        position: static;
    }
}

/* V57 profile menu, CAPTCHA visibility, and session UX */
.profile-menu-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.profile-icon-button {
    width: 42px;
    height: 42px;
    min-width: 42px;
    border: 1px solid var(--b1go-border);
    border-radius: 999px;
    background: var(--b1go-surface);
    color: var(--b1go-accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
}
.profile-icon-button:hover {
    background: rgba(11,117,188,.08);
}
.profile-icon {
    width: 22px;
    height: 22px;
    fill: currentColor;
}
.profile-popup-menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 2000;
    min-width: 180px;
    padding: 8px;
    border: 1px solid var(--b1go-border);
    border-radius: 14px;
    background: var(--b1go-surface);
    box-shadow: 0 16px 38px rgba(15,23,42,.18);
}
.rtl .profile-popup-menu {
    right: auto;
    left: 0;
}
.profile-popup-menu a,
.profile-popup-menu button {
    width: 100%;
    min-height: 40px;
    display: flex;
    align-items: center;
    padding: 9px 11px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--b1go-text);
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.rtl .profile-popup-menu a,
.rtl .profile-popup-menu button {
    text-align: right;
}
.profile-popup-menu a:hover,
.profile-popup-menu button:hover {
    background: rgba(11,117,188,.10);
    color: var(--b1go-accent);
}
.captcha-wrapper,
.captcha-built-in-box {
    width: 100%;
    visibility: visible !important;
}
@media (max-width:760px) {
    .topbar-actions .profile-menu-wrap { display: inline-flex; }
}
@media (max-width:760px) {
    .topbar-actions .profile-menu-wrap .profile-button { display: inline-flex; }
}

/* V58 device action buttons */
.device-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.device-actions .dxbl-btn {
    min-height: 34px;
}
@media (max-width: 760px) {
    .device-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .device-actions .dxbl-btn {
        width: 100%;
    }
}

/* V66 compact device grid actions */
.devices-grid .dxbl-grid {
    min-width: 1320px;
}
.compact-device-actions {
    gap: 6px;
    flex-wrap: nowrap;
}
.compact-device-actions .device-icon-action.dxbl-btn,
.compact-device-actions .device-icon-action {
    width: 34px;
    min-width: 34px;
    height: 34px;
    min-height: 34px;
    padding: 0;
    border-radius: 999px;
    font-size: 16px;
    line-height: 1;
}
.compact-device-actions span {
    display: inline-flex;
}
@media (max-width: 760px) {
    .devices-grid .dxbl-grid {
        min-width: 1180px;
    }
    .compact-device-actions {
        flex-direction: row;
        align-items: center;
    }
    .compact-device-actions .device-icon-action.dxbl-btn,
    .compact-device-actions .device-icon-action {
        width: 34px;
        min-width: 34px;
    }
}
.devices-grid {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.devices-grid.dxbl-grid {
    min-width: 1320px;
}

/* Public Help Manual and Help Manager */
.help-shell{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr) minmax(170px,230px);gap:1rem;align-items:start}.help-toc{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;padding:1rem}.help-toc-title{font-weight:800;color:var(--b1go-accent,#0B75BC);font-size:1.02rem}.help-toc-subtitle{font-size:.82rem;color:var(--muted,#64748b);margin-bottom:.85rem}.help-tree{display:flex;flex-direction:column;gap:.25rem}.help-tree-group{display:flex;flex-direction:column;border-bottom:1px solid rgba(148,163,184,.25);padding:.35rem 0}.help-tree-link{border-radius:.65rem;color:inherit;text-decoration:none;padding:.5rem .65rem;font-weight:650}.help-tree-link.child{font-weight:500;font-size:.92rem;padding-inline-start:1.35rem}.help-tree-link:hover,.help-tree-link.active{background:rgba(11,117,188,.11);color:var(--b1go-accent,#0B75BC)}.help-admin-shortcut{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(148,163,184,.25)}.help-article{padding:clamp(1rem,2vw,2rem);min-height:60vh}.help-article-header h1{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.1;margin:.2rem 0 .5rem}.help-topic-summary{font-size:1.05rem;color:var(--muted,#64748b);max-width:72ch}.help-block{padding:1rem 0;border-top:1px solid rgba(148,163,184,.22)}.help-block:first-of-type{border-top:0}.help-block h2{font-size:1.25rem;margin:.2rem 0 .5rem}.help-block p{line-height:1.65}.help-note{border-inline-start:4px solid var(--b1go-accent,#0B75BC);background:rgba(11,117,188,.08);border-radius:.85rem;padding:.75rem 1rem}.help-procedure{padding-inline-start:1.4rem}.help-procedure li{margin:.35rem 0;line-height:1.55}.help-media-figure{margin:1rem 0;border:1px solid rgba(148,163,184,.35);border-radius:1rem;overflow:hidden;background:rgba(248,250,252,.75)}.help-media-figure img,.help-media-figure video{display:block;width:100%;max-height:620px;object-fit:contain;background:#fff}.help-media-figure figcaption{padding:.65rem .85rem;font-size:.9rem;color:var(--muted,#64748b)}.help-in-topic{position:sticky;top:1rem;padding:1rem;display:flex;flex-direction:column;gap:.45rem}.help-in-topic a{font-size:.9rem;color:inherit;text-decoration:none;border-radius:.55rem;padding:.35rem .45rem}.help-in-topic a:hover{background:rgba(11,117,188,.1);color:var(--b1go-accent,#0B75BC)}.help-manager-grid{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:1rem;margin-bottom:1rem}.help-manager-panel{padding:1rem}.help-manager-panel.wide{min-width:0}.section-heading.compact{margin-bottom:.75rem}.section-heading.compact h2{margin:.1rem 0}.row-actions.wrap{flex-wrap:wrap}.help-topic-list,.help-block-list,.help-media-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.75rem;max-height:520px;overflow:auto}.help-topic-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:.75rem;border:1px solid rgba(148,163,184,.35);background:var(--card-bg,#fff);color:inherit;border-radius:.85rem;padding:.7rem .8rem;text-align:start;cursor:pointer}.help-topic-row:hover,.help-topic-row.selected{border-color:var(--b1go-accent,#0B75BC);background:rgba(11,117,188,.08)}.help-topic-row span:first-child{display:flex;flex-direction:column;gap:.12rem}.help-topic-row small,.help-media-row small{color:var(--muted,#64748b)}.pill{border-radius:99px;padding:.2rem .5rem;background:rgba(148,163,184,.18);font-size:.76rem;white-space:nowrap}.form-grid{display:grid;gap:.75rem}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{display:flex;flex-direction:column;gap:.25rem;font-weight:650;font-size:.9rem}.form-grid input,.form-grid textarea,.form-grid select,.help-json-box{width:100%;border:1px solid rgba(148,163,184,.45);border-radius:.7rem;padding:.6rem .7rem;background:var(--card-bg,#fff);color:inherit;font:inherit}.form-grid textarea,.help-json-box{font-family:inherit;resize:vertical}.form-grid .span-2{grid-column:1/-1}.checkbox-line{flex-direction:row!important;align-items:center;gap:.5rem}.checkbox-line input{width:auto}.help-media-row{border:1px solid rgba(148,163,184,.3);border-radius:.75rem;padding:.6rem;display:flex;flex-direction:column;gap:.1rem}.help-json-box{margin-top:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:.85rem}.rtl .help-tree-link.child{padding-inline-start:.65rem;padding-inline-end:1.35rem}
@media (max-width:1100px){.help-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}.help-in-topic{display:none}.help-manager-grid{grid-template-columns:1fr}}@media (max-width:760px){.help-shell{grid-template-columns:1fr}.help-toc{position:static;max-height:none}.form-grid.two{grid-template-columns:1fr}.help-topic-row{align-items:flex-start}.public-content{padding-inline:.75rem}}

.help-refresh-icon{width:42px;height:42px;border-radius:999px;border:1px solid rgba(148,163,184,.45);background:var(--card-bg,#fff);color:var(--b1go-accent,#0B75BC);font-size:1.35rem;font-weight:800;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 22px rgba(15,23,42,.08)}.help-refresh-icon:hover{background:rgba(11,117,188,.1);border-color:var(--b1go-accent,#0B75BC)}.help-package-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.help-package-box{border:1px solid rgba(148,163,184,.32);border-radius:1rem;padding:1rem;background:rgba(248,250,252,.56)}.status.subtle{font-size:.9rem;margin-top:.75rem}@media (max-width:900px){.help-package-actions{grid-template-columns:1fr}}

/* V74 public help full-width layout: the Help Manual uses three columns, so it must not inherit the narrow public/login page width. */
.content.help-page-content,
.public-content.help-page-content {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: clamp(12px, 1.6vw, 24px);
}
.public-content.help-page-content .public-header {
    max-width: none;
    margin: 0 0 16px 0;
}
.help-page-content .help-shell {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(260px, 330px) minmax(0, 1fr) minmax(210px, 280px);
}
@media (min-width: 1600px) {
    .help-page-content .help-shell {
        grid-template-columns: minmax(290px, 370px) minmax(0, 1fr) minmax(230px, 320px);
    }
}
@media (max-width: 1100px) {
    .content.help-page-content,
    .public-content.help-page-content {
        padding: 12px;
    }
    .help-page-content .help-shell {
        grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
    }
}
@media (max-width: 760px) {
    .help-page-content .help-shell {
        grid-template-columns: 1fr;
    }
}

/* V75 Help Manager import progress */
.help-import-disabled {
    margin-top: .75rem;
    border: 1px dashed rgba(11,117,188,.45);
    border-radius: .8rem;
    padding: .7rem .85rem;
    color: var(--b1go-accent,#0B75BC);
    background: rgba(11,117,188,.07);
    font-weight: 650;
}
.help-import-progress {
    margin-top: .9rem;
    border: 1px solid rgba(148,163,184,.35);
    border-radius: .95rem;
    padding: .85rem;
    background: var(--card-bg,#fff);
}
.help-progress-top {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: center;
    font-size: .92rem;
}
.help-progress-bar {
    height: 12px;
    border-radius: 999px;
    background: rgba(148,163,184,.2);
    overflow: hidden;
    margin-top: .6rem;
}
.help-progress-bar span {
    display: block;
    height: 100%;
    min-width: 0;
    border-radius: inherit;
    background: var(--b1go-accent,#0B75BC);
    transition: width .18s ease;
}
.help-progress-log {
    margin: .65rem 0 0;
    padding-left: 1.1rem;
    color: var(--muted,#64748b);
    font-size: .86rem;
}
.rtl .help-progress-log {
    padding-left: 0;
    padding-right: 1.1rem;
}

/* V76 Help Manager: stable import input and copyable import messages */
.help-import-input.is-disabled {
    pointer-events: none;
    opacity: .55;
    filter: grayscale(.1);
}
.help-operation-result {
    margin-top: 1rem;
    border-radius: .95rem;
    padding: .85rem;
    border: 1px solid rgba(148,163,184,.35);
    background: var(--card-bg,#fff);
}
.help-operation-result.success {
    border-color: rgba(22,163,74,.35);
    background: rgba(22,163,74,.06);
}
.help-operation-result.error {
    border-color: rgba(220,38,38,.38);
    background: rgba(220,38,38,.06);
}
.help-operation-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-bottom: .55rem;
}
.help-operation-result textarea {
    width: 100%;
    min-height: 7rem;
    border-radius: .75rem;
    border: 1px solid rgba(148,163,184,.45);
    padding: .7rem .8rem;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-size: .86rem;
    color: var(--text,#0f172a);
    background: rgba(255,255,255,.8);
}
.small-link-button {
    border: 0;
    background: transparent;
    color: var(--b1go-accent,#0B75BC);
    font-weight: 700;
    cursor: pointer;
    padding: .25rem .35rem;
}
.small-link-button:hover {
    text-decoration: underline;
}

/* V77 mobile grid horizontal scrolling
   All BackOffice DevExpress grids must remain readable on phones.  The page itself keeps overflow-x hidden,
   so every grid creates its own left/right scroll area and keeps a real table width instead of squeezing fields. */
.dxbl-grid.grid-mobile,
.dxbl-grid.responsive-grid,
.grid-mobile,
.responsive-grid {
    max-width: 100%;
}

@media (max-width: 760px) {
    .content .dxbl-grid,
    .public-content .dxbl-grid,
    .content .grid-mobile,
    .content .responsive-grid,
    .public-content .grid-mobile,
    .public-content .responsive-grid {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        overflow-x: auto !important;
        overflow-y: visible;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-x pan-y;
        overscroll-behavior-x: contain;
    }

    .content .dxbl-grid table,
    .public-content .dxbl-grid table,
    .content .dxbl-grid .dxbl-grid-table,
    .public-content .dxbl-grid .dxbl-grid-table,
    .content .grid-mobile table,
    .content .responsive-grid table,
    .public-content .grid-mobile table,
    .public-content .responsive-grid table {
        min-width: 900px !important;
    }

    .content .devices-grid table,
    .content .devices-grid .dxbl-grid-table,
    .public-content .devices-grid table,
    .public-content .devices-grid .dxbl-grid-table {
        min-width: 1320px !important;
    }

    .content .child-grid table,
    .content .child-grid .dxbl-grid-table {
        min-width: 1120px !important;
    }

    .dxbl-grid.grid-mobile::before,
    .dxbl-grid.responsive-grid::before,
    .grid-mobile::before,
    .responsive-grid::before {
        content: "Swipe left/right to see all fields";
        display: block;
        padding: 0 0 8px 0;
        font-size: 12px;
        font-weight: 700;
        color: var(--b1go-muted);
    }

    .rtl .dxbl-grid.grid-mobile::before,
    .rtl .dxbl-grid.responsive-grid::before,
    .rtl .grid-mobile::before,
    .rtl .responsive-grid::before {
        content: "مرّر يميناً أو يساراً لعرض كل الحقول";
    }

    /* Do not let the older devices rule make the grid root itself wider than the phone. */
    .devices-grid.dxbl-grid {
        min-width: 0 !important;
    }

    /* Popup grids/forms must also stay inside the phone viewport. */
    .dxbl-popup,
    .dxbl-popup .dxbl-popup-content,
    .dxbl-window,
    .dxbl-window .dxbl-window-content {
        max-width: 100vw !important;
    }
}


/* V78 grid-contained horizontal scrolling
   The page must never become the horizontal scroll surface.  Long DevExpress grids scroll inside their own
   grid area on desktop, tablet and phone.  This is especially important for Devices, Portal Logs and Mobile API Logs. */
html,
body,
.shell,
.portal-shell,
.public-shell,
.portal-frame,
.portal-main-panel {
    max-width: 100%;
    overflow-x: hidden;
}

.content,
.public-content,
.card,
.dxbl-tabs,
.dxbl-tabs-content,
.dxbl-tabpage,
.dxbl-tabpage-content {
    min-width: 0;
    max-width: 100%;
}

.grid-scroll-area {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y;
    overscroll-behavior-x: contain;
    margin-bottom: 18px;
}

.grid-scroll-area > .dxbl-grid,
.content .dxbl-grid.grid-mobile,
.content .dxbl-grid.responsive-grid,
.public-content .dxbl-grid.grid-mobile,
.public-content .dxbl-grid.responsive-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.content .dxbl-grid.grid-mobile table,
.content .dxbl-grid.responsive-grid table,
.content .dxbl-grid.grid-mobile .dxbl-grid-table,
.content .dxbl-grid.responsive-grid .dxbl-grid-table,
.public-content .dxbl-grid.grid-mobile table,
.public-content .dxbl-grid.responsive-grid table,
.public-content .dxbl-grid.grid-mobile .dxbl-grid-table,
.public-content .dxbl-grid.responsive-grid .dxbl-grid-table {
    min-width: var(--b1go-grid-min-width, 980px) !important;
}

.content .devices-grid,
.public-content .devices-grid {
    --b1go-grid-min-width: 1320px;
}

.content .mobile-app-logs-grid,
.content .portal-logs-grid,
.public-content .mobile-app-logs-grid,
.public-content .portal-logs-grid {
    --b1go-grid-min-width: 1280px;
}

.content .child-grid,
.public-content .child-grid {
    --b1go-grid-min-width: 1120px;
}

/* Override the older V66/V77 rule that made the Devices grid root wider than the page.
   The min-width belongs to the internal table, not to the grid component itself. */
.devices-grid.dxbl-grid,
.dxbl-grid.devices-grid {
    min-width: 0 !important;
}

.grid-scroll-area::before {
    content: "Swipe left/right inside the grid to see all fields";
    display: none;
    padding: 0 0 8px 0;
    font-size: 12px;
    font-weight: 700;
    color: var(--b1go-muted);
}

@media (max-width: 760px) {
    .grid-scroll-area::before {
        display: block;
    }
}

.rtl .grid-scroll-area::before {
    content: "مرّر داخل الجدول يميناً أو يساراً لعرض كل الحقول";
}

/* V79 friendlier license management */
.license-control-header {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
}
.license-control-header h2,
.license-current-card h2,
.license-request-card h3 { margin:0 0 8px; }
.license-dashboard-grid { grid-template-columns:repeat(6, minmax(150px, 1fr)); }
.license-section-heading { margin-top:20px; }
.license-usage-cell { min-width:210px; }
.license-usage-text { font-size:13px; margin-bottom:6px; }
.license-progress { height:8px; border-radius:999px; overflow:hidden; background:rgba(148,163,184,.25); }
.license-progress.large { height:12px; margin:12px 0; }
.license-progress span { display:block; height:100%; background:var(--b1go-accent); border-radius:999px; transition:width .2s ease; }
.license-health-ok { color:#047857 !important; }
.license-health-warning { color:#b45309 !important; }
.license-health-danger { color:#dc2626 !important; font-weight:700; }
.license-total-preview { font-size:18px; font-weight:800; color:var(--b1go-accent); padding-top:7px; }
.license-current-card { min-height:260px; }
.license-usage-large { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin-top:16px; }
.license-usage-large strong { font-size:42px; line-height:1; }
.license-usage-large div { font-size:26px; font-weight:800; }
.license-usage-large span { color:var(--b1go-muted); font-size:13px; }
.license-status-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; align-items:center; color:var(--b1go-muted); }
.license-pill { padding:5px 10px; border-radius:999px; background:rgba(11,117,188,.12); color:var(--b1go-accent); font-weight:700; }
.large-meta { font-size:18px; font-weight:800; color:var(--b1go-text); }
.status.error { background:#fef2f2; border-color:#fecaca; color:#991b1b; }
.theme-dark .status.error { background:#450a0a; border-color:#7f1d1d; color:#fecaca; }
@media (max-width:1280px) {
    .license-dashboard-grid { grid-template-columns:repeat(3, minmax(180px, 1fr)); }
}
@media (max-width:760px) {
    .license-control-header { flex-direction:column; }
    .license-dashboard-grid { grid-template-columns:1fr; }
    .license-usage-large { display:block; }
    .license-usage-large strong { font-size:36px; }
    .license-usage-large div { font-size:23px; }
}

/* V82 SAP installation safety warning */
.status.warning { background:#fffbeb; border-color:#f59e0b; color:#92400e; }
.theme-dark .status.warning { background:#451a03; border-color:#b45309; color:#fde68a; }
.popup-actions { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:1rem; }

/* V83/V85 Help Manager AI writing assistant */
.field-with-ai > span {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .25rem;
}
.ask-ai-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    border: 1px solid #0a7db9;
    background: linear-gradient(180deg, #f3fbff 0%, #e1f3ff 100%);
    color: #075f8d;
    border-radius: 999px;
    padding: 0;
    font-size: 1rem;
    line-height: 1;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(10, 125, 185, .16);
}
.ask-ai-mini:hover {
    background: #d9f0ff;
    transform: translateY(-1px);
}
.ask-ai-mini:focus-visible {
    outline: 2px solid #0a7db9;
    outline-offset: 2px;
}
.ask-ai-icon {
    display: inline-block;
    transform: translateY(-1px);
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.help-ai-popup textarea,
.help-ai-popup input,
.help-ai-popup select { width: 100%; }
.help-ai-popup .copyable-error textarea {
    width: 100%;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}
.ai-configured {
    display: inline-flex;
    margin-left: .75rem;
    color: #107c10;
    font-weight: 700;
}

/* V84 Help Manager HTML editing cleanup */
.help-manager-panel .form-grid label {
    font-weight: 400;
}
.help-manager-panel .field-label,
.help-manager-panel .field-label-row,
.help-manager-panel .form-grid label > span:first-child {
    font-weight: 650;
    color: var(--b1go-text, #172033);
}
.help-manager-panel input,
.help-manager-panel textarea,
.help-manager-panel select,
.help-manager-panel .dxbl-edit-input,
.help-manager-panel .dxbl-html-editor,
.help-manager-panel .dxbl-html-editor * {
    font-weight: 400;
}
.help-manager-panel .field-label-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.5rem;
    margin-bottom:.35rem;
}
.help-manager-panel .form-field {
    display:flex;
    flex-direction:column;
    gap:.25rem;
}
.help-manager-panel .field-help {
    color: var(--muted,#64748b);
    font-size:.8rem;
    line-height:1.35;
    font-weight:400;
}
.help-html-editor {
    border-radius:.85rem;
    overflow:hidden;
}
.help-html-editor .dxbl-html-editor-toolbar,
.help-html-editor .dxbl-toolbar,
.help-html-editor .dxbl-toolbar * {
    font-weight:400;
}
.help-html-editor .dxbl-html-editor-content,
.help-html-editor .dxbl-html-editor-content * {
    font-weight:400;
}
.help-html-editor b,
.help-html-editor strong,
.help-html-editor .dxbl-html-editor-content b,
.help-html-editor .dxbl-html-editor-content strong {
    font-weight:700;
}
.help-article .formatted-html {
    line-height:1.65;
}
.help-article .formatted-html p,
.help-article .formatted-html ul,
.help-article .formatted-html ol,
.help-article .formatted-html table,
.help-article .formatted-html blockquote {
    margin-top:.55rem;
    margin-bottom:.55rem;
}
.help-article .formatted-html ul,
.help-article .formatted-html ol {
    padding-inline-start:1.4rem;
}
.help-article .formatted-html table {
    width:100%;
    border-collapse:collapse;
    margin:1rem 0;
}
.help-article .formatted-html th,
.help-article .formatted-html td {
    border:1px solid rgba(148,163,184,.45);
    padding:.55rem .65rem;
    vertical-align:top;
}
.help-article .formatted-html th {
    background:rgba(148,163,184,.12);
}

/* V86 Help Manager AI popup cleanup */
.help-ai-popup .hint,
.help-ai-popup .form-grid,
.help-ai-popup .form-grid label,
.help-ai-popup .ai-form-field,
.help-ai-popup .ai-form-field * {
    font-weight: 400;
}
.help-ai-popup .ai-form-field {
    display:flex;
    flex-direction:column;
    gap:.3rem;
}
.help-ai-popup .field-label {
    font-weight:600;
    color:var(--b1go-text,#172033);
    font-size:.9rem;
}
.help-ai-popup textarea,
.help-ai-popup input,
.help-ai-popup select {
    font-weight:400;
}
.help-ai-popup .help-ai-html-editor,
.help-ai-popup .help-ai-html-editor * {
    font-weight:400;
}
.help-ai-popup .help-ai-html-editor b,
.help-ai-popup .help-ai-html-editor strong {
    font-weight:700;
}

/* V86 customer devices grid readability */
.devices-grid .dxbl-grid-table,
.devices-grid table {
    min-width: 1280px;
}
.devices-grid .dxbl-grid-cell,
.devices-grid td {
    white-space: nowrap;
}
.devices-detail-title {
    display:flex;
    align-items:center;
    gap:.5rem;
}
.devices-detail-title::after {
    content:"Resize columns or scroll inside the device grid to read the full device key.";
    font-size:.78rem;
    font-weight:400;
    color:var(--muted,#64748b);
}

/* V86 customer license page */
.license-page-hero {
    margin-bottom:1rem;
}
.license-customer-overview {
    display:grid;
    grid-template-columns:minmax(280px, 1.1fr) minmax(320px, 1.4fr);
    gap:1.25rem;
    align-items:stretch;
    margin-bottom:1rem;
}
.license-overview-main h2 {
    margin:.2rem 0 .8rem;
}
.license-overview-stats {
    display:grid;
    grid-template-columns:repeat(3, minmax(120px,1fr));
    gap:.75rem;
}
.license-small-card {
    border:1px solid rgba(148,163,184,.28);
    border-radius:1rem;
    padding:.85rem;
    background:rgba(248,250,252,.72);
    display:flex;
    flex-direction:column;
    gap:.35rem;
}
.theme-dark .license-small-card {
    background:rgba(15,23,42,.45);
}
.license-small-card span {
    color:var(--b1go-muted,#64748b);
    font-size:.82rem;
}
.license-small-card strong {
    font-size:1.2rem;
    color:var(--b1go-text,#172033);
}
.license-customer-workspace {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);
    gap:1rem;
    margin-bottom:1rem;
}
.license-card-header-row {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    align-items:flex-start;
    margin-bottom:1rem;
}
.license-card-header-row h2,
.license-card-header-row h3 {
    margin:.15rem 0 .25rem;
}
.license-change-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.75rem;
    margin:1rem 0;
}
.license-quantity-panel {
    border:1px solid rgba(148,163,184,.28);
    border-radius:1rem;
    padding:1rem;
    background:rgba(248,250,252,.72);
    min-height:104px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:.4rem;
}
.theme-dark .license-quantity-panel {
    background:rgba(15,23,42,.45);
}
.license-quantity-panel span,
.license-notes-area label > span {
    color:var(--b1go-muted,#64748b);
    font-size:.86rem;
    font-weight:600;
}
.license-quantity-panel strong {
    font-size:1.45rem;
}
.license-quantity-panel.emphasized {
    border-color:rgba(11,117,188,.45);
    background:rgba(11,117,188,.08);
}
.license-notes-area label {
    display:flex;
    flex-direction:column;
    gap:.4rem;
    font-weight:400;
}
.license-primary-actions {
    margin-top:1rem;
}
.license-next-steps-card h3,
.license-history-card h2 {
    margin-top:0;
}
.compact-next-step-list {
    display:flex;
    flex-direction:column;
    gap:.75rem;
}
.license-support-box {
    margin-top:1rem;
    border-radius:1rem;
    border:1px solid rgba(148,163,184,.28);
    padding:1rem;
    display:flex;
    flex-direction:column;
    gap:.3rem;
    background:rgba(11,117,188,.07);
}
.muted-pill {
    background:rgba(148,163,184,.22);
    color:var(--b1go-muted,#64748b);
}
.license-history-card {
    margin-top:1rem;
}
@media (max-width:1180px) {
    .license-customer-overview,
    .license-customer-workspace {
        grid-template-columns:1fr;
    }
}
@media (max-width:760px) {
    .license-overview-stats,
    .license-change-grid {
        grid-template-columns:1fr;
    }
    .license-card-header-row {
        flex-direction:column;
    }
}

/* V88E merged license and device dashboard */
.license-dashboard-card {
    display:grid;
    grid-template-columns:minmax(320px,1.05fr) minmax(320px,1.45fr);
    gap:1.25rem;
    align-items:center;
    margin-bottom:1rem;
}
.license-donut-panel {
    display:flex;
    gap:1.25rem;
    align-items:center;
    min-width:0;
}
.license-donut {
    width:156px;
    min-width:156px;
    height:156px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:conic-gradient(var(--b1go-accent,#0B75BC) 0 var(--license-used,0%), rgba(148,163,184,.24) var(--license-used,0%) 100%);
    box-shadow:inset 0 0 0 1px rgba(148,163,184,.22);
}
.license-donut-center {
    width:104px;
    height:104px;
    border-radius:50%;
    background:var(--card-bg,#fff);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    box-shadow:0 8px 24px rgba(15,23,42,.08);
}
.theme-dark .license-donut-center {
    background:#111827;
}
.license-donut-center strong {
    font-size:2rem;
    line-height:1;
}
.license-donut-center span {
    color:var(--b1go-muted,#64748b);
    font-weight:700;
}
.customer-important-stats {
    align-self:stretch;
}
.merged-device-license-card {
    margin-bottom:1rem;
}
.license-expand-card {
    margin-bottom:1rem;
    padding:0;
    overflow:hidden;
}
.license-expand-card > summary {
    cursor:pointer;
    list-style:none;
    padding:1rem 1.15rem;
    font-weight:800;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:1px solid rgba(148,163,184,.22);
}
.license-expand-card > summary::-webkit-details-marker { display:none; }
.license-expand-card > summary::after {
    content:"+";
    font-size:1.25rem;
    color:var(--b1go-accent,#0B75BC);
}
.license-expand-card[open] > summary::after { content:"−"; }
.license-expand-card > *:not(summary) {
    margin-left:1.15rem;
    margin-right:1.15rem;
}
.license-expand-card > *:last-child {
    margin-bottom:1rem;
}
.simple-license-change-grid {
    margin-top:1rem;
}
.device-actions-simplified {
    flex-wrap:nowrap;
    gap:.4rem;
}
.device-actions-simplified .device-main-action.dxbl-btn,
.device-actions-simplified .device-main-action {
    min-width:88px;
    min-height:34px;
    border-radius:.75rem;
    font-size:.84rem;
}
.device-action-menu {
    display:flex;
    flex-direction:column;
    gap:.65rem;
    padding:.25rem;
}
.device-action-menu .dxbl-btn {
    width:100%;
    justify-content:flex-start;
}
@media (max-width:1180px) {
    .license-dashboard-card {
        grid-template-columns:1fr;
    }
}
@media (max-width:760px) {
    .license-donut-panel {
        flex-direction:column;
        align-items:flex-start;
    }
    .license-donut {
        width:132px;
        min-width:132px;
        height:132px;
    }
    .license-donut-center {
        width:88px;
        height:88px;
    }
    .device-actions-simplified {
        flex-direction:row;
    }
}

.external-login-block { margin: 12px 0 14px; text-align: center; }
.external-login-title { font-size: .9rem; opacity: .75; margin-bottom: 8px; }
.external-login-buttons { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.external-login-button { min-width: 150px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 8px 14px; border: 1px solid rgba(0,0,0,.14); border-radius: 10px; background: #fff; color: #1f2937; text-decoration: none; font-weight: 600; box-shadow: 0 1px 2px rgba(0,0,0,.06); }
.external-login-button:hover { border-color: rgba(0,0,0,.28); box-shadow: 0 3px 10px rgba(0,0,0,.08); text-decoration: none; }
.external-login-button.disabled { opacity: .45; pointer-events: none; }
.external-login-logo { width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; }
.external-login-logo svg { width: 22px; height: 22px; display: block; }
.external-login-note { margin-top: 8px; font-size: .82rem; opacity: .65; }
@media (max-width: 600px) {
    .external-login-buttons { flex-direction: column; }
    .external-login-button { width: 100%; }
}

.device-grid-toolbar-card {
    margin: 0 0 0.75rem 0;
    padding: 0.75rem 1rem;
}

.device-grid-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.device-toolbar-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 220px;
}

.device-toolbar-info span {
    color: var(--muted-text, #64748b);
    font-size: 0.9rem;
    word-break: break-word;
}

.device-toolbar-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.license-device-toolbar-card {
    border-style: dashed;
    background: rgba(248,250,252,.72);
}

@media (max-width: 720px) {
    .device-grid-toolbar {
        align-items: stretch;
    }

    .device-toolbar-actions {
        justify-content: flex-start;
    }
}

/* V89C polished DevExpress device settings and authorization tree editor */
.device-settings-shell {
    min-height: 420px;
}
.device-settings-shell .dxbl-popup-body,
.device-settings-shell .dxbl-fl {
    max-width: 100%;
}
.app-settings-menu-layout {
    display: grid;
    grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.app-settings-menu {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--b1go-border);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(248,250,252,.96), rgba(241,245,249,.82));
    position: sticky;
    top: 0;
    box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
.theme-dark .app-settings-menu {
    background: rgba(15,23,42,.78);
}
.settings-menu-button,
.settings-menu-button.dxbl-btn {
    width: 100%;
    min-height: 42px;
    justify-content: flex-start;
    text-align: left;
    font-weight: 700;
    border-radius: 12px;
}
.rtl .settings-menu-button,
.rtl .settings-menu-button.dxbl-btn {
    justify-content: flex-end;
    text-align: right;
}
.app-settings-editor {
    min-width: 0;
    padding: 0;
}
.device-settings-editor-card {
    border: 1px solid var(--b1go-border);
    border-radius: 18px;
    background: var(--b1go-surface);
    padding: 16px;
    box-shadow: 0 10px 22px rgba(15,23,42,.05);
}
.device-settings-section-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--b1go-border);
}
.device-settings-section-title {
    font-size: 18px;
    line-height: 1.2;
    font-weight: 800;
    color: var(--b1go-text);
}
.device-setting-panel {
    border: 1px solid var(--b1go-border);
    border-radius: 16px;
    padding: 14px;
    background: rgba(248,250,252,.65);
}
.theme-dark .device-setting-panel {
    background: rgba(15,23,42,.48);
}
.device-setting-panel.authorization {
    padding: 0;
    overflow: hidden;
    background: var(--b1go-surface);
}
.device-setting-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--b1go-border);
    background: rgba(148,163,184,.08);
}
.device-setting-title {
    font-weight: 800;
    color: var(--b1go-text);
}
.device-setting-description {
    color: var(--b1go-muted);
    font-size: 12px;
    margin-top: 3px;
    line-height: 1.35;
}
.device-setting-panel .setting-meta {
    margin: 10px 16px 14px;
}
.device-setting-lock {
    flex: 0 0 auto;
    white-space: nowrap;
}
.mobile-auth-editor {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    padding: 14px 16px 16px;
}
.mobile-auth-editor-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}
.mobile-auth-editor-title {
    font-weight: 800;
    color: var(--b1go-text);
}
.mobile-auth-hint {
    margin-top: 2px;
    margin-bottom: 0;
}
.mobile-auth-groups {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.mobile-auth-group {
    border: 1px solid var(--b1go-border);
    border-radius: 16px;
    background: var(--b1go-surface);
    overflow: hidden;
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
}
.mobile-auth-group.expanded {
    border-color: rgba(11,117,188,.40);
}
.mobile-auth-group-bar {
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 10px;
    background: rgba(148,163,184,.08);
}
.mobile-auth-group-button,
.mobile-auth-group-button.dxbl-btn {
    width: 100%;
    min-height: 42px;
    justify-content: flex-start;
    text-align: left;
    font-weight: 800;
    border-radius: 12px;
}
.rtl .mobile-auth-group-button,
.rtl .mobile-auth-group-button.dxbl-btn {
    justify-content: flex-end;
    text-align: right;
}
.mobile-auth-group-summary {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.mobile-auth-level-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--b1go-border);
    background: var(--b1go-surface);
    color: var(--b1go-muted);
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.mobile-auth-level-pill.hidden {
    color: #b91c1c;
    background: rgba(254,226,226,.65);
    border-color: rgba(248,113,113,.32);
}
.theme-dark .mobile-auth-level-pill.hidden {
    background: rgba(127,29,29,.35);
    color: #fecaca;
}
.mobile-auth-module-list {
    display: flex;
    flex-direction: column;
    background: var(--b1go-surface);
}
.mobile-auth-module-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(190px, 240px);
    align-items: center;
    gap: 14px;
    padding: 11px 14px;
    border-top: 1px solid var(--b1go-border);
}
.mobile-auth-module-row:hover {
    background: rgba(11,117,188,.05);
}
.mobile-auth-module-title {
    font-weight: 700;
    color: var(--b1go-text);
}
.mobile-auth-module-key {
    color: var(--b1go-muted);
    font-size: 12px;
    margin-top: 2px;
    word-break: break-word;
}
.mobile-auth-combo,
.mobile-auth-combo.dxbl-combobox {
    width: 100%;
}
@media (max-width: 900px) {
    .app-settings-menu-layout {
        grid-template-columns: 1fr;
    }
    .app-settings-menu {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 760px) {
    .device-settings-editor-card {
        padding: 12px;
    }
    .device-settings-section-header,
    .device-setting-panel-header {
        flex-direction: column;
    }
    .mobile-auth-group-bar,
    .mobile-auth-module-row {
        grid-template-columns: 1fr;
    }
    .mobile-auth-group-summary {
        justify-content: flex-start;
    }
}
@media (max-width: 520px) {
    .app-settings-menu {
        grid-template-columns: 1fr;
    }
}

/* V89D customer-friendly device portal redesign */
.customer-portal-overview,
.device-overview-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 14px;
    margin: 0 0 16px;
}
.device-overview-card {
    border: 1px solid var(--b1go-border);
    border-radius: 18px;
    background: var(--b1go-surface);
    padding: 16px;
    box-shadow: 0 10px 24px rgba(15,23,42,.055);
    min-height: 94px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 10px;
}
.device-overview-card.wide { grid-column: span 2; }
.device-overview-card.muted { background: linear-gradient(180deg, rgba(248,250,252,.92), rgba(241,245,249,.82)); }
.theme-dark .device-overview-card.muted { background: rgba(15,23,42,.55); }
.device-overview-card span {
    color: var(--b1go-muted);
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .055em;
}
.device-overview-card strong {
    color: var(--b1go-text);
    font-size: clamp(22px, 3vw, 34px);
    font-weight: 850;
    line-height: 1;
    overflow-wrap: anywhere;
}
.customer-device-toolbar-card {
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(11,117,188,.08), rgba(148,163,184,.08));
    border-color: rgba(11,117,188,.18);
}
.friendly-actions { gap: 8px; }
.device-toolbar-action-button,
.device-toolbar-action-button.dxbl-btn {
    min-height: 38px;
    border-radius: 12px;
    font-weight: 700;
}
.selected-device-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    margin: 0 0 14px;
    border-radius: 18px;
    border-color: rgba(11,117,188,.24);
    background: linear-gradient(135deg, rgba(11,117,188,.10), rgba(255,255,255,.92));
}
.theme-dark .selected-device-panel { background: rgba(11,117,188,.14); }
.selected-device-check,
.device-settings-context-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--b1go-accent);
    color: #fff;
    font-weight: 850;
    box-shadow: 0 10px 20px rgba(11,117,188,.20);
}
.selected-device-main { min-width: 0; }
.selected-device-label {
    color: var(--b1go-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.selected-device-title {
    color: var(--b1go-text);
    font-size: 18px;
    font-weight: 850;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.selected-device-subtitle,
.device-settings-context-meta {
    color: var(--b1go-muted);
    font-size: 13px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}
.selected-device-badges,
.device-settings-context-badges {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.device-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--b1go-border);
    background: var(--b1go-surface);
    color: var(--b1go-text);
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
}
.device-status-pill.ok {
    color: #047857;
    border-color: rgba(16,185,129,.28);
    background: rgba(16,185,129,.10);
}
.device-status-pill.warning {
    color: #b45309;
    border-color: rgba(245,158,11,.32);
    background: rgba(245,158,11,.12);
}
.device-status-pill.muted {
    color: var(--b1go-muted);
    background: rgba(148,163,184,.10);
}
.b1go-device-row-selected > td,
.b1go-device-row-selected > th,
.dxbl-grid .b1go-device-row-selected > td,
.dxbl-grid .b1go-device-row-selected > th {
    background: rgba(11,117,188,.16) !important;
    color: var(--b1go-text) !important;
}
.b1go-device-row-selected > td:first-child,
.dxbl-grid .b1go-device-row-selected > td:first-child {
    box-shadow: inset 5px 0 0 var(--b1go-accent);
}
.rtl .b1go-device-row-selected > td:first-child,
.rtl .dxbl-grid .b1go-device-row-selected > td:first-child {
    box-shadow: inset -5px 0 0 var(--b1go-accent);
}
.devices-grid .dxbl-grid-table tbody tr:hover > td,
.devices-grid table tbody tr:hover > td {
    background: rgba(11,117,188,.07);
}
.device-settings-context-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    border: 1px solid rgba(11,117,188,.20);
    border-radius: 20px;
    padding: 14px 16px;
    margin-bottom: 10px;
    background: linear-gradient(135deg, rgba(11,117,188,.08), rgba(248,250,252,.94));
}
.theme-dark .device-settings-context-card { background: rgba(15,23,42,.60); }
.device-settings-context-main { min-width: 0; }
.device-settings-context-title {
    color: var(--b1go-text);
    font-size: 20px;
    font-weight: 850;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.device-settings-scope-hint {
    color: var(--b1go-muted);
    font-size: 13px;
    line-height: 1.45;
    margin: 0 0 14px;
}
.app-settings-menu-title {
    color: var(--b1go-text);
    font-weight: 850;
    font-size: 14px;
    padding: 2px 4px 0;
}
.app-settings-menu-hint {
    color: var(--b1go-muted);
    font-size: 12px;
    line-height: 1.35;
    padding: 0 4px 6px;
}
.device-settings-section-subtitle {
    color: var(--b1go-muted);
    font-size: 13px;
    margin-top: 3px;
    line-height: 1.35;
}
.device-settings-count-pill {
    align-self: center;
    border-radius: 999px;
    padding: 5px 12px;
    border: 1px solid var(--b1go-border);
    background: rgba(148,163,184,.10);
    color: var(--b1go-muted);
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}
@media (max-width: 1180px) {
    .device-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .device-overview-card.wide { grid-column: span 2; }
}
@media (max-width: 760px) {
    .device-overview-grid { grid-template-columns: 1fr; }
    .device-overview-card.wide { grid-column: span 1; }
    .selected-device-panel,
    .device-settings-context-card { grid-template-columns: 1fr; align-items: stretch; }
    .selected-device-badges,
    .device-settings-context-badges { justify-content: flex-start; }
    .friendly-actions .dxbl-btn,
    .device-toolbar-action-button { width: 100%; }
}

/* V95 database-managed SSO and restored DevExpress device action icons */
.sso-provider-header { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; }
.device-icon-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.device-icon-toolbar > span, .compact-device-actions > span { display:inline-flex; }
.device-toolbar-icon-button, .device-toolbar-icon-button.dxbl-btn { width:42px; min-width:42px; height:42px; min-height:42px; padding:0; border-radius:12px; }
.b1go-action-icon { display:inline-block; width:18px; height:18px; background-color:currentColor; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; -webkit-mask-size:contain; mask-size:contain; }
.b1go-icon-settings { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.14 12.94c.04-.31.06-.63.06-.94s-.02-.63-.06-.94l2.03-1.58-1.92-3.32-2.39.96a7.4 7.4 0 0 0-1.63-.95L14.87 3h-3.74l-.36 3.17c-.58.24-1.13.56-1.63.95l-2.39-.96-1.92 3.32 2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58 1.92 3.32 2.39-.96c.5.39 1.05.71 1.63.95l.36 3.17h3.74l.36-3.17c.58-.24 1.13-.56 1.63-.95l2.39.96 1.92-3.32-2.03-1.58ZM13 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.14 12.94c.04-.31.06-.63.06-.94s-.02-.63-.06-.94l2.03-1.58-1.92-3.32-2.39.96a7.4 7.4 0 0 0-1.63-.95L14.87 3h-3.74l-.36 3.17c-.58.24-1.13.56-1.63.95l-2.39-.96-1.92 3.32 2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58 1.92 3.32 2.39-.96c.5.39 1.05.71 1.63.95l.36 3.17h3.74l.36-3.17c.58-.24 1.13-.56 1.63-.95l2.39.96 1.92-3.32-2.03-1.58ZM13 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Z'/%3E%3C/svg%3E"); }
.b1go-icon-bell { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22a2.4 2.4 0 0 0 2.35-2h-4.7A2.4 2.4 0 0 0 12 22Zm7-5v-6a7 7 0 0 0-5-6.71V3a2 2 0 1 0-4 0v1.29A7 7 0 0 0 5 11v6l-2 2h18l-2-2Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22a2.4 2.4 0 0 0 2.35-2h-4.7A2.4 2.4 0 0 0 12 22Zm7-5v-6a7 7 0 0 0-5-6.71V3a2 2 0 1 0-4 0v1.29A7 7 0 0 0 5 11v6l-2 2h18l-2-2Z'/%3E%3C/svg%3E"); }
.b1go-icon-upload-settings { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 16h2V8.83l2.59 2.58L17 10l-5-5-5 5 1.41 1.41L11 8.83V16Zm-7 4h16v-2H4v2Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 16h2V8.83l2.59 2.58L17 10l-5-5-5 5 1.41 1.41L11 8.83V16Zm-7 4h16v-2H4v2Z'/%3E%3C/svg%3E"); }
.b1go-icon-shield { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5.05 3.41 9.77 8 11 4.59-1.23 8-5.95 8-11V5l-8-3Zm-1 14-4-4 1.41-1.41L11 13.17l4.59-4.58L17 10l-6 6Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5.05 3.41 9.77 8 11 4.59-1.23 8-5.95 8-11V5l-8-3Zm-1 14-4-4 1.41-1.41L11 13.17l4.59-4.58L17 10l-6 6Z'/%3E%3C/svg%3E"); }
.b1go-icon-policy { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5Zm-7.74 9L12 15.3 19.74 11 21 13l-9 5-9-5 1.26-2Zm0 5L12 20.3 19.74 16 21 18l-9 5-9-5 1.26-2Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 9 5-9 5-9-5 9-5Zm-7.74 9L12 15.3 19.74 11 21 13l-9 5-9-5 1.26-2Zm0 5L12 20.3 19.74 16 21 18l-9 5-9-5 1.26-2Z'/%3E%3C/svg%3E"); }
.b1go-icon-refresh { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.65 6.35A8 8 0 1 0 20 12h-2a6 6 0 1 1-1.76-4.24L13 11h8V3l-3.35 3.35Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.65 6.35A8 8 0 1 0 20 12h-2a6 6 0 1 1-1.76-4.24L13 11h8V3l-3.35 3.35Z'/%3E%3C/svg%3E"); }
.b1go-icon-note { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h18v14H8l-5 4V3Zm4 4v2h10V7H7Zm0 4v2h7v-2H7Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3h18v14H8l-5 4V3Zm4 4v2h10V7H7Zm0 4v2h7v-2H7Z'/%3E%3C/svg%3E"); }
.b1go-icon-key { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 14a5 5 0 1 1 4.9-6H22v4h-2v3h-3v3h-4.1A5 5 0 0 1 7 14Zm0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 14a5 5 0 1 1 4.9-6H22v4h-2v3h-3v3h-4.1A5 5 0 0 1 7 14Zm0-2a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z'/%3E%3C/svg%3E"); }
.b1go-icon-lock { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 8h-1V6a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v10h14V10a2 2 0 0 0-2-2Zm-7-2a2 2 0 1 1 4 0v2h-4V6Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 8h-1V6a4 4 0 0 0-8 0v2H7a2 2 0 0 0-2 2v10h14V10a2 2 0 0 0-2-2Zm-7-2a2 2 0 1 1 4 0v2h-4V6Z'/%3E%3C/svg%3E"); }
.b1go-icon-delete { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12ZM8 4l1-1h6l1 1h4v2H4V4h4Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12ZM8 4l1-1h6l1 1h4v2H4V4h4Z'/%3E%3C/svg%3E"); }
.b1go-icon-unlock { -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 8h-7V6a2 2 0 0 1 3.74-1l1.74-1A4 4 0 0 0 8 6v2H7a2 2 0 0 0-2 2v10h14V10a2 2 0 0 0-2-2Z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 8h-7V6a2 2 0 0 1 3.74-1l1.74-1A4 4 0 0 0 8 6v2H7a2 2 0 0 0-2 2v10h14V10a2 2 0 0 0-2-2Z'/%3E%3C/svg%3E"); }
@media (max-width:760px) { .friendly-actions.device-icon-toolbar { flex-direction:row; flex-wrap:wrap; } .friendly-actions.device-icon-toolbar .dxbl-btn, .device-toolbar-icon-button, .device-toolbar-icon-button.dxbl-btn { width:42px; min-width:42px; } }

.secret-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    width: 100%;
}

/* V101 public authentication and company-user management */
.auth-shell {
    min-height: calc(100vh - 112px);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 28px 12px 48px;
}
.auth-card {
    width: 100%;
    max-width: 430px;
    margin: 0;
    padding: 26px;
    border: 1px solid var(--b1go-border);
    border-radius: 18px;
    background: var(--b1go-surface);
    box-shadow: 0 18px 48px rgba(15, 23, 42, .12);
}
.auth-card-compact { max-width: 390px; text-align: center; }
.auth-header { margin-bottom: 18px; }
.auth-header h1 { margin: 0 0 4px; font-size: 25px; line-height: 1.2; color: var(--b1go-text); }
.auth-subtitle { margin: 0; color: var(--b1go-muted); font-size: 15px; line-height: 1.45; }
.auth-form .dxbl-fl-item { margin-bottom: 3px; }
.auth-form .dxbl-text-edit { min-height: 46px; border-radius: 10px; }
.auth-options { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.auth-primary-button, .auth-primary-button.dxbl-btn { width: 100%; min-height: 47px; border-radius: 10px; font-weight: 700; }
.auth-footer { margin-top: 18px; text-align: center; color: var(--b1go-text); }
.auth-footer a { font-weight: 650; text-decoration: none; }
.auth-status { margin-top: 8px; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--b1go-accent) 9%, transparent); color: var(--b1go-text); line-height: 1.4; }
.auth-status-error { background: #fef2f2; color: #991b1b; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 16px 0 12px; color: var(--b1go-muted); font-size: 13px; }
.auth-divider::before, .auth-divider::after { content: ""; height: 1px; flex: 1; background: var(--b1go-border); }
.external-login-block { margin: 0; }
.external-login-buttons { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; width: 100%; }
.external-login-button { min-width: 0; min-height: 44px; border-color: var(--b1go-border); box-shadow: none; }
.external-login-button:hover { border-color: var(--b1go-accent); box-shadow: 0 4px 12px rgba(15,23,42,.08); }
.external-login-loading { color: var(--b1go-muted); font-weight: 400; animation: b1go-auth-pulse 1.2s ease-in-out infinite alternate; }
@keyframes b1go-auth-pulse { from { opacity: .45; } to { opacity: .85; } }
.turnstile-host { width: 100%; min-height: 65px; display: flex; justify-content: center; overflow: hidden; }
.captcha-loading { min-height: 52px; display: flex; align-items: center; justify-content: center; color: var(--b1go-muted); }
.captcha-built-in-box { border-color: var(--b1go-border); background: color-mix(in srgb, var(--b1go-surface) 92%, var(--b1go-bg)); }
.company-users-layout { align-items: stretch; }
.company-user-summary { min-height: 180px; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 600px) {
    .auth-shell { min-height: auto; padding: 8px 0 24px; }
    .auth-card { max-width: none; padding: 18px; border-radius: 14px; box-shadow: 0 8px 24px rgba(15, 23, 42, .09); }
    .auth-header h1 { font-size: 23px; }
    .external-login-buttons { grid-template-columns: 1fr; }
    .auth-options { align-items: center; }
}


/* V101K portal reconstruction: permanently docked desktop navigation and simplified dashboard */
@media (min-width: 761px) {
    .portal-frame {
        display: block;
        min-height: 100vh;
    }
    .portal-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        width: 280px;
        height: 100vh;
        min-height: 100vh;
        overflow-y: auto;
        transform: none !important;
    }
    .portal-main-panel {
        min-height: 100vh;
        margin-left: 280px;
        width: calc(100% - 280px);
    }
}

.dashboard-page-hero {
    margin-bottom: 14px;
}
.dashboard-license-summary-card {
    margin-bottom: 16px;
}
.dashboard-license-heading h2 {
    margin: 0 0 10px;
}
.dashboard-license-stats {
    grid-template-columns: repeat(3, minmax(145px, 1fr));
}
.dashboard-status-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(190px, 1fr));
    gap: 16px;
    align-items: stretch;
}
.dashboard-status-card {
    margin-bottom: 0;
    min-height: 116px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    border-top: 4px solid var(--b1go-accent);
}
.dashboard-status-card > div {
    min-width: 0;
}
.dashboard-status-card span {
    display: block;
    color: var(--b1go-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom: 7px;
}
.dashboard-status-card strong {
    display: block;
    font-size: 30px;
    line-height: 1.1;
}
.dashboard-status-card strong.date-value {
    font-size: 21px;
}
.dashboard-status-card.needs-attention {
    border-top-color: #dc2626;
}
.dashboard-status-card.needs-attention strong {
    color: #dc2626;
}
.dashboard-status-card.is-clear {
    border-top-color: #059669;
}
.webhook-status-card {
    align-items: stretch;
}
.webhook-status-card > div {
    flex: 1 1 50%;
}
.webhook-status-card > div + div {
    border-left: 1px solid var(--b1go-border);
    padding-left: 14px;
}
.rtl .webhook-status-card > div + div {
    border-left: 0;
    border-right: 1px solid var(--b1go-border);
    padding-left: 0;
    padding-right: 14px;
}
@media (max-width: 1250px) {
    .dashboard-status-grid {
        grid-template-columns: repeat(2, minmax(190px, 1fr));
    }
}
@media (max-width: 900px) {
    .dashboard-license-stats {
        grid-template-columns: repeat(2, minmax(145px, 1fr));
    }
}
@media (max-width: 760px) {
    .portal-main-panel {
        width: 100%;
        margin: 0;
    }
    .dashboard-status-grid,
    .dashboard-license-stats {
        grid-template-columns: 1fr;
    }
    .dashboard-status-card {
        min-height: 96px;
    }
}


/* V101L: consolidated portal navigation and workspaces */
.dashboard-card-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.dashboard-card-link:hover,
.dashboard-card-link:focus-visible {
    color: inherit;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .12);
    border-color: color-mix(in srgb, var(--b1go-accent) 55%, transparent);
    outline: none;
}
/* V101O: compact account workspace, clear settings/security tabs, and improved billing */
.account-workspace-shell {
    padding: 0;
    overflow: hidden;
}
.account-workspace-heading {
    padding: 22px 24px 14px;
}
.account-workspace-heading .page-title {
    margin-bottom: 4px;
}
.account-workspace-heading .page-subtitle {
    margin-bottom: 0;
    max-width: 980px;
}
.account-workspace-tabs {
    margin: 0;
    overflow: hidden;
    border-top: 1px solid var(--b1go-border);
    border-bottom: 1px solid var(--b1go-border);
    background: color-mix(in srgb, var(--b1go-surface) 92%, var(--b1go-bg));
}
.account-workspace-tabs .dxbl-tabs-tablist {
    padding: .4rem .55rem;
    gap: .25rem;
}
.account-workspace-content {
    min-width: 0;
    padding: 0 24px 24px;
}
.account-workspace-content .small-card,
.account-workspace-content .settings-card,
.account-workspace-content .account-inner-form {
    max-width: none;
    margin: 0;
}
.account-workspace-content .dxbl-text-edit,
.account-workspace-content .dxbl-combobox,
.account-workspace-content .dxbl-memo-edit {
    width: 100%;
}
.account-secondary-tabs {
    margin: 0;
}
.account-secondary-tabs > .dxbl-tabs-tablist {
    margin: 0 -24px 0;
    padding: .45rem 24px;
    gap: .25rem;
    border-bottom: 1px solid var(--b1go-border);
    background: color-mix(in srgb, var(--b1go-bg) 60%, var(--b1go-surface));
}
.profile-tabs .small-card,
.sap-b1-tabs .small-card,
.security-section-tabs .small-card {
    padding-top: 18px;
}
.account-settings-summary {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    margin: 18px 0;
}
.settings-section-tabs {
    margin-top: 2px;
}
.settings-panel {
    padding: 20px 0 4px;
}
.settings-value-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(240px, 1fr));
    gap: 12px;
}
.setting-row {
    min-width: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid var(--b1go-border);
    border-radius: 12px;
    background: color-mix(in srgb, var(--b1go-surface) 90%, var(--b1go-bg));
}
.setting-row span {
    color: var(--b1go-muted);
    line-height: 1.35;
}
.setting-row b {
    max-width: 62%;
    text-align: end;
    overflow-wrap: anywhere;
}
.settings-panel-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}
.settings-panel-divider {
    height: 1px;
    margin: 20px 0;
    background: var(--b1go-border);
}
.settings-panel-subsection h3 {
    margin: 0 0 12px;
}
.settings-panel .section-note {
    margin-top: 14px;
}
.settings-load-error {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.company-verification-status {
    margin-top: 2px;
}
.admin-settings-provider-tabs {
    margin-top: .35rem;
}
.admin-settings-provider-tabs > .dxbl-tabs-tablist {
    margin-bottom: .8rem;
}
.admin-provider-form {
    margin: 0;
}
.license-billing-panel {
    padding: 22px;
}
.license-exempt-devices-panel {
    padding: 22px;
    margin-top: 18px;
}
.license-exempt-devices-panel .responsive-grid {
    margin-top: 14px;
}
.license-billing-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 18px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--b1go-border);
}
.license-billing-heading h3 {
    margin: 4px 0 6px;
}
.billing-settings-form {
    margin: 0;
}
.billing-url-hint {
    margin-top: 7px;
}
.billing-settings-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-top: 8px;
}
.billing-preview {
    display: flex;
    flex-direction: column;
    gap: 3px;
    color: var(--b1go-muted);
}
.billing-preview strong {
    color: var(--b1go-text);
    font-size: 20px;
}
@media (max-width: 1100px) {
    .account-settings-summary {
        grid-template-columns: repeat(2, minmax(170px, 1fr));
    }
}
@media (max-width: 760px) {
    .account-workspace-heading {
        padding: 18px 16px 12px;
    }
    .account-workspace-content {
        padding: 0 16px 18px;
    }
    .account-secondary-tabs > .dxbl-tabs-tablist {
        margin-left: -16px;
        margin-right: -16px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .account-workspace-tabs .dxbl-tabs-tablist,
    .account-secondary-tabs > .dxbl-tabs-tablist,
    .admin-settings-provider-tabs .dxbl-tabs-tablist {
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: thin;
    }
    .account-settings-summary,
    .settings-value-grid {
        grid-template-columns: 1fr;
    }
    .setting-row {
        display: block;
    }
    .setting-row b {
        display: block;
        max-width: none;
        margin-top: 5px;
        text-align: start;
    }
    .settings-panel-actions,
    .billing-settings-actions,
    .license-billing-heading,
    .settings-load-error {
        align-items: stretch;
        flex-direction: column;
    }
}
.status.success {
    background: #ecfdf5;
    border-color: #6ee7b7;
    color: #065f46;
}
.theme-dark .status.success {
    background: #052e24;
    border-color: #047857;
    color: #a7f3d0;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
.status-pill.ok {
    border-color: #a7f3d0;
    background: #ecfdf5;
    color: #065f46;
}
.status-pill.muted {
    border-color: #cbd5e1;
    background: #f1f5f9;
    color: #475569;
}
.theme-dark .status-pill {
    border-color: #475569;
    background: #1e293b;
    color: #cbd5e1;
}
.theme-dark .status-pill.ok {
    border-color: #047857;
    background: #052e24;
    color: #a7f3d0;
}
.theme-dark .status-pill.muted {
    border-color: #475569;
    background: #1e293b;
    color: #cbd5e1;
}


/* V101P company user administration and readable portal logs */
.users-grid-card {
    overflow: hidden;
    padding: 20px;
}
.users-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}
.users-section-heading h2 {
    margin: 0 0 4px;
}
.company-users-grid,
.company-invitations-grid {
    --b1go-grid-min-width: 1080px;
}
.company-user-actions {
    flex-wrap: nowrap;
    min-width: 280px;
}
.company-user-actions .dxbl-btn {
    white-space: nowrap;
}
.company-user-status-dialog {
    display: grid;
    gap: 18px;
    padding: 4px 2px 2px;
}
.company-user-dialog-identity {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    border: 1px solid var(--b1go-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--b1go-surface) 90%, var(--b1go-bg));
}
.company-user-dialog-identity strong {
    color: var(--b1go-text);
    font-size: 17px;
}
.company-user-dialog-identity span {
    color: var(--b1go-muted);
    overflow-wrap: anywhere;
}
.portal-logs-header,
.portal-logs-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
.portal-logs-header {
    margin-bottom: 14px;
}
.portal-logs-summary,
.portal-logs-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.portal-log-summary-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    padding: 5px 11px;
    border: 1px solid rgba(16,185,129,.28);
    border-radius: 999px;
    background: rgba(16,185,129,.10);
    color: #047857;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.portal-log-summary-chip.warning {
    border-color: rgba(245,158,11,.32);
    background: rgba(245,158,11,.12);
    color: #b45309;
}
.portal-logs-toolbar {
    align-items: center;
    padding: 12px 14px;
    margin-bottom: 12px;
    border: 1px solid var(--b1go-border);
    border-radius: 14px;
    background: color-mix(in srgb, var(--b1go-surface) 92%, var(--b1go-bg));
}
.portal-logs-grid-shell {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--b1go-border);
    border-radius: 16px;
    background: var(--b1go-surface);
}
.portal-logs-grid {
    --b1go-grid-min-width: 1180px;
}
.portal-logs-grid .dxbl-grid-search-box {
    max-width: 420px;
}
.portal-log-detail {
    display: grid;
    gap: 14px;
    padding: 16px;
    background: color-mix(in srgb, var(--b1go-surface) 88%, var(--b1go-bg));
}
.portal-log-detail-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.portal-log-detail-header strong {
    color: var(--b1go-text);
    font-size: 16px;
}
.portal-log-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.portal-log-detail-item {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--b1go-border);
    border-radius: 12px;
    background: var(--b1go-surface);
}
.portal-log-detail-item.wide {
    grid-column: span 2;
}
.portal-log-detail-item.full {
    grid-column: 1 / -1;
}
.portal-log-detail-item span {
    display: block;
    margin-bottom: 5px;
    color: var(--b1go-muted);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.portal-log-detail-item strong,
.portal-log-detail-item pre {
    color: var(--b1go-text);
    overflow-wrap: anywhere;
}
.portal-log-detail-item pre {
    max-height: 240px;
    margin: 0;
    overflow: auto;
    white-space: pre-wrap;
    font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.portal-log-detail-item.error-detail {
    border-color: rgba(239,68,68,.28);
    background: rgba(239,68,68,.06);
}
.theme-dark .portal-log-summary-chip {
    color: #6ee7b7;
}
.theme-dark .portal-log-summary-chip.warning {
    color: #fbbf24;
}
@media (max-width: 900px) {
    .portal-logs-header,
    .portal-logs-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .portal-logs-actions .dxbl-btn {
        flex: 1 1 auto;
    }
    .portal-log-detail-grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 600px) {
    .users-grid-card {
        padding: 14px;
    }
    .company-user-actions {
        min-width: 0;
        flex-direction: column;
        align-items: stretch;
    }
    .portal-log-detail-grid {
        grid-template-columns: 1fr;
    }
    .portal-log-detail-item.wide,
    .portal-log-detail-item.full {
        grid-column: auto;
    }
}

/* V101S legal pages: Privacy Policy and Terms / EULA */
.portal-main-panel {
    display: flex;
    flex-direction: column;
}
.portal-main-panel > .content {
    flex: 1 1 auto;
}
.legal-page-content {
    max-width: 1500px;
}
.legal-public-header {
    width: 100%;
    max-width: none;
    margin: 0 0 18px;
}
.legal-page {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
}
.legal-page-hero {
    align-items: flex-start;
}
.legal-summary {
    max-width: 920px;
}
.legal-document-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 14px;
    color: var(--b1go-muted);
    font-size: .92rem;
}
.legal-actions {
    flex: 0 0 auto;
}
.legal-language-notice {
    margin: 0 0 18px;
    padding: 12px 15px;
    border: 1px solid rgba(11,117,188,.28);
    border-inline-start: 4px solid var(--b1go-accent);
    border-radius: 12px;
    background: rgba(11,117,188,.07);
    color: var(--b1go-text);
    line-height: 1.5;
}
.legal-document-layout {
    display: grid;
    grid-template-columns: minmax(230px, 290px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.legal-toc {
    position: sticky;
    top: 82px;
    max-height: calc(100vh - 104px);
    overflow: auto;
    padding: 18px;
}
.legal-toc h2 {
    margin: 0 0 12px;
    font-size: 1rem;
    color: var(--b1go-text);
}
.legal-toc nav {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.legal-toc a {
    display: block;
    padding: 7px 9px;
    border-radius: 8px;
    color: var(--b1go-text);
    text-decoration: none;
    font-size: .86rem;
    line-height: 1.35;
}
.legal-toc a:hover,
.legal-toc a:focus-visible {
    background: rgba(11,117,188,.10);
    color: var(--b1go-accent);
    outline: none;
}
.legal-document-body {
    padding: clamp(20px, 3vw, 38px);
}
.legal-section {
    scroll-margin-top: 86px;
    padding: 0 0 24px;
    margin: 0 0 24px;
    border-bottom: 1px solid var(--b1go-border);
}
.legal-section:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}
.legal-section h2 {
    margin: 0 0 14px;
    font-size: 1.28rem;
    line-height: 1.3;
    color: var(--b1go-text);
}
.legal-section p,
.legal-section li {
    line-height: 1.68;
    color: var(--b1go-text);
}
.legal-section p {
    margin: 0 0 12px;
}
.legal-section ul {
    margin: 0 0 14px;
    padding-inline-start: 1.35rem;
}
.legal-section li {
    margin: 0 0 8px;
}
.legal-important {
    margin: 14px 0;
    padding: 13px 15px;
    border-radius: 12px;
    border: 1px solid rgba(217,119,6,.32);
    border-inline-start: 4px solid #d97706;
    background: rgba(245,158,11,.09);
    font-weight: 650;
    line-height: 1.58;
}
.auth-legal-notice {
    margin: 12px 0 2px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(148,163,184,.10);
    color: var(--b1go-muted);
    text-align: center;
    font-size: .82rem;
    line-height: 1.45;
}
.auth-legal-notice div {
    margin-top: 4px;
}
.legal-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
    padding: 16px 24px;
    border-top: 1px solid var(--b1go-border);
    color: var(--b1go-muted);
    font-size: .84rem;
}
.public-content > .legal-footer {
    margin-top: 22px;
    padding-inline: 0;
}
.legal-footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
}
.legal-footer a {
    color: var(--b1go-muted);
    text-decoration: none;
}
.legal-footer a:hover,
.legal-footer a:focus-visible {
    color: var(--b1go-accent);
    text-decoration: underline;
}
.rtl .legal-document-body,
.rtl .legal-toc,
.rtl .legal-language-notice {
    text-align: right;
}

@media (max-width: 900px) {
    .legal-document-layout {
        grid-template-columns: 1fr;
    }
    .legal-toc {
        position: static;
        max-height: none;
    }
    .legal-toc nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .legal-page-hero {
        gap: 12px;
    }
    .legal-actions,
    .legal-actions .dxbl-btn {
        width: 100%;
    }
    .legal-document-body {
        padding: 17px;
    }
    .legal-toc nav {
        grid-template-columns: 1fr;
    }
    .legal-footer {
        flex-direction: column;
        align-items: flex-start;
        padding: 14px;
    }
    .public-content > .legal-footer {
        align-items: center;
        text-align: center;
    }
    .public-content > .legal-footer .legal-footer-links {
        justify-content: center;
    }
}

@media print {
    .portal-sidebar,
    .portal-topbar,
    .public-header,
    .legal-footer,
    .legal-actions,
    .legal-toc,
    .legal-language-notice {
        display: none !important;
    }
    html,
    body,
    .shell,
    .portal-frame,
    .portal-main-panel,
    .content,
    .public-content,
    .legal-page,
    .legal-document-layout,
    .legal-document-body {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        border: 0 !important;
        overflow: visible !important;
    }
    .legal-page-hero {
        display: block !important;
    }
    .legal-section {
        break-inside: avoid-page;
        scroll-margin-top: 0;
    }
    .legal-section p,
    .legal-section li,
    .legal-section h2,
    .page-title,
    .page-subtitle,
    .legal-document-meta {
        color: #000 !important;
    }
}

/* V102B: customer migration and structured mobile settings editors */
.create-customer-form .dxbl-fl-group,
.create-customer-form .dxbl-fl-group-content,
.create-customer-form .dxbl-fl-row {
    grid-template-columns: minmax(0, 1fr) !important;
}

.create-customer-form .dxbl-fl-item {
    grid-column: 1 / -1 !important;
    width: 100%;
}

.mobile-settings-editor-shell {
    padding: 0;
    overflow: hidden;
}

.structured-json-editor {
    display: grid;
    gap: 0.75rem;
    width: 100%;
}

.structured-json-node {
    display: grid;
    gap: 0.65rem;
    min-width: 0;
}

.structured-json-node.container-node {
    padding: 0.85rem;
    border: 1px solid var(--b1go-border);
    border-radius: 10px;
    background: color-mix(in srgb, var(--b1go-surface) 94%, var(--b1go-accent) 6%);
}

.structured-json-node-header,
.structured-json-add-row {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.structured-json-name,
.structured-json-new-name {
    flex: 1 1 220px;
    min-width: 180px;
}

.structured-json-type-picker {
    flex: 0 1 180px;
    min-width: 150px;
}

.structured-json-type-label,
.structured-json-item-label {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--b1go-muted);
}

.structured-json-remove {
    margin-inline-start: auto;
}

.structured-json-children {
    display: grid;
    gap: 0.75rem;
    padding-inline-start: 0.75rem;
    border-inline-start: 2px solid var(--b1go-border);
}

@media (max-width: 720px) {
    .structured-json-add-row > *,
    .structured-json-name,
    .structured-json-new-name,
    .structured-json-type-picker {
        width: 100%;
        flex-basis: 100%;
    }
}

.company-users-toolbar-search {
    width: min(340px, 62vw);
}

.mobile-setting-boolean-editor {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
}

/* V102T dashboard KPI drill-down navigation */
.metric-card-link {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}
.metric-card-link:hover,
.metric-card-link:focus-visible {
    color: inherit;
    text-decoration: none;
    outline: 2px solid color-mix(in srgb, var(--b1go-accent) 42%, transparent);
    outline-offset: 2px;
}
.dashboard-summary-main-link {
    border-radius: 1rem;
    padding: .35rem;
}

/* V102U portal-admin customer and expanded-device command bar */
.customer-admin-command-card {
    border-style: dashed;
    background: color-mix(in srgb, var(--b1go-surface) 92%, var(--b1go-bg));
}

.customer-admin-commandbar {
    justify-content: flex-start;
}

.customer-toolbar-info {
    min-width: 180px;
}

.customer-toolbar-actions {
    padding-right: .4rem;
    border-right: 1px solid var(--b1go-border);
}

.customer-device-command-actions {
    flex: 1 1 360px;
}

.customer-create-command {
    margin-left: auto;
}

@media (max-width: 900px) {
    .customer-toolbar-actions {
        border-right: 0;
        padding-right: 0;
    }

    .customer-device-command-actions {
        flex-basis: 100%;
    }

    .customer-create-command {
        margin-left: 0;
    }
}

.pending-device-request-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
    border-left: 4px solid #f59e0b;
}

.rtl .pending-device-request-summary {
    border-left: 1px solid var(--b1go-border);
    border-right: 4px solid #f59e0b;
}

.b1go-pending-request-row > td,
.b1go-pending-request-row > th,
.dxbl-grid .b1go-pending-request-row > td,
.dxbl-grid .b1go-pending-request-row > th {
    background: rgba(245,158,11,.075);
}

.b1go-pending-request-row > td:first-child,
.dxbl-grid .b1go-pending-request-row > td:first-child {
    box-shadow: inset 4px 0 0 rgba(245,158,11,.78);
}

.rtl .b1go-pending-request-row > td:first-child,
.rtl .dxbl-grid .b1go-pending-request-row > td:first-child {
    box-shadow: inset -4px 0 0 rgba(245,158,11,.78);
}

.customer-invitation-target {
    padding: 10px 12px;
    border: 1px solid var(--b1go-border);
    border-radius: 10px;
    background: var(--b1go-surface-soft);
    font-weight: 700;
}

.customer-invitations-heading {
    margin-top: 8px;
    margin-bottom: 10px;
}

@media (max-width: 760px) {
    .pending-device-request-summary {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* V102W portal-admin customer invitation visibility */
.customer-expanded-invitations {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--b1go-border);
}
.customer-invitations-detail-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.customer-invitations-detail-title > span:first-child {
    min-width: 0;
    font-weight: 700;
}
@media (max-width: 760px) {
    .customer-invitations-detail-title {
        align-items: flex-start;
        flex-direction: column;
    }
}

.mobile-setting-lookup-editor {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.mobile-setting-lookup-input {
    flex: 1 1 auto;
    min-width: 0;
}

.mobile-setting-find-button {
    flex: 0 0 auto;
    white-space: nowrap;
}


.route-portal-layout{display:grid;grid-template-columns:minmax(280px,0.9fr) minmax(360px,1.3fr);gap:1rem;align-items:start}.route-list-card,.route-editor-card{min-width:0}.portal-checkbox-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.route-editor-actions{margin-top:1rem}@media(max-width:1100px){.route-portal-layout{grid-template-columns:1fr}}

/* V103 CRM route-template portal workspace redesign */
.route-command-card {
    margin-bottom: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 1.1rem;
    background: linear-gradient(135deg, color-mix(in srgb, var(--b1go-surface) 92%, #dbeafe), var(--b1go-surface));
}
.route-command-main {
    display: grid;
    grid-template-columns: minmax(260px, .8fr) minmax(360px, 1.2fr);
    gap: 1rem;
    align-items: end;
}
.route-command-title h2,
.route-card-header h2,
.route-editor-title-block h2,
.route-section-title h3 {
    margin: 0;
}
.route-command-title p,
.route-card-header p,
.route-editor-title-block p,
.route-section-title p {
    margin: .35rem 0 0;
    color: var(--b1go-muted);
    line-height: 1.35;
}
.route-command-controls {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) minmax(130px, .35fr) auto;
    gap: .85rem;
    align-items: end;
}
.route-template-workspace {
    display: grid;
    grid-template-columns: minmax(340px, .72fr) minmax(620px, 1.28fr);
    gap: 1.1rem;
    align-items: start;
}
.route-template-sidebar,
.route-template-editor {
    min-width: 0;
}
.route-template-sidebar {
    position: sticky;
    top: 84px;
}
.route-card-header,
.route-editor-topbar,
.route-section-title,
.route-section-title-left {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .9rem;
}
.route-card-header.compact {
    align-items: center;
    margin-bottom: .9rem;
}
.route-count-pill,
.transaction-structure-pill,
.device-status-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: .25rem .65rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--b1go-accent) 12%, var(--b1go-surface));
    color: var(--b1go-accent);
    font-weight: 800;
    font-size: .82rem;
    border: 1px solid color-mix(in srgb, var(--b1go-accent) 25%, transparent);
    white-space: nowrap;
}
.route-sidebar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .65rem;
    margin-bottom: .85rem;
}
.route-template-grid,
.route-lines-grid {
    border: 1px solid var(--b1go-border);
    border-radius: .9rem;
    overflow: hidden;
    background: var(--b1go-surface);
}
.route-template-grid .dxbl-grid,
.route-lines-grid .dxbl-grid {
    min-width: 0;
}
.route-template-editor {
    padding: 0;
    overflow: hidden;
}
.route-editor-topbar {
    padding: 1.25rem 1.35rem;
    border-bottom: 1px solid var(--b1go-border);
    background: color-mix(in srgb, var(--b1go-surface) 93%, var(--b1go-bg));
}
.route-editor-title-block {
    min-width: 0;
}
.route-editor-status {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
}
.route-editor-section {
    margin: 1rem 1.25rem;
    padding: 1rem;
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--b1go-surface) 96%, var(--b1go-bg));
}
.route-section-highlight {
    border-color: color-mix(in srgb, var(--b1go-accent) 30%, var(--b1go-border));
    background: linear-gradient(135deg, color-mix(in srgb, var(--b1go-accent) 7%, var(--b1go-surface)), var(--b1go-surface));
}
.route-section-title {
    justify-content: flex-start;
    margin-bottom: .9rem;
}
.route-section-title-actions {
    justify-content: space-between;
    align-items: center;
}
.route-section-number {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--b1go-accent);
    color: white;
    font-weight: 800;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--b1go-accent) 25%, transparent);
}
.route-field,
.route-field-grid,
.route-schedule-layout,
.route-customer-picker,
.route-search-row,
.route-line-actions {
    min-width: 0;
}
.route-field {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.route-field > span {
    color: var(--b1go-muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.route-field-grid,
.route-schedule-layout,
.route-customer-picker {
    display: grid;
    gap: .85rem;
    align-items: end;
}
.route-field-grid-main {
    grid-template-columns: minmax(280px, 1.25fr) minmax(220px, .85fr) minmax(120px, .35fr);
}
.route-field-grid-validity {
    grid-template-columns: minmax(170px, .4fr) minmax(170px, .4fr) minmax(320px, 1.2fr);
}
.route-schedule-layout {
    grid-template-columns: minmax(210px, .8fr) minmax(120px, .25fr) minmax(320px, 1.2fr);
}
.route-field-wide,
.route-field-days {
    min-width: 0;
}
.route-day-checks {
    padding: .65rem .75rem;
    border: 1px solid var(--b1go-border);
    border-radius: .8rem;
    background: var(--b1go-surface);
}
.route-field-check {
    justify-content: end;
}
.route-customer-picker {
    grid-template-columns: minmax(230px, .9fr) minmax(260px, 1fr) minmax(260px, 1fr) minmax(120px, .35fr) auto;
    padding: .85rem;
    margin-bottom: .9rem;
    border: 1px dashed color-mix(in srgb, var(--b1go-accent) 32%, var(--b1go-border));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--b1go-accent) 5%, var(--b1go-surface));
}
.route-search-row,
.route-line-actions {
    display: flex;
    align-items: center;
    gap: .45rem;
}
.route-search-row .dxbl-text-edit {
    flex: 1 1 auto;
}
.route-field-add .dxbl-btn,
.route-field-action .dxbl-btn {
    min-height: 38px;
}
.route-sticky-actions {
    display: flex;
    gap: .75rem;
    justify-content: flex-end;
    align-items: center;
    position: sticky;
    bottom: 0;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--b1go-border);
    background: color-mix(in srgb, var(--b1go-surface) 94%, var(--b1go-bg));
    z-index: 2;
}
.theme-dark .route-command-card,
.theme-dark .route-editor-topbar,
.theme-dark .route-sticky-actions,
.theme-dark .route-editor-section,
.theme-dark .route-day-checks,
.theme-dark .route-customer-picker {
    background: color-mix(in srgb, var(--b1go-surface) 88%, #020617);
}
@media (max-width: 1280px) {
    .route-template-workspace {
        grid-template-columns: 1fr;
    }
    .route-template-sidebar {
        position: static;
    }
    .route-template-grid .dxbl-grid,
    .route-lines-grid .dxbl-grid {
        min-width: 760px;
    }
}
@media (max-width: 980px) {
    .route-command-main,
    .route-command-controls,
    .route-field-grid-main,
    .route-field-grid-validity,
    .route-schedule-layout,
    .route-customer-picker {
        grid-template-columns: 1fr;
    }
    .route-editor-topbar,
    .route-section-title-actions {
        align-items: flex-start;
        flex-direction: column;
    }
    .route-editor-status,
    .route-sticky-actions,
    .route-sidebar-actions {
        width: 100%;
    }
    .route-sticky-actions,
    .route-sidebar-actions,
    .route-search-row {
        flex-direction: column;
    }
    .route-sticky-actions .dxbl-btn,
    .route-sidebar-actions .dxbl-btn,
    .route-search-row .dxbl-btn {
        width: 100%;
    }
}

/* V104 Portal simple list/detail page pattern */
.simple-page-hero {
    margin-bottom: 1rem;
}
.simple-page-actions {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-wrap: wrap;
}
.simple-list-command-card,
.simple-list-page-card,
.simple-editor-page-card {
    max-width: 1280px;
}
.simple-command-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(170px, .28fr) auto;
    gap: .85rem;
    align-items: end;
}
.simple-command-hint {
    justify-self: end;
    color: var(--b1go-muted);
    padding-bottom: .4rem;
    white-space: nowrap;
}
.simple-card-header,
.simple-editor-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.simple-card-header.no-padding {
    margin-bottom: .8rem;
}
.simple-card-header h2,
.simple-card-header h3,
.simple-editor-header h2,
.simple-editor-section h3 {
    margin: 0;
}
.simple-card-header p,
.simple-editor-header p {
    margin: .3rem 0 0;
    color: var(--b1go-muted);
    line-height: 1.4;
}
.simple-route-template-grid .dxbl-grid,
.simple-route-lines-grid .dxbl-grid {
    min-width: 880px;
}
.simple-grid-actions {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}
.simple-editor-page-card {
    padding: 0;
    overflow: hidden;
}
.simple-editor-header {
    padding: 1.25rem 1.35rem;
    border-bottom: 1px solid var(--b1go-border);
    background: color-mix(in srgb, var(--b1go-surface) 95%, var(--b1go-bg));
}
.simple-editor-section {
    padding: 1.2rem 1.35rem;
    border-bottom: 1px solid var(--b1go-border);
}
.simple-editor-section:last-of-type {
    border-bottom: 0;
}
.simple-form-grid {
    display: grid;
    gap: .9rem;
    align-items: end;
    margin-top: .85rem;
}
.simple-form-grid.three-columns {
    grid-template-columns: minmax(260px, 1fr) minmax(230px, .65fr) minmax(135px, .25fr);
}
.simple-wide-span {
    grid-column: 1 / -1;
}
.simple-day-checks {
    width: 100%;
}
.simple-add-line-panel {
    display: grid;
    grid-template-columns: minmax(250px, .9fr) minmax(260px, 1fr) minmax(260px, 1fr) minmax(130px, .32fr) auto;
    gap: .85rem;
    align-items: end;
    padding: .9rem;
    margin: .9rem 0;
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--b1go-surface) 96%, var(--b1go-bg));
}
.theme-dark .simple-editor-header,
.theme-dark .simple-add-line-panel {
    background: color-mix(in srgb, var(--b1go-surface) 88%, #020617);
}
@media (max-width: 1100px) {
    .simple-command-grid,
    .simple-form-grid.three-columns,
    .simple-add-line-panel {
        grid-template-columns: 1fr;
    }
    .simple-command-hint {
        justify-self: start;
    }
}
@media (max-width: 760px) {
    .simple-card-header,
    .simple-editor-header,
    .simple-page-hero,
    .simple-page-actions,
    .simple-grid-actions,
    .route-sticky-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .simple-page-actions .dxbl-btn,
    .simple-card-header .dxbl-btn,
    .simple-grid-actions .dxbl-btn,
    .route-sticky-actions .dxbl-btn {
        width: 100%;
    }
    .simple-editor-header,
    .simple-editor-section {
        padding: 1rem;
    }
}

/* V105 CRM route scheduling simplified flow */
.route-scheduling-command-grid {
    grid-template-columns: minmax(260px, 1fr) minmax(170px, .28fr) auto;
}
.route-assignment-summary {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin: 1rem 0;
    color: var(--b1go-muted);
}
.route-assignment-summary strong {
    color: var(--b1go-text);
}
.route-scheduling-preview-grid {
    margin-top: .8rem;
}
.route-inline-actions {
    justify-content: flex-start;
    margin-top: 1rem;
}
@media (max-width: 1100px) {
    .route-scheduling-command-grid {
        grid-template-columns: 1fr;
    }
}

/* V106 CRM route scheduling tabs and multi-salesperson transfer */
.route-scheduling-company-card {
    margin-bottom: 1rem;
}
.route-scheduling-tabs-card {
    max-width: 1280px;
}
.route-scheduling-tabs .dxbl-tabs-content-panel {
    padding: 0;
}
.route-transfer-salespersons {
    margin-top: 1rem;
}
.route-transfer-salesperson-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: .65rem;
    padding: .85rem;
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--b1go-surface) 96%, var(--b1go-bg));
}
.route-transfer-salesperson-item {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
    padding: .45rem .55rem;
    border-radius: .75rem;
    color: var(--b1go-text);
}
.route-transfer-salesperson-item:hover {
    background: color-mix(in srgb, var(--b1go-accent) 7%, transparent);
}
.theme-dark .route-transfer-salesperson-list {
    background: color-mix(in srgb, var(--b1go-surface) 88%, #020617);
}

/* V105A CRM route template regression reapply */
.route-selected-customer {
    min-height: 38px;
    display: flex;
    align-items: center;
    padding: .45rem .75rem;
    border: 1px solid var(--b1go-border);
    border-radius: .55rem;
    background: var(--b1go-surface);
    color: var(--b1go-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.customer-picker-popup {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}
.customer-picker-search-row {
    align-items: stretch;
}
.customer-picker-search-row .dxbl-text-edit {
    min-width: 240px;
}
.customer-picker-grid .dxbl-grid {
    min-width: 640px;
}
@media (max-width: 760px) {
    .customer-picker-search-row {
        flex-direction: column;
    }
    .customer-picker-search-row .dxbl-btn {
        width: 100%;
    }
}

/* V105B CRM route customer selector service-layer paging and multi-select */
.customer-picker-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}
.customer-picker-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}
.customer-picker-pager,
.customer-picker-actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}
@media (max-width: 760px) {
    .customer-picker-footer,
    .customer-picker-pager,
    .customer-picker-actions {
        width: 100%;
    }
    .customer-picker-pager .dxbl-btn,
    .customer-picker-actions .dxbl-btn {
        flex: 1 1 130px;
    }
}

/* V105E CRM route scheduling compact planner workspace */
.route-planner-hero {
    align-items: flex-start;
}
.route-planner-command-card {
    margin-bottom: .85rem;
    padding: .8rem .95rem;
    background: linear-gradient(135deg, color-mix(in srgb, var(--b1go-accent) 6%, var(--b1go-surface)), var(--b1go-surface));
}
.route-planner-command-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(150px, .28fr) minmax(370px, auto) minmax(170px, auto);
    gap: .65rem;
    align-items: end;
}
.route-planner-date-actions {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}
.route-planner-period {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .15rem;
    color: var(--b1go-muted);
    white-space: nowrap;
    padding-bottom: .2rem;
}
.route-planner-period strong {
    color: var(--b1go-text);
}
.route-planner-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
    max-width: none;
}
.route-unassigned-panel,
.route-planner-board-card,
.route-map-panel {
    min-width: 0;
    padding: .85rem;
}
.route-unassigned-panel {
    order: 1;
}
.route-planner-board-card {
    order: 2;
}
.route-map-panel {
    order: 3;
}
.route-unassigned-list {
    display: flex;
    gap: .65rem;
    overflow-x: auto;
    overflow-y: hidden;
    max-height: none;
    padding: .1rem .15rem .35rem 0;
}
.route-stop-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .55rem;
    max-height: 260px;
    overflow: auto;
    padding-right: .2rem;
}
.route-unassigned-customer {
    cursor: grab;
    display: grid;
    flex: 0 0 250px;
    gap: .35rem;
    padding: .65rem .7rem;
    border: 1px solid color-mix(in srgb, var(--b1go-accent) 18%, var(--b1go-border));
    border-radius: .8rem;
    background: color-mix(in srgb, var(--b1go-accent) 4%, var(--b1go-surface));
    box-shadow: 0 6px 16px rgba(15, 23, 42, .045);
}
.route-unassigned-customer:active {
    cursor: grabbing;
}
.route-unassigned-main,
.route-unassigned-meta,
.route-map-summary {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.route-unassigned-main span,
.route-unassigned-meta,
.route-map-summary span,
.route-plan-card-meta,
.route-plan-stop.muted {
    color: var(--b1go-muted);
    font-size: .82rem;
}
.route-planner-board-scroll {
    overflow: auto;
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    background: var(--b1go-surface);
}
.route-planner-board {
    display: grid;
    min-width: 1080px;
}
.route-planner-corner,
.route-planner-day-header,
.route-planner-salesperson-cell,
.route-planner-cell {
    border-right: 1px solid var(--b1go-border);
    border-bottom: 1px solid var(--b1go-border);
}
.route-planner-corner,
.route-planner-day-header {
    position: sticky;
    top: 0;
    z-index: 3;
    background: color-mix(in srgb, var(--b1go-surface) 94%, var(--b1go-bg));
}
.route-planner-corner {
    left: 0;
    z-index: 4;
    padding: .7rem;
    font-weight: 800;
}
.route-planner-day-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .65rem .7rem;
}
.route-planner-day-header.is-today,
.route-planner-cell.is-today {
    background: color-mix(in srgb, var(--b1go-accent) 6%, var(--b1go-surface));
}
.route-planner-salesperson-cell {
    position: sticky;
    left: 0;
    z-index: 2;
    padding: .65rem .7rem;
    background: var(--b1go-surface);
    color: var(--b1go-text);
}
.route-planner-cell {
    min-height: 104px;
    padding: .5rem;
    background: color-mix(in srgb, var(--b1go-surface) 97%, var(--b1go-bg));
}
.route-drop-hint,
.route-empty-state,
.route-map-empty,
.route-planner-empty-row {
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .8rem;
    border: 1px dashed var(--b1go-border);
    border-radius: .85rem;
    color: var(--b1go-muted);
    text-align: center;
    font-weight: 700;
}
.route-plan-card {
    width: 100%;
    display: grid;
    gap: .3rem;
    margin-bottom: .4rem;
    padding: .55rem .6rem;
    border: 1px solid color-mix(in srgb, var(--b1go-accent) 22%, var(--b1go-border));
    border-radius: .85rem;
    background: var(--b1go-surface);
    color: var(--b1go-text);
    text-align: left;
    cursor: pointer;
}
.route-plan-card:hover,
.route-plan-card.selected {
    border-color: var(--b1go-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--b1go-accent) 12%, transparent);
}
.route-plan-card-title {
    font-weight: 800;
}
.route-plan-stop {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .82rem;
}
.route-map-preview {
    position: relative;
    min-height: 145px;
    margin: .65rem 0;
    overflow: hidden;
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--b1go-accent) 10%, transparent) 1px, transparent 1px),
        linear-gradient(color-mix(in srgb, var(--b1go-accent) 10%, transparent) 1px, transparent 1px),
        color-mix(in srgb, var(--b1go-surface) 94%, var(--b1go-bg));
    background-size: 34px 34px;
}
.route-map-pin {
    position: absolute;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--b1go-accent);
    color: white;
    font-weight: 900;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--b1go-accent) 28%, transparent);
}
.route-stop-item {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: .65rem;
    align-items: start;
    padding: .65rem;
    border: 1px solid var(--b1go-border);
    border-radius: .85rem;
    background: color-mix(in srgb, var(--b1go-surface) 96%, var(--b1go-bg));
}
.route-stop-sequence {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--b1go-accent) 12%, var(--b1go-surface));
    color: var(--b1go-accent);
    font-weight: 900;
}
.route-stop-item > div {
    display: grid;
    gap: .15rem;
    min-width: 0;
}
.route-stop-item span {
    color: var(--b1go-muted);
    font-size: .82rem;
}
.route-template-generate-card {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .65rem;
    margin-top: .85rem;
    padding-top: .85rem;
    border-top: 1px solid var(--b1go-border);
}
.route-template-generate-card h3 {
    margin: 0;
}
.theme-dark .route-planner-command-card,
.theme-dark .route-planner-corner,
.theme-dark .route-planner-day-header,
.theme-dark .route-planner-salesperson-cell,
.theme-dark .route-unassigned-customer,
.theme-dark .route-stop-item,
.theme-dark .route-planner-cell {
    background-color: color-mix(in srgb, var(--b1go-surface) 88%, #020617);
}
@media (max-width: 1220px) {
    .route-planner-command-grid {
        grid-template-columns: 1fr 1fr;
    }
    .route-planner-period {
        align-items: flex-start;
    }
}
@media (max-width: 760px) {
    .route-planner-date-actions,
    .route-planner-date-actions .dxbl-btn {
        width: 100%;
    }
    .route-planner-date-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .route-planner-command-grid {
        grid-template-columns: 1fr;
    }
    .route-unassigned-list {
        max-height: none;
    }
    .route-unassigned-customer {
        flex-basis: 220px;
    }
    .route-planner-board {
        min-width: 980px;
    }
}

/* V105D Route-customer selector visual polish */
.customer-picker-popup {
    padding: .25rem;
}
.customer-picker-toolbar {
    padding: .75rem .85rem;
    border: 1px solid color-mix(in srgb, var(--b1go-accent) 18%, var(--b1go-border));
    border-radius: .9rem;
    background: color-mix(in srgb, var(--b1go-accent) 5%, var(--b1go-surface));
}
.customer-picker-toolbar .hint {
    font-weight: 800;
    color: var(--b1go-text);
}
.customer-picker-grid {
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    overflow: hidden;
    background: var(--b1go-surface);
}
.customer-picker-footer {
    padding-top: .25rem;
}

/* V106 CRM route scheduling day-capacity planner */
.route-scheduler-day-shell {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
    gap: .9rem;
    align-items: start;
    margin-bottom: .9rem;
}
.route-unassigned-side-panel {
    position: sticky;
    top: .75rem;
    max-height: calc(100vh - 150px);
    display: flex;
    flex-direction: column;
}
.route-customer-filter-grid {
    display: grid;
    gap: .55rem;
    margin: .6rem 0;
}
.route-unassigned-list-vertical {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
    overflow: auto;
    min-height: 260px;
    padding-right: .25rem;
}
.route-unassigned-customer-vertical {
    flex: none;
    width: 100%;
}
.route-day-planner-card {
    min-width: 0;
    padding: .9rem;
}
.route-day-board-scroll {
    overflow: auto;
    border: 1px solid var(--b1go-border);
    border-radius: 1rem;
    background: var(--b1go-surface);
    max-height: 68vh;
}
.route-day-board {
    display: grid;
    min-width: 980px;
}
.route-day-time-header,
.route-day-salesperson-header,
.route-day-time-cell,
.route-day-slot {
    border-right: 1px solid var(--b1go-border);
    border-bottom: 1px solid var(--b1go-border);
}
.route-day-time-header,
.route-day-salesperson-header {
    position: sticky;
    top: 0;
    z-index: 3;
    background: color-mix(in srgb, var(--b1go-surface) 94%, var(--b1go-bg));
}
.route-day-time-header {
    left: 0;
    z-index: 4;
    padding: .7rem .55rem;
    font-weight: 900;
}
.route-day-salesperson-header {
    display: grid;
    gap: .15rem;
    padding: .7rem;
    min-height: 58px;
}
.route-day-salesperson-header span {
    color: var(--b1go-muted);
    font-size: .8rem;
}
.route-day-time-cell {
    position: sticky;
    left: 0;
    z-index: 2;
    background: color-mix(in srgb, var(--b1go-surface) 96%, var(--b1go-bg));
    font-weight: 800;
    color: var(--b1go-muted);
    padding: .55rem .45rem;
    text-align: center;
}
.route-day-slot {
    min-height: 74px;
    padding: .35rem;
    background: color-mix(in srgb, var(--b1go-surface) 98%, var(--b1go-bg));
}
.route-drop-hint.small {
    min-height: 38px;
    padding: .35rem;
    border-radius: .65rem;
    font-size: .8rem;
}
.route-day-slot-visits {
    display: flex;
    align-items: stretch;
    gap: .35rem;
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: .15rem;
}
.route-visit-card {
    position: relative;
    flex: 1 0 168px;
    display: grid;
    align-content: start;
    gap: .15rem;
    padding: .45rem .5rem;
    border: 1px solid color-mix(in srgb, var(--b1go-accent) 22%, var(--b1go-border));
    border-radius: .75rem;
    background: var(--b1go-surface);
    color: var(--b1go-text);
    text-align: left;
    cursor: pointer;
    box-shadow: 0 7px 15px rgba(15, 23, 42, .045);
}
.route-visit-card.selected,
.route-visit-card:hover {
    border-color: var(--b1go-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--b1go-accent) 12%, transparent);
}
.route-visit-time,
.route-visit-route,
.route-visit-card > span {
    color: var(--b1go-muted);
    font-size: .78rem;
}
.route-conflict-label {
    justify-self: start;
    padding: .1rem .35rem;
    border-radius: 999px;
    background: color-mix(in srgb, #f59e0b 18%, var(--b1go-surface));
    color: #92400e;
    font-weight: 800;
    font-size: .72rem;
}
.route-conflict-label.hidden {
    display: none;
}
.route-visit-card-actions {
    display: flex;
    align-items: center;
    gap: .25rem;
    margin-top: .25rem;
}
.route-visit-card-actions span {
    min-width: 25px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .45rem;
    background: color-mix(in srgb, var(--b1go-accent) 9%, var(--b1go-surface));
    color: var(--b1go-accent);
    font-weight: 900;
}
.route-salesperson-map-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: .65rem;
    margin-top: .85rem;
}
.route-salesperson-map-card {
    display: grid;
    gap: .35rem;
    padding: .65rem;
    border: 1px solid var(--b1go-border);
    border-radius: .9rem;
    background: color-mix(in srgb, var(--b1go-surface) 96%, var(--b1go-bg));
    color: var(--b1go-text);
    text-align: left;
    cursor: pointer;
}
.route-salesperson-map-card span {
    color: var(--b1go-muted);
    font-size: .82rem;
}
.route-map-preview.compact {
    min-height: 92px;
    margin: .15rem 0 0;
}
.route-map-preview-large {
    min-height: 220px;
}
.route-map-empty.compact {
    position: static;
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: center;
    padding: .5rem;
    font-size: .75rem;
}
.route-map-panel-wide {
    margin-bottom: .9rem;
}
.theme-dark .route-day-time-header,
.theme-dark .route-day-salesperson-header,
.theme-dark .route-day-time-cell,
.theme-dark .route-day-slot,
.theme-dark .route-visit-card,
.theme-dark .route-salesperson-map-card {
    background-color: color-mix(in srgb, var(--b1go-surface) 88%, #020617);
}
@media (max-width: 1120px) {
    .route-scheduler-day-shell {
        grid-template-columns: 1fr;
    }
    .route-unassigned-side-panel {
        position: static;
        max-height: none;
    }
    .route-unassigned-list-vertical {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
        max-height: 240px;
    }
}
@media (max-width: 760px) {
    .route-day-board {
        min-width: 820px;
    }
    .route-day-board-scroll {
        max-height: 62vh;
    }
}

/* CRM Route Scheduling - DevExpress Scheduler planner */
.route-scheduler-workspace {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.route-unassigned-drawer,
.route-scheduler-calendar-card {
    min-width: 0;
}

.route-unassigned-drawer {
    position: sticky;
    top: 12px;
    max-height: calc(100vh - 180px);
    overflow: auto;
}

.route-customer-filter-compact {
    display: grid;
    gap: 10px;
}

.route-scheduler-customer-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.route-scheduler-customer-card {
    width: 100%;
    text-align: left;
    border: 1px solid rgba(100, 116, 139, .22);
    background: #fff;
    border-radius: 14px;
    padding: 12px;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.route-scheduler-customer-card:hover,
.route-scheduler-customer-card.selected {
    border-color: #0b74de;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08);
}

.route-scheduler-customer-card.selected {
    background: rgba(11, 116, 222, .06);
}

.route-scheduler-selected-customer {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 12px;
    margin: 8px 0 12px;
    border: 1px solid rgba(100, 116, 139, .18);
    border-radius: 12px;
    color: #64748b;
    background: #f8fafc;
}

.route-scheduler-selected-customer strong {
    color: #0f172a;
}

.b1go-route-scheduler {
    min-height: 680px;
    width: 100%;
}

.b1go-route-scheduler-appointment {
    display: grid;
    gap: 2px;
    font-size: .86rem;
    line-height: 1.2;
    overflow: hidden;
}

.b1go-route-scheduler-appointment span {
    opacity: .85;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.route-scheduler-map-strip {
    margin-top: 14px;
}

.theme-dark .route-scheduler-customer-card,
.theme-dark .route-scheduler-selected-customer {
    background: rgba(15, 23, 42, .72);
    border-color: rgba(148, 163, 184, .25);
}

.theme-dark .route-scheduler-selected-customer strong {
    color: #e5e7eb;
}

@media (max-width: 1180px) {
    .route-scheduler-workspace {
        grid-template-columns: 1fr;
    }

    .route-unassigned-drawer {
        position: static;
        max-height: none;
    }

    .route-scheduler-customer-list {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
}

/* CRM route scheduling performance/scroll refinements */
.route-planner-company-card {
    margin-bottom: 14px;
}

.route-planner-company-grid {
    grid-template-columns: minmax(260px, 520px);
}

.route-scheduler-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 8px 0 12px;
    flex-wrap: wrap;
}

.route-scheduler-selected-customer.compact {
    margin: 0;
}

.route-scheduler-save-actions {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.route-unsaved-pill,
.route-schedule-date-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: .82rem;
    font-weight: 700;
    background: rgba(11, 116, 222, .08);
    color: #0b74de;
}

.route-scheduler-scroll-shell {
    max-height: calc(100vh - 240px);
    min-height: 520px;
    overflow-y: auto;
    overflow-x: auto;
    border-radius: 14px;
}

.route-scheduler-scroll-shell .b1go-route-scheduler {
    min-width: 980px;
}

.theme-dark .route-unsaved-pill,
.theme-dark .route-schedule-date-pill {
    background: rgba(56, 189, 248, .14);
    color: #7dd3fc;
}

@media (max-width: 1180px) {
    .route-scheduler-scroll-shell {
        max-height: none;
        min-height: 520px;
    }

    .route-scheduler-scroll-shell .b1go-route-scheduler {
        min-width: 820px;
    }
}
