```css
/* =========================================================
   JAO Power Pages Theme (Unified, Bootstrap Icons)
   Version: 2.3 (bot readability: darker text, honor bold, tighter spacing)
   Author: ChatGPT, for Mounir
   Summary:
   - Montserrat @ 14px base
   - JAO brand variables
   - Bootstrap Icons (CDN + local fallback) instead of Glyphicons
   - DataTables sort chevrons remapped to Bootstrap Icons
   - Replaces common .glyphicon-* with Bootstrap Icons codepoints
   - Accessibility + responsive + print
   ========================================================= */

/* ---------------------------------------------------------
   FONT LOADING
   If your tenant CSP blocks external CDNs, upload the WOFF2
   into Web Files and keep the first src() URL below.
   --------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

/* Bootstrap Icons (icon font). Prefer self-host; fall back to CDN. */
@font-face {
  font-family: "bootstrap-icons";
  src: url("/WebFiles/bootstrap-icons.woff2") format("woff2"),
       url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/fonts/bootstrap-icons.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

/* ---------------------------------------------------------
   CSS VARIABLES (JAO Brand System)
   --------------------------------------------------------- */
:root {
  /* Brand */
  --jao-burgundy: #96004B;
  --jao-black: #000000;
  --jao-grey: #C3C8CD;

  /* Extended neutrals */
  --jao-dark-grey: #1f2937;
  --jao-medium-grey: #4b5563;
  --jao-light-grey: #6b7280;
  --jao-very-light-grey: #f3f4f6;
  --jao-border-grey: #e5e7eb;

  /* Surfaces */
  --jao-bg: #ffffff;
  --jao-bg-muted: #f9fafb;

  /* Interaction */
  --jao-hover-light: rgba(150, 0, 75, 0.05);
  --jao-focus-ring: rgba(150, 0, 75, 0.20);

  /* Shadows */
  --jao-shadow-xs: 0 1px 2px rgba(0, 0, 0, .03);
  --jao-shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);
  --jao-shadow-md: 0 4px 10px rgba(0, 0, 0, .10);
  --jao-shadow-lg: 0 10px 24px rgba(0, 0, 0, .12);

  /* Typography */
  --jao-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --jao-font-size: 14px;
  --jao-lh: 1.6;
}

/* ---------------------------------------------------------
   BASE
   --------------------------------------------------------- */
html { font-size: var(--jao-font-size); }

body {
  font-family: var(--jao-font) !important;
  line-height: var(--jao-lh);
  color: var(--jao-dark-grey);
  background: var(--jao-bg);
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Links */
a {
  color: var(--jao-burgundy);
  text-decoration: none;
  transition: color .2s ease;
}
a:hover,
a:focus {
  color: #7a003d;
  text-decoration: none;
  outline: none;
}

/* Headings */
h1, .h1 {
  font-weight: 600;
  color: var(--jao-black);
  font-size: 2rem;
  line-height: 1.3;
  margin: 0 0 1rem;
  padding-bottom: .5rem;
  border-bottom: 2px solid var(--jao-burgundy);
}
h1.modal-title { border-bottom-color: #7a003d; }

h2, .h2 {
  font-weight: 500;
  color: var(--jao-black);
  font-size: 1.5rem;
  line-height: 1.3;
  margin: 0 0 .875rem;
}
h3, .h3 {
  font-weight: 500;
  color: var(--jao-black);
  font-size: 1.25rem;
  margin: 0 0 .75rem;
}
h4, .h4 {
  font-weight: 500;
  color: var(--jao-dark-grey);
  font-size: 1.125rem;
  margin: 0 0 .75rem;
}
h5, .h5, h6, .h6 {
  font-weight: 500;
  color: var(--jao-medium-grey);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin: 0 0 .5rem;
}
h5, .h5 { font-size: 1rem; }
h6, .h6 { font-size: .875rem; }

p { margin: 0 0 1rem; }

/* ---------------------------------------------------------
   ICONS — Bootstrap Icons as the single source of truth
   --------------------------------------------------------- */
.bi {
  display: inline-block;
  font-family: "bootstrap-icons" !important;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  vertical-align: -.125em;
}
.glyphicon {
  font-family: "bootstrap-icons" !important;
  font-style: normal;
  font-weight: normal;
  line-height: 1;
}
.glyphicon:before { display: inline-block; }

/* Remaps */
.glyphicon-search:before { content: "\F52A"; }        /* bi-search */
.glyphicon-plus:before { content: "\F4FE"; }          /* bi-plus */
.glyphicon-option-horizontal:before { content: "\F5D4"; } /* bi-three-dots */
.glyphicon-chevron-up:before { content: "\F286"; }    /* bi-chevron-up */
.glyphicon-chevron-down:before { content: "\F282"; }  /* bi-chevron-down */

/* ---------------------------------------------------------
   NAVBAR / HEADER
   --------------------------------------------------------- */
.navbar {
  background: var(--jao-bg) !important;
  border: none !important;
  border-radius: 0 !important;
  margin-bottom: 0 !important;
  box-shadow: var(--jao-shadow-xs);
}
.navbar-default { background: var(--jao-bg) !important; border-color: transparent !important; }

.navbar-brand {
  height: 70px !important;
  padding: 15px !important;
  display: flex !important;
  align-items: center !important;
}
.navbar-brand img { max-height: 45px !important; width: auto !important; }

/* Menu links (BS3) */
.navbar-nav>li>a {
  font-family: var(--jao-font) !important;
  font-size: .9375rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .75px !important;
  color: var(--jao-dark-grey) !important;
  padding: 24px 16px !important;
}
.navbar-nav>li>a:hover,
.navbar-nav>.active>a,
.navbar-nav>.open>a {
  color: var(--jao-black) !important;
  background: transparent !important;
  border-bottom: 3px solid var(--jao-burgundy) !important;
}

/* Last nav item as CTA */
.navbar-nav>li:last-child>a {
  background: var(--jao-burgundy) !important;
  color: #fff !important;
  border-radius: 24px !important;
  margin: 16px 8px !important;
  padding: 10px 20px !important;
  border: none !important;
}
.navbar-nav>li:last-child>a:hover { background: #7a003d !important; }

/* Mobile */
.navbar-toggle { border-color: var(--jao-border-grey) !important; }
.navbar-toggle .icon-bar { background: var(--jao-dark-grey) !important; }

/* ---------------------------------------------------------
   BUTTONS
   --------------------------------------------------------- */
.btn {
  font-family: var(--jao-font) !important;
  font-size: .9375rem !important;
  font-weight: 500 !important;
  padding: 10px 24px !important;
  border-radius: 24px !important;
  border: 2px solid transparent !important;
  transition: all .2s ease !important;
  box-shadow: none !important;
}
.btn-primary { background: var(--jao-burgundy) !important; color: #fff !important; }
.btn-primary:hover,
.btn-primary:focus { background: #7a003d !important; color: #fff !important; }

.btn-default, .btn-secondary {
  background: #fff !important;
  color: var(--jao-dark-grey) !important;
  border-color: var(--jao-border-grey) !important;
}
.btn-default:hover, .btn-secondary:hover {
  background: var(--jao-bg-muted) !important;
  color: var(--jao-black) !important;
}
.btn-link { color: var(--jao-burgundy) !important; font-weight: 500 !important; }

/* Icon buttons in grids */
.table .btn, .entity-list .btn {
  padding: 6px 16px !important;
  font-size: .875rem !important;
  border-radius: 20px !important;
}
.btn i, .btn .bi, .btn .glyphicon {
  margin: 0 !important;
  font-size: 14px !important;
  vertical-align: middle !important;
}
.btn i+span, .btn .bi+span, .btn .glyphicon+span { margin-left: 5px !important; }

/* ---------------------------------------------------------
   FORMS & ENTITY FORMS
   --------------------------------------------------------- */
.form-control,
input[type="text"], input[type="email"], input[type="password"], input[type="tel"],
input[type="url"], input[type="number"], input[type="date"],
textarea, select {
  font-family: var(--jao-font) !important;
  font-size: .9375rem !important;
  padding: 10px 12px !important;
  border: 1px solid var(--jao-border-grey) !important;
  border-radius: 2px !important;
  background: var(--jao-bg) !important;
  color: var(--jao-black) !important;
  box-shadow: none !important;
  transition: all .2s ease !important;
}
.form-control:focus, input:focus, textarea:focus, select:focus {
  border-color: var(--jao-burgundy) !important;
  box-shadow: 0 0 0 3px var(--jao-focus-ring) !important;
  outline: none !important;
}
.form-group label, .control-label {
  font-size: .875rem !important;
  font-weight: 600 !important;
  color: var(--jao-black) !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  margin-bottom: .5rem !important;
}
.entity-form {
  background: var(--jao-bg) !important;
  border: 1px solid var(--jao-border-grey) !important;
  border-radius: 0 !important;
  padding: 2rem !important;
}
.entity-form .form-group { margin-bottom: 1.75rem !important; }
.entity-form .tab-content { padding: 1.5rem 0 !important; }
.entity-form .form-section {
  margin-bottom: 2rem !important;
  padding-bottom: 2rem !important;
  border-bottom: 1px solid var(--jao-border-grey) !important;
}
.entity-form .form-section:last-child { border-bottom: none !important; }
.entity-form .section-title {
  font-size: 1.25rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  color: var(--jao-black) !important;
  margin-bottom: 1.5rem !important;
  padding-bottom: .5rem !important;
  border-bottom: 2px solid var(--jao-burgundy) !important;
}

/* Validation */
.field-validation-error {
  color: #dc2626 !important;
  font-size: .875rem !important;
  margin-top: .25rem !important;
  display: block !important;
}
.validation-summary-errors {
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  border-left: 4px solid #dc2626 !important;
  border-radius: 0 !important;
  padding: 1rem !important;
  margin-bottom: 1.5rem !important;
}

/* ---------------------------------------------------------
   TABLES & ENTITY LISTS
   --------------------------------------------------------- */
.table { width: 100%; background: #fff; }
.table>thead>tr>th {
  color: var(--jao-black) !important;
  font-weight: 600 !important;
  border-bottom: 2px solid var(--jao-border-grey) !important;
  white-space: nowrap !important;
}
.table>tbody>tr>td, .table>thead>tr>th { padding: 10px 12px !important; }
.table tr:hover { background: var(--jao-hover-light) !important; }

.entity-list .view-grid { margin-top: 1rem !important; overflow-x: auto !important; }
.entity-list .actions { white-space: nowrap !important; }
.entity-list .actions .btn {
  margin-right: .5rem !important;
  margin-bottom: .25rem !important;
  padding: 6px 12px !important;
  font-size: .8125rem !important;
}
.view-search, .search-box { margin-bottom: 1rem !important; }
.view-search input, .search-box input { border-radius: 0 !important; }

/* DataTables sort icons — use Bootstrap Icons via codepoints */
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after,
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
  font-family: "bootstrap-icons" !important;
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  margin-left: 6px;
  opacity: .9;
}
table.dataTable thead .sorting:after { content: "\F283"; }       /* bi-chevron-expand */
table.dataTable thead .sorting_asc:after { content: "\F286"; }   /* bi-chevron-up */
table.dataTable thead .sorting_desc:after { content: "\F282"; }  /* bi-chevron-down */
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after { opacity: .4; }

/* Pagination (BS3) */
.pagination>li>a, .pagination>li>span {
  color: var(--jao-dark-grey) !important;
  border: 1px solid var(--jao-border-grey) !important;
  background: #fff !important;
  margin: 0 2px !important;
}
.pagination>.active>a, .pagination>.active>span {
  background: var(--jao-burgundy) !important;
  color: #fff !important;
  border-color: var(--jao-burgundy) !important;
}

/* ---------------------------------------------------------
   BREADCRUMBS
   --------------------------------------------------------- */
.breadcrumb {
  background: var(--jao-bg-muted) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 10px 15px !important;
  margin-bottom: 1.5rem !important;
  border-left: 4px solid var(--jao-burgundy) !important;
}
.breadcrumb>li {
  color: var(--jao-medium-grey) !important;
  font-size: .875rem !important;
}
.breadcrumb>li+li:before {
  content: ">" !important;
  color: var(--jao-medium-grey) !important;
  padding: 0 8px !important;
}
.breadcrumb>li>a { color: var(--jao-burgundy) !important; font-weight: 500 !important; }
.breadcrumb>.active { color: var(--jao-black) !important; font-weight: 600 !important; }

/* ---------------------------------------------------------
   PORTLETS / PANELS / CARDS
   --------------------------------------------------------- */
.portlet, .panel, .card {
  background: #fff !important;
  border: 1px solid var(--jao-border-grey) !important;
  border-radius: 0 !important;
  margin-bottom: 1.5rem !important;
  box-shadow: var(--jao-shadow-xs) !important;
  overflow: hidden !important;
}
.portlet-header, .panel-heading, .card-header {
  background: var(--jao-bg-muted) !important;
  border-bottom: 2px solid var(--jao-burgundy) !important;
  padding: 1rem 1.25rem !important;
}
.portlet-title, .panel-title, .card-title {
  margin: 0 !important;
  font-size: 1.125rem !important;
  font-weight: 500 !important;
  color: var(--jao-black) !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
}
.portlet-body, .panel-body, .card-body { padding: 1.25rem !important; }

/* ---------------------------------------------------------
   TABS (BS3) + NAV PILLS
   --------------------------------------------------------- */
.nav-tabs {
  border-bottom: 2px solid var(--jao-border-grey) !important;
  margin-bottom: 1rem !important;
}
.nav-tabs>li>a {
  border: none !important;
  border-radius: 0 !important;
  color: var(--jao-medium-grey) !important;
  padding: 12px 20px !important;
  text-transform: uppercase !important;
  font-size: .875rem !important;
  font-weight: 500 !important;
  letter-spacing: .5px !important;
}
.nav-tabs>li.active>a,
.nav-tabs>li.active>a:hover,
.nav-tabs>li.active>a:focus {
  color: var(--jao-burgundy) !important;
  background: #fff !important;
  border: none !important;
  border-bottom: 2px solid var(--jao-burgundy) !important;
}

/* ---------------------------------------------------------
   ALERTS
   --------------------------------------------------------- */
.alert {
  padding: 1rem 1.25rem !important;
  border-radius: 0 !important;
  border: 1px solid !important;
  border-left-width: 4px !important;
  margin-bottom: 1.5rem !important;
  font-size: .9375rem !important;
}
.alert-info { background: #f0f9ff !important; border-color: #0891b2 !important; color: #075985 !important; }
.alert-success { background: #f0fdf4 !important; border-color: #10b981 !important; color: #166534 !important; }
.alert-warning { background: #fffbeb !important; border-color: #f59e0b !important; color: #92400e !important; }
.alert-danger, .alert-error { background: #fef2f2 !important; border-color: #ef4444 !important; color: #991b1b !important; }

/* ---------------------------------------------------------
   MODALS
   --------------------------------------------------------- */
.modal-content {
  border-radius: 0 !important;
  border: none !important;
  box-shadow: var(--jao-shadow-lg) !important;
}
.modal-header {
  background: var(--jao-burgundy) !important;
  color: #fff !important;
  border-bottom: none !important;
  padding: 1.25rem 1.5rem !important;
}
.modal-title {
  font-size: 1.125rem !important;
  font-weight: 500 !important;
  letter-spacing: .5px !important;
  color: #fff !important;
}
.modal-body { padding: 2rem !important; }
.modal-footer {
  border-top: 1px solid var(--jao-border-grey) !important;
  padding: 1rem 1.5rem !important;
  background: var(--jao-bg-muted) !important;
}

/* ---------------------------------------------------------
   FOOTER
   --------------------------------------------------------- */
footer, .footer, .page-footer {
  background: var(--jao-bg-muted) !important;
  color: var(--jao-dark-grey) !important;
  padding: 3rem 0 2rem !important;
  margin-top: 0 !important;
  border-top: 1px solid var(--jao-border-grey) !important;
  position: relative;
}
footer::before, .footer::before, .page-footer::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--jao-grey) 0%, var(--jao-burgundy) 50%, var(--jao-grey) 100%);
}

/* ---------------------------------------------------------
   ACCESSIBILITY
   --------------------------------------------------------- */
:focus { outline: none; }
a:focus:not(.footer__icon),
button:focus, .btn:focus,
input:focus, textarea:focus, select:focus {
  outline: 2px solid var(--jao-burgundy) !important;
  outline-offset: 2px !important;
}

/* Skip links */
.skip-to-content, .skip-to-main-content, .skip-navigation, .skiplink {
  position: absolute !important;
  left: -999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  background: var(--jao-burgundy) !important;
  color: #fff !important;
  padding: 0 !important;
  border-radius: 4px !important;
  z-index: 10000 !important;
  text-decoration: none !important;
}
.skip-to-content:focus, .skip-to-main-content:focus,
.skip-navigation:focus, .skiplink:focus {
  left: 8px !important; top: 8px !important;
  width: auto !important; height: auto !important;
  padding: 8px 12px !important;
  box-shadow: 0 0 0 3px var(--jao-focus-ring) !important;
}

/* High contrast */
@media (prefers-contrast: high) {
  .btn, .form-control, .table { border-width: 2px !important; }
}

/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */
@media (max-width: 991px) {
  .navbar-nav { margin: 0 !important; background: var(--jao-bg) !important; }
  .navbar-nav>li>a {
    padding: 15px 20px !important;
    border-bottom: 1px solid var(--jao-border-grey) !important;
    border-bottom-width: 1px !important;
  }
  .navbar-nav>li:last-child>a { margin: 15px 20px !important; }
}
@media (max-width: 768px) {
  h1, .h1 { font-size: 1.75rem !important; }
  h2, .h2 { font-size: 1.375rem !important; }
  .table th, .table td { padding: 8px 10px !important; font-size: .875rem !important; }
  .btn { padding: 8px 16px !important; font-size: .875rem !important; }
}
@media (max-width: 480px) {
  .navbar-brand img { max-height: 35px !important; }
  h1, .h1 { font-size: 1.5rem !important; }
  h2, .h2 { font-size: 1.25rem !important; }
}

/* ---------------------------------------------------------
   PRINT
   --------------------------------------------------------- */
@media print {
  .navbar, .footer, .breadcrumb, .pagination, .btn, .actions { display: none !important; }
  body { color: #000 !important; background: #fff !important; }
  a { color: #000 !important; text-decoration: underline !important; }
  .table { border: 1px solid #000 !important; }
  .table th, .table td { border: 1px solid #000 !important; padding: 8px !important; }
  h1, h2, h3 { page-break-after: avoid !important; }
  .panel, .card { page-break-inside: avoid !important; }
}

/* Minor style fixes */
/* Bootstrap overwrite for JAO */
.alert-success, div.message.success {
  background-color: #96004b !important;
  border-color: #7a003d !important;
  color: #fff !important;
}
#MessageLabel { color: #fff !important; }

.badge-primary {
  background-color: #96004b;
  padding: .7rem;
  border-radius: .2rem;
}
.badge-default {
  background-color: white;
  padding: .7rem;
  border-radius: .2rem;
  color: #96004b;
  border: .1rem solid #96004b;
}

.pagination>.active>a, .pagination>.active>a:focus { background-color: #96004b !important; }
.pagination>.active>a:hover { background-color: #7a003d !important; cursor: pointer; }

.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover {
  background-color: #96004b !important;
  color: #FFFFFF;
  text-decoration: none;
}

.input-group.pull-left.view-search.entitylist-search { display: inline-flex; align-items: center; }
input.query.form-control { width: 70%; margin-right: .3rem; }

.navbar-toggle .icon-bar { border: 2px solid #fff; }
.nav.navbar-nav.weblinks .dropdown-menu>li>a { padding: 3px 20px; }
.nav.navbar-nav.weblinks .dropdown-menu>li>a:hover { border-width: 0; }
.navbar-static-top.navbar .menu-bar>.navbar-nav>li.weblink:first-child {
  border-top-width: 0; border-bottom-width: 0; height: 72px;
}

/* Subscription toggle */
.pp-follow-toggle.btn-default {
  color: #96004b !important;
  border-radius: 2px;
  font-family: Arial;
  font-weight: 600;
  font-size: 14px;
  border-color: #96004b !important;
  padding: 6px 20px;
  width: fit-content;
  border-style: solid;
  border-width: 1.6px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent !important;
}

.list-group.nav-profile>a.list-group-item.active {
  border-color: #7a003d;
  background-color: #96004b;
}

/* Hide "I have an existing account" button */
#mainContent .form-horizontal .form-group div.checkbox:has(#RedeemByLogin) { display: none; }

.attachment.alert.alert-block.clearfix { color: #7a003d !important; }
a.attachment-file { color: var(--jao-burgundy); }

.modal-header>button.form-close>span:first-child { color: white; }


/* =========================================================
   FOOTER
   ========================================================= */

/* Tokens */
.jao-footer{
  --brand: var(--jao-burgundy, #96004B);
  --black: var(--jao-black, #000000);
  --grey-600: var(--jao-dark-grey, #1f2937);
  --grey-500: var(--jao-medium-grey, #4b5563);
  --grey-100: var(--jao-very-light-grey, #f3f4f6);
  --border: var(--jao-border-grey, #e5e7eb);
  --bg: var(--jao-bg, #ffffff);
  --hover: var(--jao-hover-light, rgba(150,0,75,.05));
  --focus: var(--jao-focus-ring, rgba(150,0,75,.2));
  --font: var(--jao-font, "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);
}

/* Utility */
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* Base */
.jao-footer{background:var(--bg);color:var(--grey-600);font-family:var(--font);}
.jao-footer .container{max-width:1320px;margin-inline:auto;padding-inline:16px;}

/* Grid with named areas */
.jao-footer > .container.jao-footer__grid{
  display:grid;
  grid-template-areas:"brand" "cols";
  grid-template-columns:1fr;
  gap:28px;
  padding-block:32px 24px;
  text-align:left;
}
@media (min-width:960px){
  .jao-footer > .container.jao-footer__grid{
    grid-template-columns:360px 1fr;
    grid-template-areas:"brand cols";
    column-gap:56px;
    align-items:start;
  }
}
.jao-footer__brand{grid-area:brand;justify-self:start;text-align:left;}
.jao-footer__cols{grid-area:cols;}

/* Left column */
.jao-footer__logo{display:inline-block;line-height:0;margin-bottom:12px;}
.jao-footer__logo svg{display:block;max-width:100%;height:auto;}
.jao-footer__address p{margin:0;line-height:1.5;color:var(--black);font-size:1rem;}
.jao-footer__hairline{border:none;border-top:1px solid var(--border);margin:18px 0 12px;}

.jao-footer__follow-label{
  display:block;margin:0 0 10px;
  font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;
  color:var(--brand);font-weight:700;
}
.jao-footer__social{list-style:none;display:flex;gap:10px;margin:0;padding:0;}
.jao-footer__social-btn{
  width:34px;height:34px;display:grid;place-items:center;
  border-radius:8px;border:1px solid var(--border);
  background:#f8f8f8;color:var(--grey-600);
  text-decoration:none;transition:background .12s,color .12s,border-color .12s,transform .12s;
}
.jao-footer__social-btn:hover{background:var(--hover);color:var(--brand);border-color:var(--brand);}
.jao-footer__social-btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus),0 0 0 1px var(--brand);}

/* Right columns */
.jao-footer__cols{display:grid;gap:16px 40px;grid-template-columns:repeat(2, minmax(180px,1fr));}
@media (min-width:760px){.jao-footer__cols{grid-template-columns:repeat(3, minmax(180px,1fr));}}
@media (min-width:960px){.jao-footer__cols{grid-template-columns:repeat(5, minmax(160px,1fr));}}

.jao-footer__title{
  margin:0 0 12px;font-size:.82rem;text-transform:uppercase;
  letter-spacing:.04em;font-weight:700;color:#a8b0b8;
}

.jao-footer__col{list-style:none;margin:0;padding:0;}
.jao-footer__col a{
  display:inline-block;padding-block:8px;color:var(--grey-600);
  text-decoration:none;font-size:1rem;line-height:1.6;font-weight:500;
}
.jao-footer__col a:hover{color:var(--brand);text-decoration:underline;}
.jao-footer__col a:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus),0 0 0 1px var(--brand);border-radius:6px;}
.jao-footer__link--bold{font-weight:700;}
.jao-footer__col a.jao-footer__link--bold { font-weight: 700; }

/* =========================================================
   Hide PVA / Copilot launcher (always)
   ========================================================= */
pva-embedded-web-chat .pva-embedded-web-chat-widget,
pva-embedded-web-chat .pva-embedded-web-chat-launcher,
div.pva-embedded-web-chat .pva-embedded-web-chat-widget,
div.pva-embedded-web-chat .pva-embedded-web-chat-launcher,
pva-embedded-web-chat [data-testid*="launcher"],
div.pva-embedded-web-chat [data-testid*="launcher"] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Microsoft official sign-in button style */
form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][id*="login.microsoftonline.com"],
form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][value*="login.microsoftonline.com"] {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  padding: 12px 22px 12px 52px !important;   /* space for logo */
  border-radius: 6px !important;             /* MS uses slightly rounded corners */
  background: #ffffff !important;            /* white button */
  color: #000000 !important;                 /* black text */
  border: 1px solid #D1D5DB !important;      /* subtle gray border */
  box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
  font-weight: 600 !important;
}

/* Microsoft 4-square logo (official colors) */
form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][id*="login.microsoftonline.com"]::before,
form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][value*="login.microsoftonline.com"]::before {
  content: "" !important;
  position: absolute !important;
  left: 18px;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-size: 20px 20px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'><rect x='0' y='0' width='9' height='9' fill='%23F25022'/><rect x='11' y='0' width='9' height='9' fill='%237FBA00'/><rect x='0' y='11' width='9' height='9' fill='%2300A4EF'/><rect x='11' y='11' width='9' height='9' fill='%23FFB900'/></svg>");
}

form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][id*="login.microsoftonline.com"]:hover,
form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][value*="login.microsoftonline.com"]:hover {
  background: #F9FAFB !important;
  border-color: #CBD5E1 !important;
}

form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][id*="login.microsoftonline.com"]:focus-visible,
form[action^="/Account/Login/ExternalLogin"] button.btn[name="provider"][value*="login.microsoftonline.com"]:focus-visible {
  outline: 3px solid rgba(0,0,0,0.2) !important;
  outline-offset: 2px !important;
}


/* =========================================================
   JAO Chatbot Theme (Power Pages, PVA/Copilot Studio)
   Version B — FULL SCREEN OVERLAY
   (READABILITY PASS: darker text, honor bold, tighter spacing)
   ========================================================= */

/* ---------------- Shared design tokens ---------------- */
.pva-embedded-web-chat{
  --chat-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --chat-font-size: 0.90rem;           /* smaller */
  --chat-line-height: 1.42;            /* denser */
  --chat-text-color: #0F172A;          /* slate-900, darker */

  --brand-burgundy: var(--jao-burgundy, #96004B);
  --brand-burgundy-hover: var(--jao-burgundy-hover, #7a003d);
  --brand-black: var(--jao-black, #000);
  --neutral-900: var(--jao-dark-grey, #1f2937);
  --neutral-700: var(--jao-medium-grey, #4b5563);
  --neutral-500: var(--jao-light-grey, #6b7280);
  --border: var(--jao-border-grey, #e5e7eb);
  --surface: var(--jao-bg, #fff);
  --surface-muted: var(--jao-bg-muted, #f9fafb);
  --focus-ring: var(--jao-focus-ring, rgba(150,0,75,.20));
  --shadow-xs: var(--jao-shadow-xs, 0 1px 2px rgba(0,0,0,.03));
  --shadow-sm: var(--jao-shadow-sm, 0 1px 3px rgba(0,0,0,.06));
  --shadow-md: var(--jao-shadow-md, 0 4px 10px rgba(0,0,0,.10));
  --shadow-lg: var(--jao-shadow-lg, 0 10px 24px rgba(0,0,0,.12));
  --bubble-radius: 16px;
  --card-radius: 14px;
}

/* ---------------- Layout: full-viewport overlay ---------------- */

/* Host overlays entire viewport */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']{
  position: fixed !important;
  inset: 0 !important;
  width:100% !important; height:100vh !important; height:100dvh !important;
  max-width:none !important; max-height:none !important;
  margin:0 !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important; overflow:hidden !important;
  z-index: 2147483647 !important;
  padding-top: env(safe-area-inset-top,0);
  padding-bottom: env(safe-area-inset-bottom,0);
  padding-left: env(safe-area-inset-left,0);
  padding-right: env(safe-area-inset-right,0);
}

/* Prevent background scroll while open */
html:has(pva-embedded-web-chat[data-minimized='false']),
body:has(pva-embedded-web-chat[data-minimized='false']){ overflow:hidden !important; }

/* Container grid [header][window] */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .pva-embedded-web-chat-window-container{
  position:absolute !important; inset:0 !important;
  display:grid !important; grid-template-rows:auto 1fr !important;
}

/* Header */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .pva-embedded-web-chat-header-container,
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  [class*="header"]{
  grid-row:1 !important;
  position: sticky !important;
  top: env(safe-area-inset-top, 0) !important;
  z-index: 2 !important;
  background: var(--brand-burgundy) !important; color:#fff !important;
}

/* Window */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .pva-embedded-web-chat-window{
  grid-row:2 !important;
  display:flex !important; flex-direction:column !important;
  min-height:0 !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important;
}

/* Transcript + composer */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .webchat__stacked-layout{ display:flex !important; flex-direction:column !important; flex:1 1 auto !important; min-height:0 !important; }
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .webchat__basic-transcript{ flex:1 1 auto !important; min-height:0 !important; overflow-y:auto !important; }

/* Hide floating launcher */
pva-embedded-web-chat .pva-embedded-web-chat-widget,
pva-embedded-web-chat .pva-embedded-web-chat-launcher,
div.pva-embedded-web-chat .pva-embedded-web-chat-widget,
div.pva-embedded-web-chat .pva-embedded-web-chat-launcher{ display:none !important; }

/* ---------------- Visual polish (readability) ---------------- */
.pva-embedded-web-chat,
.pva-embedded-web-chat *:not(i):not(.bi):not(.glyphicon){
  font-family:var(--chat-font) !important;
  font-size:var(--chat-font-size) !important;
  line-height:var(--chat-line-height) !important;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

.pva-embedded-web-chat-window{ background:var(--surface) !important; border:1px solid var(--border) !important; border-radius:var(--card-radius) !important; box-shadow:var(--shadow-lg) !important; overflow:hidden !important; }
.pva-embedded-web-chat-header, .pva-embedded-web-chat-header-container{ border-bottom:none !important; }
.pva-embedded-web-chat [class*="header"] .pva-embedded-web-chat-title{ color:#fff !important; font-weight:600 !important; letter-spacing:.3px !important; font-size:calc(var(--chat-font-size) * 1.05) !important; }
.pva-embedded-web-chat-header button, .pva-embedded-web-chat-icon-button{ color:#fff !important; }
.pva-embedded-web-chat-header button:hover, .pva-embedded-web-chat-icon-button:hover{ background:rgba(255,255,255,.08) !important; border-radius:6px !important; }

/* Tighter layout */
.webchat__basic-transcript{ margin:0 !important; padding:8px !important; background:var(--surface) !important; }  /* ↓ 8px */
.webchat__row{ margin-bottom:4px !important; }                                                          /* ↓ */
.webchat__timestamp{ color:var(--neutral-500) !important; font-size:calc(var(--chat-font-size) * .85) !important; }

.webchat__bubble{ max-width:86% !important; border-radius:var(--bubble-radius) !important; box-shadow:var(--shadow-xs) !important; }
.webchat__bubble__content{ padding:6px 10px !important; color:var(--chat-text-color) !important; }      /* ↓ + darker */

/* Respect bold/italic/underline */
.pva-embedded-web-chat .webchat__bubble__content b,
.pva-embedded-web-chat .webchat__bubble__content strong,
.pva-embedded-web-chat .webchat__bubble .ac-container b,
.pva-embedded-web-chat .webchat__bubble .ac-container strong{ font-weight:700 !important; }
.pva-embedded-web-chat .webchat__bubble__content em,
.pva-embedded-web-chat .webchat__bubble .ac-container em,
.pva-embedded-web-chat .webchat__bubble__content i{ font-style:italic !important; }
.pva-embedded-web-chat .webchat__bubble__content u{ text-decoration:underline !important; }

/* BOT bubble */
.webchat__bubble--from-bot .webchat__bubble__content{ background:#fff !important; color:var(--chat-text-color) !important; border:1px solid var(--border) !important; }
/* USER bubble */
.webchat__bubble--from-user .webchat__bubble__content{ background:var(--brand-burgundy) !important; color:#fff !important; }
.webchat__bubble--from-user .webchat__bubble__content *:not(svg):not(path){ color:#fff !important; }

.webchat__scrollToEndButton{ background:var(--brand-burgundy) !important; color:#fff !important; border-radius:999px !important; box-shadow:var(--shadow-sm) !important; }

.webchat__send-box{ background:var(--surface) !important; border-top:1px solid var(--border) !important; }
.webchat__send-box-text-box__input, .webchat__send-box-text-box__input::placeholder{ font-family:var(--chat-font) !important; font-size:var(--chat-font-size) !important; }
.webchat__send-box-text-box__input{ background:#fff !important; color:var(--brand-black) !important; border:1px solid var(--border) !important; border-radius:999px !important; padding:10px 12px !important; }
.webchat__send-box-text-box__input:focus{ border-color:var(--brand-burgundy) !important; box-shadow:0 0 0 3px var(--focus-ring) !important; outline:none !important; }

/* Subtle suggested-action chips (darker text) */
.webchat__suggested-actions .webchat__suggested-action{
  background:#FFFFFF !important;
  color:var(--chat-text-color) !important;
  border:1px solid rgba(17,24,39,.18) !important;
  border-radius:999px !important;
  padding:6px 10px !important;
  box-shadow:0 1px 0 rgba(0,0,0,.02) !important;
  font-weight:600 !important;
  font-size:calc(var(--chat-font-size) * .95) !important;
}
.webchat__suggested-actions .webchat__suggested-action:hover{
  background:#f6f6f6 !important;
  border-color:rgba(17,24,39,.28) !important;
}

/* Typing indicator */
.webchat__typing, .webchat__typingIndicator, .webchat__typing-indicator, .webchat__typing__indicator{
  display:inline-flex !important; align-items:center !important; gap:8px !important;
  color:var(--neutral-700) !important; background:var(--surface-muted) !important; border:1px solid var(--border) !important;
  border-radius:999px !important; padding:6px 10px !important; max-width:60% !important;
}
@keyframes jaoTypingDots{ 0%,80%,100%{opacity:.25;} 40%{opacity:1;} }
.webchat__typing::after, .webchat__typingIndicator::after, .webchat__typing-indicator::after, .webchat__typing__indicator::after{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--brand-burgundy);
  box-shadow:10px 0 0 var(--brand-burgundy), 20px 0 0 var(--brand-burgundy); animation:jaoTypingDots 1.1s infinite ease-in-out;
}

/* Adaptive Cards — compact spacing, dark text, keep emphasis */
.pva-embedded-web-chat .webchat__bubble--from-bot .ac-container,
.pva-embedded-web-chat .webchat__bubble--from-bot .ac-adaptiveCard,
.pva-embedded-web-chat .webchat__bubble--from-bot .ac-card{
  background:#fff !important; border:1px solid var(--border) !important; border-radius:12px !important; box-shadow:var(--shadow-xs) !important; padding:10px !important;
  font-family:var(--chat-font) !important; font-size:var(--chat-font-size) !important; line-height:var(--chat-line-height) !important; color:var(--chat-text-color) !important;
}
.pva-embedded-web-chat .webchat__bubble .ac-container .ac-textBlock,
.pva-embedded-web-chat .webchat__bubble .ac-container p,
.pva-embedded-web-chat .webchat__bubble .ac-container li{
  color:inherit !important;
  margin:.15rem 0 .3rem !important;                          /* tighter paragraphs/lists */
}
.pva-embedded-web-chat .webchat__bubble .ac-container ul,
.pva-embedded-web-chat .webchat__bubble .ac-container ol{ padding-left:1rem !important; margin:.1rem 0 .3rem !important; }
.pva-embedded-web-chat .webchat__bubble .ac-container h1,
.pva-embedded-web-chat .webchat__bubble .ac-container h2,
.pva-embedded-web-chat .webchat__bubble .ac-container h3{ color:var(--brand-black) !important; margin:0 0 .25rem !important; font-weight:700 !important; }

/* Inputs in cards */
.pva-embedded-web-chat .webchat__bubble .ac-input,
.pva-embedded-web-chat .webchat__bubble .ac-textInput,
.pva-embedded-web-chat .webchat__bubble .ac-numberInput,
.pva-embedded-web-chat .webchat__bubble .ac-dateInput,
.pva-embedded-web-chat .webchat__bubble .ac-timeInput,
.pva-embedded-web-chat .webchat__bubble .ac-multichoiceInput,
.pva-embedded-web-chat .webchat__bubble .ac-choiceSetInput,
.pva-embedded-web-chat .webchat__bubble .ac-toggleInput{
  font-family:var(--chat-font) !important; font-size:calc(var(--chat-font-size) * .95) !important;
  color:var(--brand-black) !important; background:var(--surface) !important;
  border:1px solid var(--border) !important; border-radius:8px !important; padding:7px 10px !important;
}
.pva-embedded-web-chat .webchat__bubble .ac-input:focus,
.pva-embedded-web-chat .webchat__bubble .ac-textInput:focus,
.pva-embedded-web-chat .webchat__bubble .ac-numberInput:focus,
.pva-embedded-web-chat .webchat__bubble .ac-dateInput:focus,
.pva-embedded-web-chat .webchat__bubble .ac-timeInput:focus,
.pva-embedded-web-chat .webchat__bubble .ac-multichoiceInput:focus,
.pva-embedded-web-chat .webchat__bubble .ac-choiceSetInput select:focus{
  border-color:var(--brand-burgundy) !important; box-shadow:0 0 0 3px var(--focus-ring) !important; outline:none !important;
}
.pva-embedded-web-chat .webchat__bubble .ac-choiceSetInput input[type="radio"],
.pva-embedded-web-chat .webchat__bubble .ac-choiceSetInput input[type="checkbox"]{ accent-color:var(--brand-burgundy) !important; }
.pva-embedded-web-chat .webchat__bubble .ac-choiceSetInput label{ margin-left:.35rem !important; color:var(--chat-text-color) !important; }

/* Action buttons in cards — subtle + compact */
.pva-embedded-web-chat .webchat__bubble .ac-actionSet,
.pva-embedded-web-chat .webchat__bubble .ac-actions{ margin-top:.4rem !important; display:flex !important; flex-wrap:wrap !important; gap:.35rem !important; }
.pva-embedded-web-chat .webchat__bubble .ac-pushButton,
.pva-embedded-web-chat .webchat__bubble .ac-actionSet button,
.pva-embedded-web-chat .webchat__bubble .ac-actions button{
  font-family:var(--chat-font) !important; font-weight:600 !important; font-size:calc(var(--chat-font-size) * .95) !important;
  padding:7px 12px !important; border-radius:999px !important; border:1px solid rgba(17,24,39,.18) !important;
  background:#fff !important; color:var(--chat-text-color) !important; transition:background .15s ease, border-color .15s ease !important;
}
.pva-embedded-web-chat .webchat__bubble .ac-actionSet button[type="submit"],
.pva-embedded-web-chat .webchat__bubble .ac-pushButton.ac-pushButton--primary,
.pva-embedded-web-chat .webchat__bubble .ac-actionSet button.ac-pushButton--primary{
  background:var(--brand-burgundy) !important; color:#fff !important; border-color:var(--brand-burgundy) !important;
}
.pva-embedded-web-chat .webchat__bubble .ac-pushButton:hover,
.pva-embedded-web-chat .webchat__bubble .ac-actionSet button:hover,
.pva-embedded-web-chat .webchat__bubble .ac-actions button:hover{ background:#f6f6f6 !important; border-color:rgba(17,24,39,.28) !important; }

.pva-embedded-web-chat .webchat__bubble .ac-showCard,
.pva-embedded-web-chat .webchat__bubble .ac-container .ac-showCard{ margin-top:.3rem !important; padding-top:.3rem !important; border-top:1px dashed var(--border) !important; }

.pva-embedded-web-chat .webchat__bubble .ac-input-validation,
.pva-embedded-web-chat .webchat__bubble .ac-inlineError{
  color:#991b1b !important; background:#fef2f2 !important; border:1px solid #fecaca !important; border-left:4px solid #ef4444 !important;
  border-radius:6px !important; padding:.4rem .6rem !important; margin-top:.35rem !important;
}

@media (prefers-reduced-motion: reduce){
  .pva-embedded-web-chat-window, .pva-embedded-web-chat-launcher, .webchat__bubble, .webchat__suggested-action{ transition:none !important; }
}
@media print{
  .pva-embedded-web-chat, .pva-embedded-web-chat-window, .pva-embedded-web-chat-launcher{ display:none !important; }
}

/* Optional: hide chat while a specific portal modal is open */
:root:has(table[data-name="Knowledge Information"]) .pva-embedded-web-chat{ display:none !important; }


/* =========================================================
   JAO Chatbot — FULL SCREEN (100% viewport), header pinned
   (kept in sync with overlay section)
   ========================================================= */

/* Design tokens */
.pva-embedded-web-chat{
  --chat-font: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --chat-font-size: 0.90rem;
  --chat-line-height: 1.42;
  --chat-text-color: #0F172A;

  --brand-burgundy: var(--jao-burgundy, #96004B);
  --brand-burgundy-hover: var(--jao-burgundy-hover, #7a003d);
  --brand-black: var(--jao-black, #000);

  --neutral-900: var(--jao-dark-grey, #1f2937);
  --neutral-700: var(--jao-medium-grey, #4b5563);
  --neutral-500: var(--jao-light-grey, #6b7280);
  --border: var(--jao-border-grey, #e5e7eb);
  --surface: var(--jao-bg, #fff);
  --surface-muted: var(--jao-bg-muted, #f9fafb);

  --focus-ring: var(--jao-focus-ring, rgba(150,0,75,.20));
  --shadow-xs: 0 1px 2px rgba(0,0,0,.03);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.06);
  --shadow-md: 0 4px 10px rgba(0,0,0,.10);
  --shadow-lg: 0 10px 24px rgba(0,0,0,.12);
  --bubble-radius: 16px;
  --card-radius: 14px;
}

/* Host overlays entire viewport */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']{
  position: fixed !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100vh !important;
  height: 100svh !important;
  height: 100dvh !important;
  max-width: none !important; max-height: none !important;
  margin: 0 !important; border: 0 !important; border-radius: 0 !important;
  box-shadow: none !important; overflow: hidden !important;
  z-index: 2147483647 !important;
  background: var(--surface) !important;
  padding-top: env(safe-area-inset-top, 0);
  padding-bottom: env(safe-area-inset-bottom, 0);
  padding-left: env(safe-area-inset-left, 0);
  padding-right: env(safe-area-inset-right, 0);
  overscroll-behavior: none;
}

/* Block page scroll while open */
html:has(pva-embedded-web-chat[data-minimized='false']),
body:has(pva-embedded-web-chat[data-minimized='false']){ overflow: hidden !important; }

/* Container grid */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .pva-embedded-web-chat-window-container{
  position: absolute !important; inset: 0 !important;
  display: grid !important; grid-template-rows: auto 1fr !important;
  min-height: 0 !important;
}

/* Header pinned */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .pva-embedded-web-chat-header-container,
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false'] [class*="header"]{
  grid-row: 1 !important;
  position: sticky !important;
  top: env(safe-area-inset-top, 0) !important;
  z-index: 2 !important;
  background: var(--brand-burgundy) !important;
  color: #fff !important;
  border-bottom: none !important;
}

/* Window fills the rest */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .pva-embedded-web-chat-window{
  grid-row: 2 !important;
  display: flex !important; flex-direction: column !important;
  min-height: 0 !important;
  border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
}

/* Transcript + composer consume height */
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false']
  .webchat__stacked-layout{ display: grid !important; grid-template-rows: 1fr auto !important; height: 100% !important; min-height: 0 !important; }
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false'] .webchat__basic-transcript{
  grid-row: 1 !important; min-height: 0 !important;
  overflow-y: auto !important; -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  margin: 0 !important; padding: 8px !important;                         /* ↓ 8px */
}
:is(pva-embedded-web-chat, div.pva-embedded-web-chat)[data-minimized='false'] .webchat__send-box{ grid-row: 2 !important; }

/* Hide floating launcher */
pva-embedded-web-chat .pva-embedded-web-chat-widget,
pva-embedded-web-chat .pva-embedded-web-chat-launcher,
div.pva-embedded-web-chat .pva-embedded-web-chat-widget,
div.pva-embedded-web-chat .pva-embedded-web-chat-launcher{ display: none !important; }

/* Visuals */
.pva-embedded-web-chat,
.pva-embedded-web-chat *:not(i):not(.bi):not(.glyphicon){
  font-family: var(--chat-font) !important;
  font-size: var(--chat-font-size) !important;
  line-height: var(--chat-line-height) !important;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.pva-embedded-web-chat-window-container{ width:100% !important; max-width:none !important; }
.pva-embedded-web-chat-window{
  margin:0 !important; padding:0 !important; background:var(--surface) !important;
  border:1px solid var(--border) !important; border-radius:var(--card-radius) !important;
  box-shadow:var(--shadow-lg) !important; overflow:hidden !important;
}
.pva-embedded-web-chat [class*="header"] .pva-embedded-web-chat-title{ color:#fff !important; font-weight:600 !important; letter-spacing:.3px !important; font-size: calc(var(--chat-font-size) * 1.05) !important; }
.pva-embedded-web-chat-header button, .pva-embedded-web-chat-icon-button{ color:#fff !important; opacity:.95 !important; }
.pva-embedded-web-chat-header button:hover, .pva-embedded-web-chat-icon-button:hover{ background:rgba(255,255,255,.08) !important; border-radius:6px !important; }
.pva-embedded-web-chat-header button:focus-visible, .pva-embedded-web-chat-icon-button:focus-visible{ outline:3px solid var(--focus-ring) !important; outline-offset:2px !important; }

.webchat__basic-transcript{ background:var(--surface) !important; }
.webchat__row{ margin-bottom:4px !important; }
.webchat__timestamp{ color:var(--neutral-500) !important; font-size: calc(var(--chat-font-size) * .85) !important; }

.webchat__bubble{ max-width:86% !important; border-radius:var(--bubble-radius) !important; box-shadow:var(--shadow-xs) !important; }
.webchat__bubble__content{ padding:6px 10px !important; color:var(--chat-text-color) !important; }

/* BOT & USER bubbles */
.webchat__bubble--from-bot .webchat__bubble__content{ background:#fff !important; color:var(--chat-text-color) !important; border:1px solid var(--border) !important; }
.webchat__bubble--from-user .webchat__bubble__content{ background:var(--brand-burgundy) !important; color:#fff !important; }
.webchat__bubble--from-user .webchat__bubble__content *:not(svg):not(path){ color:#fff !important; }

.webchat__scrollToEndButton{ background:var(--brand-burgundy) !important; color:#fff !important; border-radius:999px !important; box-shadow:var(--shadow-sm) !important; }

.webchat__send-box{ background:var(--surface) !important; border-top:1px solid var(--border) !important; }
.webchat__send-box-text-box__input,
.webchat__send-box-text-box__input::placeholder{ font-family:var(--chat-font) !important; font-size:var(--chat-font-size) !important; }
.webchat__send-box-text-box__input{
  background:#fff !important; color:var(--brand-black) !important; border:1px solid var(--border) !important;
  border-radius:999px !important; padding:10px 12px !important;
}
.webchat__send-box-text-box__input:focus{ border-color:var(--brand-burgundy) !important; box-shadow:0 0 0 3px var(--focus-ring) !important; outline:none !important; }

/* Suggested actions */
.webchat__suggested-actions .webchat__suggested-action{
  border:1px solid rgba(17,24,39,.18) !important; color:var(--chat-text-color) !important;
  background:#fff !important; border-radius:999px !important; padding:6px 10px !important; font-weight:600 !important;
  font-size: calc(var(--chat-font-size) * 0.95) !important;
}
.webchat__suggested-actions .webchat__suggested-action:hover{ background:#f6f6f6 !important; border-color:rgba(17,24,39,.28) !important; }

/* Typing */
.webchat__typing, .webchat__typingIndicator, .webchat__typing-indicator, .webchat__typing__indicator{
  display:inline-flex !important; align-items:center !important; gap:8px !important;
  color:var(--neutral-700) !important; background:var(--surface-muted) !important; border:1px solid var(--border) !important;
  border-radius:999px !important; padding:6px 10px !important; max-width:60% !important;
}
.webchat__typing svg{ fill:var(--brand-burgundy) !important; opacity:.9 !important; }
@keyframes jaoTypingDots{ 0%,80%,100%{opacity:.25;} 40%{opacity:1;} }
.webchat__typing::after{ content:""; width:6px; height:6px; border-radius:50%; background:var(--brand-burgundy); box-shadow:10px 0 0 var(--brand-burgundy), 20px 0 0 var(--brand-burgundy); animation:jaoTypingDots 1.1s infinite ease-in-out; }

/* =========================================================
   Adaptive Card option tiles — full-width, subtle, compact
   ========================================================= */

/* One column, full width of the bubble */
.ac-container .ac-actionSet,
.ac-container .ac-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: .35rem !important;                         /* tighter gap */
  margin: .2rem 0 !important;
}

/* Option tiles (non-primary) */
.ac-container .ac-pushButton:not(.ac-pushButton--primary),
.ac-container .ac-actionSet > button:not(.ac-pushButton--primary),
.ac-container .ac-actions > button:not(.ac-pushButton--primary) {
  width: 100% !important;
  min-height: 40px !important;                    /* ↓ height */
  padding: 10px 12px 10px 16px !important;        /* ↓ padding */

  background: #ffffff !important;
  color: var(--chat-text-color) !important;
  border: 1px solid rgba(17,24,39,.18) !important;
  border-radius: 10px !important;
  box-shadow: 0 1px 0 rgba(0,0,0,.02) !important;

  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: .55rem !important;
  text-align: left !important;
  font-weight: 600 !important;
  line-height: 1.28 !important;
  font-size: calc(var(--chat-font-size) * 0.95) !important;

  position: relative !important;
  transition: background .15s ease, border-color .15s ease !important;
}

/* Left accent (subtle) */
.ac-container .ac-pushButton:not(.ac-pushButton--primary)::before,
.ac-container .ac-actionSet > button:not(.ac-pushButton--primary)::before,
.ac-container .ac-actions > button:not(.ac-pushButton--primary)::before {
  content: "";
  position: absolute;
  left: 8px; top: 6px; bottom: 6px;               /* tighter */
  width: 3px; border-radius: 3px;
  background: linear-gradient(180deg, var(--jao-burgundy), #7a003d);
  opacity: .9;
}

/* Chevron (smaller) */
.ac-container .ac-pushButton:not(.ac-pushButton--primary)::after,
.ac-container .ac-actionSet > button:not(.ac-pushButton--primary)::after,
.ac-container .ac-actions > button:not(.ac-pushButton--primary)::after {
  content: "›";
  font-size: .95rem;
  line-height: 1;
  color: var(--jao-burgundy);
  opacity: .55;
  margin-left: .25rem;
}

/* Hover/focus */
.ac-container .ac-pushButton:not(.ac-pushButton--primary):hover,
.ac-container .ac-actionSet > button:not(.ac-pushButton--primary):hover,
.ac-container .ac-actions > button:not(.ac-pushButton--primary):hover {
  background: #f6f6f6 !important;
  border-color: rgba(17,24,39,.28) !important;
}
.ac-container .ac-pushButton:not(.ac-pushButton--primary):focus-visible,
.ac-container .ac-actionSet > button:not(.ac-pushButton--primary):focus-visible,
.ac-container .ac-actions > button:not(.ac-pushButton--primary):focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 3px var(--jao-focus-ring) !important;
}
```
