/* Claude assistant widget — floating button + chat panel (uses the --om-* tokens from portal.css) */
.oma-fab{
  position:fixed; right:22px; bottom:22px; z-index:1100;
  display:inline-flex; align-items:center; gap:8px; height:50px; padding:0 20px 0 16px;
  border:0; border-radius:999px; cursor:pointer; color:#fff; font:800 15px/1 var(--om-font,Helvetica,Arial,sans-serif);
  background:linear-gradient(135deg,var(--om-accent,#4d7cff),#7a5cf0);
  box-shadow:0 10px 26px -8px rgba(77,124,255,.65), 0 2px 6px rgba(37,51,77,.18);
  transition:transform .15s ease, box-shadow .15s ease;
}
.oma-fab:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -8px rgba(77,124,255,.75), 0 2px 8px rgba(37,51,77,.2); }
.oma-fab:focus-visible, .oma-ic:focus-visible, .oma-send:focus-visible, .oma-chip:focus-visible{ outline:3px solid rgba(77,124,255,.45); outline-offset:2px; }
.oma-fab i, .oma-fab svg{ width:20px; height:20px; }
.oma-fab.oma-on{ opacity:0; pointer-events:none; }

.oma-panel{
  position:fixed; right:22px; bottom:22px; z-index:1101;
  width:392px; max-width:calc(100vw - 24px); height:min(660px, calc(100vh - 44px));
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--om-panel,#fff); color:var(--om-ink,#25324c);
  border:1px solid var(--om-rule,#e9eef6); border-radius:18px;
  box-shadow:0 24px 60px -16px rgba(37,51,77,.38), 0 4px 14px rgba(37,51,77,.12);
  font-family:var(--om-font,Helvetica,Arial,sans-serif); animation:omaIn .18s ease-out;
}
@keyframes omaIn{ from{ opacity:0; transform:translateY(10px) scale(.98) } to{ opacity:1; transform:none } }

.oma-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 14px 14px 18px;
  background:linear-gradient(135deg,rgba(77,124,255,.14),rgba(122,92,240,.12));
  border-bottom:1px solid var(--om-rule,#e9eef6);
}
.oma-title{ display:flex; align-items:center; gap:10px; min-width:0; }
.oma-title b{ display:block; font-size:15.5px; font-weight:900; line-height:1.15; }
.oma-title small{ display:block; font-size:11.5px; font-weight:700; color:var(--om-ink-3,#9aa6bd); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.oma-dot{ flex:0 0 10px; width:10px; height:10px; border-radius:50%; background:#1aa251; box-shadow:0 0 0 4px rgba(26,162,81,.18); }
.oma-actions{ display:flex; gap:2px; }
.oma-ic{ width:32px; height:32px; border:0; border-radius:10px; background:transparent; color:var(--om-ink-2,#69788f); display:grid; place-items:center; cursor:pointer; }
.oma-ic:hover{ background:rgba(77,124,255,.14); color:var(--om-accent,#4d7cff); }
.oma-ic i, .oma-ic svg{ width:17px; height:17px; }

.oma-body{ flex:1; overflow-y:auto; padding:16px 16px 8px; display:flex; flex-direction:column; gap:10px; scroll-behavior:smooth; }
.oma-welcome p{ margin:0 0 12px; font-size:14px; line-height:1.55; color:var(--om-ink-2,#69788f); }
.oma-welcome p b{ color:var(--om-ink,#25324c); }
.oma-chips{ display:flex; flex-direction:column; gap:8px; }
.oma-chip{
  text-align:left; padding:10px 14px; border-radius:14px; cursor:pointer; font:700 13.5px/1.35 var(--om-font,Helvetica,Arial,sans-serif);
  color:var(--om-accent,#4d7cff); background:var(--om-accent-wash,#eaf0ff); border:1px solid transparent;
}
.oma-chip:hover{ border-color:var(--om-accent,#4d7cff); }
.oma-offer-btns{ flex-direction:row; flex-wrap:wrap; margin-top:8px; }

.oma-msg{ max-width:92%; font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
.oma-user{ align-self:flex-end; padding:9px 14px; border-radius:16px 16px 4px 16px; color:#fff; background:var(--om-accent,#4d7cff); font-weight:600; }
.oma-bot{ align-self:flex-start; padding:10px 14px; border-radius:16px 16px 16px 4px; background:var(--om-canvas,#eef2f8); }
.oma-bot > :first-child{ margin-top:0; } .oma-bot > :last-child{ margin-bottom:0; }
.oma-bot p{ margin:0 0 8px; } .oma-bot ul, .oma-bot ol{ margin:0 0 8px; padding-left:20px; } .oma-bot li{ margin:2px 0; }
.oma-bot code{ padding:1px 5px; border-radius:6px; font-size:12.5px; background:rgba(105,120,143,.18); }
.oma-bot pre{ margin:0 0 8px; padding:10px 12px; border-radius:10px; overflow-x:auto; background:rgba(105,120,143,.16); }
.oma-bot pre code{ padding:0; background:none; }
.oma-tbl{ overflow-x:auto; margin:0 0 8px; }
.oma-tbl table{ border-collapse:collapse; font-size:12.5px; min-width:100%; }
.oma-tbl th, .oma-tbl td{ padding:5px 9px; text-align:left; border-bottom:1px solid var(--om-rule,#e9eef6); white-space:nowrap; }
.oma-tbl th{ font-weight:800; color:var(--om-ink-2,#69788f); }
.oma-tool, .oma-note, .oma-error{ align-self:center; max-width:100%; padding:6px 12px; border-radius:999px; font-size:12.5px; font-weight:700; text-align:center; }
.oma-tool{ color:var(--om-accent,#4d7cff); background:var(--om-accent-wash,#eaf0ff); }
.oma-note{ color:var(--om-ink-2,#69788f); background:var(--om-canvas,#eef2f8); }
.oma-error{ color:#c2272d; background:rgba(229,72,77,.12); border-radius:12px; }
.dark-skin .oma-error{ color:#ff8a8e; }

/* "Request a fresh meter read?" confirmation card */
.oma-confirm{ align-self:stretch; max-width:100%; padding:12px 14px; border-radius:14px; background:var(--om-accent-wash,#eaf0ff); border:1px solid var(--om-accent,#4d7cff); }
.oma-confirm p{ margin:6px 0; font-size:13.5px; color:var(--om-ink-2,#69788f); }
.oma-confirm ul{ margin:0 0 8px; padding-left:18px; font-size:13px; font-weight:700; }
.oma-btns{ display:flex; gap:8px; margin-top:8px; }
.oma-btns button{ flex:1; min-height:38px; border-radius:10px; font:800 13.5px var(--om-font,Helvetica,Arial,sans-serif); cursor:pointer; border:1px solid var(--om-accent,#4d7cff); }
.oma-go{ color:#fff; background:var(--om-accent,#4d7cff); }
.oma-no{ color:var(--om-accent,#4d7cff); background:transparent; }
.oma-btns button:focus-visible{ outline:3px solid rgba(77,124,255,.45); outline-offset:2px; }
.oma-confirm .oma-verdict{ margin:6px 0 0; font-weight:800; color:var(--om-ink,#25324c); }

.oma-typing{ display:inline-flex; gap:4px; padding:4px 0; }
.oma-typing i{ width:7px; height:7px; border-radius:50%; background:var(--om-ink-3,#9aa6bd); animation:omaDot 1.1s infinite ease-in-out; }
.oma-typing i:nth-child(2){ animation-delay:.15s } .oma-typing i:nth-child(3){ animation-delay:.3s }
@keyframes omaDot{ 0%,80%,100%{ opacity:.25; transform:translateY(0) } 40%{ opacity:1; transform:translateY(-3px) } }

.oma-form{ display:flex; align-items:flex-end; gap:8px; padding:10px 12px 6px; }
.oma-form textarea{
  flex:1; resize:none; max-height:120px; padding:10px 14px; border-radius:14px; outline:0;
  font:600 14px/1.45 var(--om-font,Helvetica,Arial,sans-serif); color:var(--om-ink,#25324c);
  background:var(--om-canvas,#eef2f8); border:1px solid transparent;
}
.oma-form textarea:focus{ border-color:var(--om-accent,#4d7cff); background:var(--om-panel,#fff); }
.oma-form textarea::placeholder{ color:var(--om-ink-3,#9aa6bd); }
.oma-send{ flex:0 0 40px; width:40px; height:40px; border:0; border-radius:50%; cursor:pointer; color:#fff; display:grid; place-items:center; background:var(--om-accent,#4d7cff); }
.oma-send i, .oma-send svg{ width:17px; height:17px; }
.oma-send:disabled{ opacity:.45; cursor:default; }
.oma-foot{ padding:2px 16px 10px; font-size:11px; font-weight:700; color:var(--om-ink-3,#9aa6bd); text-align:center; }

@media (max-width:520px){
  .oma-panel{ right:0; bottom:0; width:100vw; max-width:100vw; height:min(86vh, 700px); border-radius:18px 18px 0 0; }
  .oma-fab{ right:14px; bottom:14px; }
}
@media (prefers-reduced-motion:reduce){ .oma-panel{ animation:none } .oma-typing i{ animation:none; opacity:.6 } .oma-fab{ transition:none } }
@media print{ .oma-fab, .oma-panel{ display:none !important } }

/* charts and files the assistant creates */
.oma-chart, .oma-file{ align-self:stretch; max-width:100%; border-radius:14px; border:1px solid var(--om-rule,#e9eef6); background:var(--om-panel,#fff); }
.oma-chart{ padding:10px 10px 6px; }
.oma-ct{ font-size:13.5px; font-weight:800; color:var(--om-ink,#25324c); }
.oma-cs{ font-size:11.5px; font-weight:700; color:var(--om-ink-3,#9aa6bd); margin-bottom:2px; overflow-wrap:anywhere; }
.oma-cb{ min-height:120px; margin:0 -4px; }
.oma-cf{ display:flex; justify-content:flex-end; padding-top:2px; }
.oma-lnk{ border:0; background:transparent; font:800 12.5px var(--om-font,Helvetica,Arial,sans-serif); color:var(--om-accent,#4d7cff); cursor:pointer; padding:6px 4px; border-radius:8px; }
.oma-lnk:hover{ text-decoration:underline; }
.oma-lnk:disabled{ opacity:.6; cursor:default; text-decoration:none; }
.oma-lnk:focus-visible, .oma-fbtn:focus-visible{ outline:3px solid rgba(77,124,255,.45); outline-offset:2px; }
.oma-file{ display:flex; align-items:center; gap:10px; padding:10px 12px; }
.oma-fbadge{ flex:0 0 auto; min-width:42px; text-align:center; padding:8px 6px; border-radius:10px; font:900 11.5px var(--om-font,Helvetica,Arial,sans-serif); letter-spacing:.04em; color:#fff; background:var(--om-accent,#4d7cff); }
.oma-finfo{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.oma-finfo b{ font-size:13px; line-height:1.3; overflow-wrap:anywhere; color:var(--om-ink,#25324c); }
.oma-finfo small{ font-size:11.5px; font-weight:700; color:var(--om-ink-3,#9aa6bd); }
.oma-fbtn{ flex:0 0 auto; padding:8px 14px; border-radius:10px; font:800 13px var(--om-font,Helvetica,Arial,sans-serif); color:#fff; background:var(--om-accent,#4d7cff); text-decoration:none; cursor:pointer; }
.oma-fbtn:hover{ filter:brightness(1.07); color:#fff; }
.dark-skin .oma-chart, .dark-skin .oma-file{ border-color:rgba(255,255,255,.12); }

/* a note the customer asked the assistant to keep on the account */
.oma-sitenote{ align-self:stretch; max-width:100%; padding:10px 12px; border-radius:14px; border:1px solid var(--om-rule,#e9eef6); border-left:4px solid var(--om-accent,#4d7cff); background:var(--om-panel,#fff); }
.oma-st{ font-size:11.5px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; color:var(--om-ink-2,#69788f); }
.oma-sb{ margin:4px 0 2px; font-size:13.5px; line-height:1.45; }
.oma-sf{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 10px; font-size:12px; color:var(--om-ink-2,#69788f); }
.oma-sf .oma-lnk{ padding:4px 0; }
.oma-sitenote.oma-gone{ opacity:.65; }
.oma-sitenote.oma-gone .oma-sb{ text-decoration:line-through; }
.dark-skin .oma-sitenote{ border-color:rgba(255,255,255,.12); border-left-color:var(--om-accent,#4d7cff); }
