/* Bumi: launcher, pane, conversation, office cards, feedback screen. Every rule is scoped under .usc-bumi.
   Navy, gold and the fonts point at the usc-council theme's tokens (--usc-navy, --usc-gold, --usc-display,
   --usc-ui, --usc-body), with the theme's own values as fallbacks, so the pane matches the site.
   Every text colour pair below meets 4.5:1, and the text field borders (--bumi-field-line) meet 3:1. */
.usc-bumi{
  --bumi-navy:var(--usc-navy,#00205C);--bumi-gold:var(--usc-gold,#FFB81D);--bumi-logo-bg:#FFFFFF;--bumi-ink:#1B2440;--bumi-muted:#5A6480;
  --bumi-bg:#F6F7FB;--bumi-line:#D7DCE8;--bumi-field-line:#8A93A8;--bumi-card-line:#E3E7F0;--bumi-on-navy:#C9D3EC;
  --bumi-office-bg:#FFF8E6;--bumi-office-line:#F1D9A0;--bumi-office-label:#6B5317;
  --bumi-font-display:var(--usc-display,"League Spartan","Montserrat",system-ui,sans-serif);
  --bumi-font-ui:var(--usc-ui,"Montserrat",system-ui,sans-serif);
  --bumi-font-body:var(--usc-body,"Poppins",system-ui,sans-serif);
  font-family:var(--bumi-font-body);font-size:15px;line-height:1.5;color:var(--bumi-ink);font-weight:400;letter-spacing:normal;text-align:left
}
.usc-bumi *,.usc-bumi *::before,.usc-bumi *::after{box-sizing:border-box}
.usc-bumi [hidden]{display:none!important}
/* Element resets carry no extra specificity (:where), so the component classes below always win. */
:where(.usc-bumi) :where(p,h2,h3,ul,li){margin:0;padding:0;list-style:none}
:where(.usc-bumi) img{display:block;max-width:none;height:auto}
:where(.usc-bumi) :where(button,input,textarea){font:inherit;color:inherit;margin:0}
:where(.usc-bumi) button{cursor:pointer;background:none;border:0;padding:0}
:where(.usc-bumi) a{color:var(--bumi-navy)}
.usc-bumi :focus-visible{outline:2px solid var(--bumi-navy);outline-offset:2px}
.usc-bumi-sr{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;white-space:nowrap}
.usc-bumi-num{font-family:var(--bumi-font-ui);font-weight:600;font-variant-numeric:tabular-nums}

/* ---- Launcher ---- */
.usc-bumi-launcher{position:fixed;z-index:9990;right:24px;bottom:24px;display:flex;align-items:center;gap:12px}
.usc-bumi-launcher__btn{width:64px;height:64px;flex:none;border-radius:50%!important;background:var(--bumi-navy)!important;border:3px solid var(--bumi-gold)!important;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(0,32,92,.32);transition:transform .15s}
.usc-bumi-launcher__btn:hover{transform:translateY(-2px)}
.usc-bumi-launcher__btn:focus-visible{outline:3px solid var(--bumi-navy);outline-offset:3px}
.usc-bumi-launcher__face{width:50px;height:50px;border-radius:50%;background:var(--bumi-logo-bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.usc-bumi-launcher__face img{width:50px;height:50px}
.usc-bumi-tip{position:relative;max-width:230px;background:#fff;border:1px solid var(--bumi-card-line);border-radius:12px;padding:10px 14px;font:500 14px/1.4 var(--bumi-font-ui);color:var(--bumi-ink);box-shadow:0 6px 18px rgba(0,32,92,.14);cursor:pointer}
.usc-bumi-tip::after{content:"";position:absolute;right:-7px;top:50%;width:12px;height:12px;background:#fff;border-right:1px solid var(--bumi-card-line);border-top:1px solid var(--bumi-card-line);transform:translateY(-50%) rotate(45deg)}
.usc-bumi.is-open .usc-bumi-tip{display:none}

/* ---- Pane ---- */
.usc-bumi-panel{position:fixed;z-index:9991;right:24px;bottom:100px;width:400px;height:min(720px,calc(100vh - 124px));height:min(720px,calc(100dvh - 124px));background:var(--bumi-bg);border-radius:14px;border:1px solid var(--bumi-card-line);box-shadow:0 24px 60px rgba(0,32,92,.28);display:flex;flex-direction:column;overflow:hidden}

/* Header */
.usc-bumi-head{background:var(--bumi-navy);color:#fff;display:flex;align-items:center;gap:12px;padding:12px 10px 12px 16px;flex:none}
.usc-bumi-head :focus-visible{outline-color:var(--bumi-gold)}
.usc-bumi-head__logo{width:48px;height:48px;flex:none;border-radius:50%;background:var(--bumi-logo-bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.usc-bumi-head__logo img{width:48px;height:48px}
.usc-bumi-head__text{min-width:0;flex:1}
.usc-bumi .usc-bumi-title{font:600 20px/1.15 var(--bumi-font-display);color:#fff;letter-spacing:0;margin:0}
.usc-bumi-title:focus{outline:none}
.usc-bumi-title:focus-visible{outline:2px solid var(--bumi-gold);outline-offset:2px}
.usc-bumi-subtitle{font:400 13px/1.35 var(--bumi-font-body);color:var(--bumi-on-navy);margin-top:2px}
.usc-bumi-head__actions{display:flex;gap:2px;margin-left:auto;flex:none}
.usc-bumi-iconbtn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:#fff}
.usc-bumi-iconbtn:hover{background:rgba(255,255,255,.12)}
.usc-bumi-iconbtn--back{margin-left:-6px}

/* Language pills */
.usc-bumi-langs{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--bumi-card-line);flex:none}
.usc-bumi-pill{flex:1 1 auto;min-height:44px;padding:0 12px;border-radius:22px;border:1px solid var(--bumi-line)!important;background:#fff;color:var(--bumi-ink);font:500 14px/1.2 var(--bumi-font-ui);white-space:nowrap}
.usc-bumi-pill:hover{border-color:var(--bumi-navy)!important}
.usc-bumi-pill[aria-pressed="true"]{background:var(--bumi-navy);border-color:var(--bumi-navy)!important;color:#fff;font-weight:600}

/* Body */
.usc-bumi-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.usc-bumi-intro{background:#fff;border:1px solid var(--bumi-card-line);border-radius:2px 14px 14px 14px;padding:14px 16px;font-size:15px;line-height:1.5}
.usc-bumi-label{font:600 12px/1.3 var(--bumi-font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--bumi-muted);margin:18px 0 8px!important}
.usc-bumi-suggestions{display:flex;flex-direction:column;gap:8px}
.usc-bumi-suggestion{display:block;width:100%;min-height:44px;text-align:left;background:#fff!important;border:1px solid var(--bumi-line)!important;border-radius:10px;padding:11px 14px!important;font:500 14px/1.4 var(--bumi-font-ui);color:var(--bumi-navy)}
.usc-bumi-suggestion:hover{border-color:var(--bumi-navy)!important}

/* Conversation */
.usc-bumi-log{display:flex;flex-direction:column;gap:14px}
.usc-bumi-log:empty{display:none}
.usc-bumi-msg--user{display:flex;justify-content:flex-end}
.usc-bumi-bubble{max-width:85%;background:var(--bumi-navy);color:#fff;border-radius:14px 14px 2px 14px;padding:10px 14px;font-size:15px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.usc-bumi-msg--bot{display:flex;align-items:flex-start;gap:8px}
.usc-bumi-avatar{width:30px;height:30px;flex:none;border-radius:50%;background:var(--bumi-logo-bg);border:1px solid var(--bumi-line);display:flex;align-items:center;justify-content:center;overflow:hidden}
.usc-bumi-avatar img{width:28px;height:28px}
.usc-bumi-msg__col{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}
.usc-bumi-readas{font-size:13px;line-height:1.4;color:var(--bumi-muted)}
.usc-bumi-answer{background:#fff;border:1px solid var(--bumi-card-line);border-radius:2px 14px 14px 14px;padding:12px 14px}
.usc-bumi-answer__text{font-size:15px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.usc-bumi-cite{font-size:12px;line-height:0;vertical-align:super;margin:0 1px}
.usc-bumi-cite a{display:inline-block;min-width:18px;padding:1px 4px;border-radius:4px;background:#EEF1F8;color:var(--bumi-navy);text-decoration:none;text-align:center;line-height:1.4}
.usc-bumi-cite a:hover{background:var(--bumi-navy);color:#fff}
.usc-bumi-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px!important}
.usc-bumi-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:6px 12px 6px 6px;border:1px solid var(--bumi-line);border-radius:22px;background:#fff;font:500 14px/1.3 var(--bumi-font-ui);color:var(--bumi-navy);text-decoration:none}
a.usc-bumi-chip:hover{border-color:var(--bumi-navy);background:#F3F5FA}
.usc-bumi-chip__n{flex:none;width:24px;height:24px;border-radius:50%;background:var(--bumi-navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.usc-bumi-notice{background:#fff;border:1px solid var(--bumi-card-line);border-left:3px solid var(--bumi-navy);border-radius:4px 10px 10px 4px;padding:10px 12px;font-size:14px;line-height:1.5}
.usc-bumi-notice.is-waking{border-left-color:var(--bumi-gold)}
.usc-bumi-note{display:flex;gap:6px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--bumi-muted)}
.usc-bumi-ico{flex:none;display:inline-flex;margin-top:2px}

/* Office cards */
.usc-bumi-office{margin-top:12px;border:1px solid var(--bumi-office-line);background:var(--bumi-office-bg);border-radius:10px;overflow:hidden}
.usc-bumi-office--small{padding:10px 12px}
.usc-bumi-office__label{font:600 12px/1.3 var(--bumi-font-ui);letter-spacing:.06em;color:var(--bumi-office-label);margin-bottom:4px!important}
.usc-bumi-office__strip{background:var(--bumi-navy);color:#fff;font:600 12px/1.3 var(--bumi-font-ui);letter-spacing:.12em;text-transform:uppercase;padding:7px 12px}
.usc-bumi-office__body{padding:10px 12px 12px}
.usc-bumi-office__name{font:600 16px/1.3 var(--bumi-font-display);color:var(--bumi-navy)}
.usc-bumi-office__where{font-size:14px;line-height:1.45;margin-top:2px!important}
.usc-bumi-office__rows{display:flex;flex-direction:column;gap:4px;margin-top:6px!important}
.usc-bumi-office__row{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.45}
.usc-bumi-office__row .usc-bumi-ico{color:var(--bumi-office-label)}
.usc-bumi-office__row a{color:var(--bumi-navy);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.usc-bumi-office__source{font-size:12px;line-height:1.4;color:var(--bumi-muted);margin-top:8px!important}

/* Typing indicator */
.usc-bumi-typing{flex-wrap:wrap}
.usc-bumi-dots{display:flex;gap:5px;align-items:center;background:#fff;border:1px solid var(--bumi-card-line);border-radius:2px 14px 14px 14px;padding:13px 15px}
.usc-bumi-dots span{width:7px;height:7px;border-radius:50%;background:var(--bumi-navy);animation:bumidot 1.1s infinite}
.usc-bumi-dots span:nth-child(2){background:var(--bumi-gold);animation-delay:.15s}
.usc-bumi-dots span:nth-child(3){animation-delay:.3s}
.usc-bumi-slow{flex-basis:100%;padding-left:38px;font-size:13px;line-height:1.45;color:var(--bumi-muted)}
@keyframes bumidot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

/* Footer */
.usc-bumi-composer{flex:none;background:#fff;border-top:1px solid var(--bumi-card-line);padding:12px 14px 10px;margin:0}
.usc-bumi-composer__row{display:flex;gap:8px}
.usc-bumi-input{flex:1;min-width:0;min-height:48px;font:400 15px/1.4 var(--bumi-font-body)!important;color:var(--bumi-ink);background:#fff;border:1px solid var(--bumi-field-line)!important;border-radius:12px!important;padding:12px 14px!important;box-shadow:none}
.usc-bumi-input::placeholder{color:var(--bumi-muted);opacity:1;font-family:var(--bumi-font-body)}
.usc-bumi-input:focus{border-color:var(--bumi-navy)!important;outline:2px solid var(--bumi-navy);outline-offset:1px}
.usc-bumi-send{width:48px;height:48px;flex:none;border-radius:12px!important;background:var(--bumi-gold)!important;color:var(--bumi-navy)!important;display:flex;align-items:center;justify-content:center}
.usc-bumi-send:hover{filter:brightness(1.05)}
.usc-bumi-send[disabled]{background:#EEF0F5!important;color:var(--bumi-muted)!important;cursor:progress}
.usc-bumi-foot{font:400 11.5px/1.45 var(--bumi-font-body);color:var(--bumi-muted);margin-top:8px!important}
.usc-bumi-foot a{color:var(--bumi-muted);text-decoration:underline;text-underline-offset:2px;padding:14px 4px;margin:-14px -4px}
/* The vertical padding gives the inline link a 44px touch target without changing the line layout. */
.usc-bumi-textbtn{display:inline-flex;align-items:center;min-height:44px;margin-top:2px;font:500 14px/1.2 var(--bumi-font-ui);color:var(--bumi-navy);text-decoration:underline;text-underline-offset:3px}

/* Feedback screen */
.usc-bumi-feedback{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:14px;overscroll-behavior:contain}
.usc-bumi-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;border-radius:12px;padding:10px 16px!important;font:600 15px/1.2 var(--bumi-font-ui);text-align:center}
.usc-bumi-btn--outline{background:#fff!important;border:1.5px solid var(--bumi-navy)!important;color:var(--bumi-navy)}
.usc-bumi-btn--outline:hover{background:#F3F5FA!important}
.usc-bumi-btn--gold{background:var(--bumi-gold)!important;color:var(--bumi-navy);margin-top:4px}
/* Disabled buttons are solid grey rather than faded, so their text keeps 4.5:1. */
.usc-bumi-btn--gold[disabled]{background:#EEF0F5!important;color:var(--bumi-muted);cursor:not-allowed}
.usc-bumi-card{background:#fff;border:1px solid var(--bumi-card-line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}
.usc-bumi .usc-bumi-card__title{font:500 16px/1.35 var(--bumi-font-body);color:var(--bumi-navy);margin:0}
.usc-bumi-rating{display:flex;flex-direction:column;gap:6px}
.usc-bumi-rating__label{display:block;font:500 14px/1.4 var(--bumi-font-body);color:var(--bumi-ink)}
.usc-bumi-rating__row{display:flex;gap:6px}
.usc-bumi-rate{width:44px;height:44px;border-radius:10px;border:1px solid var(--bumi-line)!important;background:#fff;font:600 15px/1 var(--bumi-font-ui);font-variant-numeric:tabular-nums;color:var(--bumi-ink)}
.usc-bumi-rate:hover{border-color:var(--bumi-navy)!important}
.usc-bumi-rate[aria-pressed="true"]{background:var(--bumi-navy);border-color:var(--bumi-navy)!important;color:#fff}
.usc-bumi-textarea{width:100%;min-height:84px;resize:vertical;font:400 15px/1.5 var(--bumi-font-body)!important;color:var(--bumi-ink);border:1px solid var(--bumi-field-line)!important;border-radius:10px!important;padding:10px 12px!important;background:#fff}
.usc-bumi-textarea:focus{border-color:var(--bumi-navy)!important;outline:2px solid var(--bumi-navy);outline-offset:1px}
.usc-bumi-consent{display:flex;gap:10px;align-items:flex-start;font:400 14px/1.5 var(--bumi-font-body);color:var(--bumi-ink);cursor:pointer}
.usc-bumi-consent input{width:20px;height:20px;margin-top:2px!important;flex:none;accent-color:var(--bumi-navy)}
.usc-bumi-status{font-size:14px;line-height:1.5}
.usc-bumi-status:empty{display:none}
.usc-bumi-status.is-ok{color:var(--bumi-navy);font-weight:500}
.usc-bumi-status.is-error{color:#b3261e}

/* Phones: the pane fills the screen; JS keeps its height equal to the visible viewport. */
@media (max-width:479px){
  .usc-bumi-launcher{right:16px;bottom:16px}
  .usc-bumi-tip{max-width:190px}
  .usc-bumi-panel{inset:0;right:0;bottom:0;width:100%;height:100vh;height:100dvh;border-radius:0;border:0;box-shadow:none}
  .usc-bumi.is-open .usc-bumi-launcher{display:none}
  body.usc-bumi-open{overflow:hidden}
}
@media (min-width:480px) and (max-height:600px){
  .usc-bumi-panel{height:calc(100vh - 112px);height:calc(100dvh - 112px)}
}
@media (prefers-reduced-motion:reduce){
  .usc-bumi-dots span{animation:none;opacity:.7}
  .usc-bumi-launcher__btn{transition:none}
}
