﻿/* NORMA chat isolated layout reset */
.chat-modal,
.chat-modal * { box-sizing: border-box; }
.chat-modal.is-open { display: block !important; }
.chat-modal { position: fixed !important; inset: 0 !important; z-index: 300 !important; padding: 0 !important; background: rgba(4,18,25,.82) !important; backdrop-filter: blur(6px) !important; }
.chat-workspace { width: min(1500px, calc(100vw - 24px)) !important; height: min(940px, calc(100vh - 24px)) !important; margin: 12px auto !important; display: grid !important; grid-template-columns: 300px minmax(0,1fr) !important; overflow: hidden !important; border: 1px solid rgba(199,178,122,.22) !important; border-radius: 20px !important; background: #f7f3ea !important; box-shadow: 0 28px 70px rgba(0,0,0,.38) !important; }
.chat-sidebar { position: relative !important; inset: auto !important; width: auto !important; transform: none !important; min-height: 0 !important; padding: 16px !important; background: #061a23 !important; color: #f7f3ea !important; border-right: 1px solid rgba(199,178,122,.18) !important; }
.chat-sidebar__brand { height: 48px !important; display: flex !important; align-items: center !important; gap: 10px !important; margin: 0 0 12px !important; }
.chat-sidebar__mark { width: 34px !important; height: 34px !important; display: grid !important; place-items: center !important; border: 1px solid rgba(199,178,122,.65) !important; border-radius: 10px !important; color: #c7b27a !important; }
.chat-kicker { margin: 0 0 2px !important; color: rgba(247,243,234,.62) !important; font-size: .64rem !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
.chat-sidebar h2 { margin: 0 !important; color: #f7f3ea !important; font-size: 1rem !important; letter-spacing: .08em !important; }
.chat-new-sidebar { width: 100% !important; height: 42px !important; min-height: 42px !important; padding: 10px 12px !important; border: 1px solid rgba(199,178,122,.34) !important; border-radius: 11px !important; background: rgba(247,243,234,.08) !important; color: #f7f3ea !important; font-size: .88rem !important; font-weight: 800 !important; }
.chat-history-search { width: 100% !important; height: 42px !important; min-height: 42px !important; margin-top: 10px !important; border: 1px solid rgba(199,178,122,.28) !important; border-radius: 10px !important; background: rgba(247,243,234,.08) !important; color: #f7f3ea !important; padding: 10px 12px !important; font-size: .88rem !important; outline: 0 !important; }
.chat-history-search::placeholder { color: rgba(247,243,234,.52) !important; }
.chat-history-full { width: 100% !important; min-height: 32px !important; margin-top: 7px !important; border: 0 !important; background: transparent !important; color: #c7b27a !important; cursor: pointer !important; font-size: .78rem !important; font-weight: 850 !important; text-align: left !important; }
.chat-history { height: calc(100% - 184px) !important; margin-top: 8px !important; display: grid !important; align-content: start !important; gap: 6px !important; overflow-y: auto !important; }
.chat-history-row { display: grid !important; grid-template-columns: minmax(0, 1fr) auto !important; align-items: center !important; gap: 4px !important; border: 1px solid transparent !important; border-radius: 11px !important; }
.chat-history-row:hover,.chat-history-row.is-active { border-color: rgba(199,178,122,.34) !important; background: rgba(247,243,234,.09) !important; }
.chat-history-item { display: block !important; width: 100% !important; min-height: 52px !important; max-height: 70px !important; padding: 8px 9px !important; text-align: left !important; border: 0 !important; border-radius: 11px !important; background: transparent !important; color: #f7f3ea !important; box-shadow: none !important; }
.chat-history-item span,.chat-history-item small { display: block !important; }
.chat-history-item span { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; font-size: .9rem !important; font-weight: 800 !important; line-height: 1.2 !important; }
.chat-history-item small { margin-top: 6px !important; color: rgba(247,243,234,.58) !important; font-size: .76rem !important; }
.chat-history-item em { display: none !important; }
.chat-history-delete { margin-right: 6px !important; border: 0 !important; background: transparent !important; color: rgba(247,243,234,.52) !important; cursor: pointer !important; font-size: .7rem !important; font-weight: 800 !important; }
.chat-history-delete:hover { color: #c7b27a !important; }
.chat-main { min-width: 0 !important; min-height: 0 !important; display: grid !important; grid-template-rows: 72px minmax(0,1fr) auto !important; background: #f7f3ea !important; }
.chat-topbar { height: 72px !important; display: grid !important; grid-template-columns: auto auto minmax(0,1fr) auto !important; align-items: center !important; justify-content: start !important; gap: 12px !important; padding: 0 18px !important; border-bottom: 1px solid rgba(7,27,36,.1) !important; background: rgba(247,243,234,.96) !important; }
.chat-mode-wrap { display: inline-flex !important; align-items: center !important; gap: 8px !important; min-width: 0 !important; }
.chat-mode-wrap > span { color: #071b24 !important; font-size: .9rem !important; font-weight: 800 !important; white-space: nowrap !important; }
.chat-mode-segment { display: inline-flex !important; align-items: center !important; gap: 2px !important; width: auto !important; padding: 3px !important; border: 1px solid rgba(7,27,36,.14) !important; border-radius: 999px !important; background: #fffdf8 !important; }
.chat-mode-segment button { width: auto !important; min-width: 0 !important; min-height: 0 !important; padding: 7px 12px !important; border: 0 !important; border-radius: 999px !important; background: transparent !important; color: #45545a !important; font-size: .86rem !important; font-weight: 800 !important; }
.chat-mode-segment button.is-active { background: #073b46 !important; color: #fff8ea !important; }
.chat-new-top,.chat-menu,.chat-minimize { min-height: 0 !important; border: 1px solid rgba(7,27,36,.14) !important; border-radius: 999px !important; background: #fffdf8 !important; color: #07313c !important; box-shadow: none !important; }
.chat-new-top { padding: 9px 13px !important; white-space: nowrap !important; }
.chat-minimize { width: 34px !important; height: 34px !important; padding: 0 !important; display: grid !important; place-items: center !important; font-size: 1.25rem !important; line-height: 1 !important; }
.chat-close,.chat-panel__header,.chat-panel__body,.chat-panel__form,.chat-modebar,.chat-model-picker { display: none !important; }
.chat-scroll { min-height: 0 !important; overflow-y: auto !important; padding: 22px 24px 18px !important; display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 12px !important; }
.chat-empty { width: min(820px,100%) !important; margin: auto !important; padding: 0 8px !important; text-align: center !important; color: #071b24 !important; }
.chat-empty h2 { margin: 0 0 8px !important; color: #071b24 !important; font-size: clamp(1.35rem,2.4vw,2rem) !important; line-height: 1.15 !important; letter-spacing: -.03em !important; }
.chat-empty p { display: block !important; margin: 0 !important; color: #68767b !important; font-size: .94rem !important; }
.chat-suggestions { display: none !important; }
.chat-bubble,.chat-bubble * { writing-mode: horizontal-tb !important; }
.chat-bubble { box-sizing: border-box !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; max-height: none !important; aspect-ratio: auto !important; display: block !important; line-height: 1.45 !important; box-shadow: none !important; }
.chat-bubble__role { display: none !important; }
.chat-bubble__content,.chat-bubble p,.chat-bubble ul,.chat-bubble li { min-height: 0 !important; height: auto !important; margin-top: 0 !important; margin-bottom: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; line-height: 1.45 !important; }
.chat-bubble-user { align-self: flex-end !important; width: auto !important; max-width: min(640px,58%) !important; padding: 9px 14px !important; border: 0 !important; border-radius: 18px 18px 5px 18px !important; background: #073b46 !important; color: #fff8ea !important; }
.chat-bubble-user .chat-bubble__content,.chat-bubble-user p { display: inline !important; }
.chat-bubble-assistant { align-self: flex-start !important; width: fit-content !important; max-width: min(760px,75%) !important; padding: 14px 18px !important; border: 1px solid rgba(7,27,36,.1) !important; border-radius: 18px 18px 18px 5px !important; background: #fffdf8 !important; color: #071b24 !important; }
.chat-bubble-assistant p + p { margin-top: .75em !important; }
.chat-bubble-assistant.is-pending { padding-left: 0 !important; border-color: transparent !important; background: transparent !important; color: #6f7b80 !important; }
.chat-composer { padding: 12px 22px 14px !important; border-top: 1px solid rgba(7,27,36,.08) !important; background: #f7f3ea !important; }
.chat-composer__box { width: min(860px,100%) !important; min-height: 54px !important; margin: 0 auto !important; display: flex !important; align-items: center !important; gap: 10px !important; padding: 8px 8px 8px 18px !important; border: 1px solid rgba(7,27,36,.16) !important; border-radius: 28px !important; background: #fffdf8 !important; box-shadow: 0 10px 24px rgba(7,27,36,.06) !important; }
.chat-composer textarea { flex: 1 1 auto !important; width: auto !important; min-width: 0 !important; min-height: 24px !important; height: 24px !important; max-height: 140px !important; margin: 0 !important; padding: 2px 0 !important; border: 0 !important; outline: 0 !important; resize: none !important; overflow-y: auto !important; background: transparent !important; color: #071b24 !important; font: inherit !important; line-height: 1.35 !important; }
.chat-composer button[type="submit"] { flex: 0 0 auto !important; min-width: 70px !important; height: 38px !important; display: grid !important; place-items: center !important; padding: 0 14px !important; border: 0 !important; border-radius: 20px !important; background: #073b46 !important; color: #fff8ea !important; font-size: .88rem !important; font-weight: 850 !important; }
.chat-composer > p { width: min(860px,100%) !important; margin: 6px auto 0 !important; color: #768287 !important; font-size: .74rem !important; line-height: 1.2 !important; text-align: center !important; }
body.chat-is-open { overflow: hidden !important; }
@media (min-width: 821px) { .chat-menu { display: none !important; } }
@media (max-width: 820px) { .chat-workspace { width: 100vw !important; height: 100vh !important; margin: 0 !important; grid-template-columns: 1fr !important; border-radius: 0 !important; } .chat-sidebar { position: fixed !important; z-index: 5 !important; inset: 0 auto 0 0 !important; width: min(84vw,310px) !important; transform: translateX(-105%) !important; transition: transform 180ms ease !important; box-shadow: 18px 0 38px rgba(0,0,0,.28) !important; } .chat-sidebar.is-open { transform: translateX(0) !important; } .chat-main { grid-template-rows: 66px minmax(0,1fr) auto !important; } .chat-topbar { height: 66px !important; grid-template-columns: auto minmax(0,auto) 1fr auto !important; padding: 0 10px !important; gap: 8px !important; } .chat-mode-wrap > span,.chat-new-top,.chat-minimize { display: none !important; } .chat-mode-segment button { padding: 7px 9px !important; font-size: .8rem !important; } .chat-scroll { padding: 16px 12px 12px !important; gap: 10px !important; } .chat-bubble-user,.chat-bubble-assistant { max-width: 90% !important; } .chat-composer { padding: 9px 10px 11px !important; } .chat-composer__box { min-height: 52px !important; border-radius: 24px !important; padding-left: 14px !important; } .chat-composer button[type="submit"] { min-width: 62px !important; height: 36px !important; padding: 0 12px !important; } .chat-composer > p { display: none !important; } }

/* NORMA compact message bubbles 2026-06-28 */
.chat-scroll {
  gap: 7px !important;
  padding-top: 16px !important;
  padding-bottom: 12px !important;
}

.chat-bubble,
.chat-bubble-user,
.chat-bubble-assistant,
.chat-scroll .chat-bubble,
.chat-scroll .chat-bubble-user,
.chat-scroll .chat-bubble-assistant {
  padding-top: 7px !important;
  padding-bottom: 7px !important;
  min-height: 0 !important;
  line-height: 1.32 !important;
}

.chat-bubble-user {
  padding: 7px 12px !important;
  border-radius: 15px 15px 4px 15px !important;
}

.chat-bubble-assistant {
  padding: 9px 13px !important;
  border-radius: 15px 15px 15px 4px !important;
}

.chat-bubble__content,
.chat-bubble p,
.chat-bubble ul,
.chat-bubble li {
  line-height: 1.32 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.chat-bubble-assistant p + p {
  margin-top: 0.55em !important;
}

/* NORMA hard compact bubbles 2026-06-28 */
.chat-main .chat-scroll {
  gap: 8px !important;
}

.chat-main .chat-scroll > .chat-bubble,
.chat-main .chat-scroll > .chat-bubble-user,
.chat-main .chat-scroll > .chat-bubble-assistant {
  box-sizing: border-box !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  padding-block: 8px !important;
  padding-inline: 12px !important;
  margin: 0 !important;
  line-height: 1.36 !important;
}

.chat-main .chat-scroll > .chat-bubble-user {
  width: fit-content !important;
  max-width: min(640px, 58%) !important;
  align-self: flex-end !important;
}

.chat-main .chat-scroll > .chat-bubble-assistant {
  width: fit-content !important;
  max-width: min(760px, 75%) !important;
  align-self: flex-start !important;
}

.chat-main .chat-scroll > .chat-bubble .chat-bubble__content {
  display: block !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

.chat-main .chat-scroll > .chat-bubble p,
.chat-main .chat-scroll > .chat-bubble ul,
.chat-main .chat-scroll > .chat-bubble li {
  min-height: 0 !important;
  height: auto !important;
  margin-block: 0 !important;
  padding-block: 0 !important;
  line-height: 1.36 !important;
}

.chat-main .chat-scroll > .chat-bubble p:empty,
.chat-main .chat-scroll > .chat-bubble div:empty,
.chat-main .chat-scroll > .chat-bubble ul:empty {
  display: none !important;
}

.chat-main .chat-scroll > .chat-bubble-assistant p + p,
.chat-main .chat-scroll > .chat-bubble-assistant ul + p,
.chat-main .chat-scroll > .chat-bubble-assistant p + ul {
  margin-top: 0.55em !important;
}

.chat-main .chat-scroll > .chat-bubble .chat-sources:empty {
  display: none !important;
}

/* NORMA message DOM simplification fix 2026-06-28 */
.chat-scroll > article.chat-bubble-user {
  display: block !important;
  width: fit-content !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 8px 12px !important;
  margin: 0 !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}

.chat-scroll > article.chat-bubble-assistant {
  height: auto !important;
  min-height: 0 !important;
  padding: 10px 13px !important;
  margin: 0 !important;
  line-height: 1.35 !important;
}

.chat-scroll > article.chat-bubble-assistant > p {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.35 !important;
}

.chat-scroll > article.chat-bubble-assistant > p + p {
  margin-top: 8px !important;
}

/* Hide redundant top new-chat button */
.chat-new-top { display: none !important; }

/* Center empty-state subtitle */
.chat-empty,
.chat-empty h2,
.chat-empty p {
  text-align: center !important;
}

.chat-empty p {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Larger query composer */
.chat-composer__box {
  min-height: 132px !important;
  align-items: flex-end !important;
}

.chat-composer textarea {
  min-height: 104px !important;
  height: 104px !important;
}

/* Empty state strict centering */
.chat-empty {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 640px !important;
  margin: auto !important;
  padding: 0 !important;
  text-align: center !important;
}

.chat-empty h2,
.chat-empty p {
  width: 100% !important;
  max-width: 640px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.chat-empty h2 {
  margin-bottom: 8px !important;
}

/* CMPL commercial entry point, without changing the assistant workflow. */
.chat-empty .chat-empty__mark {
  width: 44px !important;
  height: 44px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 auto 14px !important;
  border: 1px solid rgba(199,178,122,.72) !important;
  border-radius: 50% !important;
  background: #073b46 !important;
  color: #dec99e !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 1.25rem !important;
}

.chat-empty .chat-empty__eyebrow {
  margin-bottom: 10px !important;
  color: #9b7d43 !important;
  font-size: .68rem !important;
  font-weight: 850 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

.chat-empty .chat-suggestions {
  width: min(680px, 100%) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 9px !important;
  margin: 22px auto 0 !important;
}

.chat-empty .chat-suggestions button {
  min-height: 76px !important;
  padding: 12px !important;
  border: 1px solid rgba(7,59,70,.18) !important;
  border-radius: 7px !important;
  background: #fffdf8 !important;
  color: #07313c !important;
  font-size: .82rem !important;
  font-weight: 750 !important;
  line-height: 1.28 !important;
  text-align: left !important;
  cursor: pointer !important;
}

.chat-empty .chat-suggestions button:hover {
  border-color: #b98b52 !important;
  background: #fbf3e4 !important;
}

@media (max-width: 640px) {
  .chat-empty .chat-suggestions { grid-template-columns: 1fr !important; }
  .chat-empty .chat-suggestions button { min-height: 0 !important; }
}

/* Dedicated assistant page: a full workspace, not a modal. */
body.chat-page {
  min-height: 100vh;
  overflow: hidden;
  background: #f7f3ea;
}

.chat-page-shell {
  height: calc(100vh - 66px);
}

.chat-page-shell .chat-workspace {
  width: 100vw !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.chat-page-shell .chat-topbar {
  padding-right: 24px !important;
}

.chat-page-shell .chat-window-actions {
  color: #657278;
  font-size: .82rem;
}

.norma-solutions-menu { position: relative; }
.norma-solutions-menu summary { list-style: none; cursor: pointer; }
.norma-solutions-menu summary::-webkit-details-marker { display: none; }
.norma-solutions-list { position: absolute; top: calc(100% + 14px); right: 0; z-index: 30; min-width: 210px; padding: 8px; border: 1px solid rgba(216,189,131,.32); background: #07131f; box-shadow: 0 16px 30px rgba(0,0,0,.22); }
.norma-solutions-list a { display: block; padding: 9px 10px; color: #fffaf1; font-size: .84rem; white-space: nowrap; }
.norma-solutions-list a:hover { background: rgba(216,189,131,.12); color: #d8bd83; }

@media (max-width: 820px) {
  body.chat-page { overflow: auto; }
  .chat-page-shell { height: calc(100vh - 66px); }
}

/* Push minimize control to the far right */
.chat-topbar {
  grid-template-columns: auto minmax(0, 1fr) auto !important;
}

.chat-mode-wrap {
  grid-column: 1 !important;
}

.chat-window-actions {
  grid-column: 3 !important;
  justify-self: end !important;
  margin-left: auto !important;
}
