/* gtg.pl - czat z asystentem GTG i człowiekiem (inc/gtg-czat.php, assets/js/czat.js). Tokeny motywu (--ab-*), jasny i ciemny motyw. */
.gz { --gz-on: var(--ab-bg); position: fixed; right: clamp(14px, 2.4vw, 26px); bottom: clamp(14px, 2.4vw, 26px); z-index: 70; font-family: 'Switzer', system-ui, sans-serif; }
body.ab-alt .gz { --gz-on: #fff; }
.gz *, .gz *::before, .gz *::after { box-sizing: border-box; }

.gz__fab { position: relative; width: 56px; height: 56px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 12px; cursor: pointer;
  background: var(--ab-gold); color: var(--gz-on); box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .55); transition: transform .28s var(--ab-ease), opacity .2s, background-color .2s; }
.gz__fab:hover { background: var(--ab-gold-hover); }
.gz__fab:active { transform: scale(.93); }
.gz__fab svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.gz__kropka { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding-inline: 5px; display: none; place-items: center; border-radius: 9px; background: var(--ab-red); color: #fff; font: 700 .7rem/1 'Switzer', sans-serif; border: 2px solid var(--ab-bg); }
.gz.is-nowe .gz__kropka { display: grid; }
.gz.is-open .gz__fab { transform: scale(.6); opacity: 0; pointer-events: none; }
.gz__fab:focus-visible, .gz button:focus-visible, .gz a:focus-visible, .gz input:focus-visible { outline: 2px solid var(--ab-gold); outline-offset: 2px; }

.gz__panel { position: absolute; right: 0; bottom: 0; width: min(380px, calc(100vw - 28px)); height: min(580px, calc(100dvh - 110px)); display: flex; flex-direction: column;
  background: var(--ab-surface); color: var(--ab-text); border: 1px solid var(--ab-border-strong); border-radius: 12px; overflow: hidden; box-shadow: 0 30px 60px -24px rgba(0, 0, 0, .7);
  transform-origin: bottom right; opacity: 0; visibility: hidden; transform: translateY(10px) scale(.97); transition: opacity .2s, transform .3s var(--ab-ease), visibility 0s .3s; }
.gz.is-open .gz__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }

.gz__gora { display: flex; align-items: center; gap: .7rem; padding: .8rem .9rem; background: var(--ab-surface-2); border-bottom: 1px solid var(--ab-border); }
.gz__awatar { position: relative; flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: var(--ab-gold); color: var(--gz-on); font: 800 .78rem/1 'Cabinet Grotesk', 'Switzer', sans-serif; letter-spacing: -.01em; }
.gz__awatar span { grid-area: 1 / 1; transition: opacity .3s, transform .35s var(--ab-ease); }
.gz__awatar .gz__a-bot { opacity: 1; }
.gz__awatar .gz__a-czl { opacity: 0; transform: scale(.6); }
.gz.is-czlowiek .gz__a-bot { opacity: 0; transform: scale(.6); }
.gz.is-czlowiek .gz__a-czl { opacity: 1; transform: none; }
.gz.is-czlowiek .gz__awatar { background: var(--ab-text); color: var(--ab-bg); }
.gz__kto { flex: 1; min-width: 0; display: grid; gap: .15rem; }
.gz__nazwa { display: flex; align-items: center; gap: .45rem; font-weight: 700; font-size: .92rem; line-height: 1.1; }
.gz__ai { padding: .1rem .35rem; border-radius: 4px; border: 1px solid var(--ab-border-strong); font: 500 .62rem/1.3 'Commit Mono', ui-monospace, monospace; letter-spacing: .06em; color: var(--ab-text-dim); }
.gz.is-czlowiek .gz__ai { display: none; }
.gz__opis { font-size: .76rem; color: var(--ab-text-dim); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gz__czl-btn { flex: none; display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .7rem; border: 1px solid var(--ab-border-strong); border-radius: 8px; background: transparent; color: var(--ab-text); font: 600 .76rem/1 'Switzer', sans-serif; cursor: pointer; white-space: nowrap; transition: border-color .15s, background-color .15s; }
.gz__czl-btn:hover { border-color: var(--ab-gold); background: var(--ab-gold-soft); }
.gz__czl-btn::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #3FA66B; flex: none; }
.gz__czl-btn[hidden] { display: none; }
.gz__x { flex: none; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 8px; background: transparent; color: var(--ab-text-dim); cursor: pointer; }
.gz__x:hover { background: var(--ab-border); color: var(--ab-text); }
.gz__x svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

.gz__log { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: .5rem; padding: .9rem .85rem .4rem; overflow-y: auto; scrollbar-width: thin; overscroll-behavior: contain; }
.gz__m { max-width: 88%; padding: .55rem .75rem; border-radius: 12px; font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; animation: gz-in .28s var(--ab-ease) both; }
.gz__m p { margin: 0; white-space: pre-wrap; }
.gz__m p + p { margin-top: .5rem; }
.gz__m--bot { align-self: flex-start; background: var(--ab-surface-2); border-bottom-left-radius: 4px; }
.gz__m--gosc { align-self: flex-end; background: var(--ab-gold); color: var(--gz-on); border-bottom-right-radius: 4px; }
.gz__m--agent { align-self: flex-start; background: var(--ab-gold-soft); border: 1px solid var(--ab-gold-border); border-bottom-left-radius: 4px; }
.gz__m--agent b { display: block; margin-bottom: .15rem; font-size: .72rem; font-weight: 600; color: var(--ab-text-dim); }
.gz__m--system { align-self: center; max-width: 94%; padding: .25rem .5rem; background: transparent; text-align: center; color: var(--ab-text-dim); font-size: .76rem; }
@keyframes gz-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.gz__pisze { display: inline-flex; gap: 4px; align-items: center; height: 1.2em; }
.gz__pisze i { width: 6px; height: 6px; border-radius: 50%; background: var(--ab-text-faint); animation: gz-dot 1.1s infinite ease-in-out; }
.gz__pisze i:nth-child(2) { animation-delay: .15s; } .gz__pisze i:nth-child(3) { animation-delay: .3s; }
@keyframes gz-dot { 0%, 80%, 100% { opacity: .3; transform: none; } 40% { opacity: 1; transform: translateY(-2px); } }
.gz__linki { align-self: flex-start; display: flex; flex-wrap: wrap; gap: .4rem; }
.gz__link { display: inline-flex; padding: .3rem .65rem; border: 1px solid var(--ab-border-strong); border-radius: 999px; color: var(--ab-text); font-size: .76rem; font-weight: 600; text-decoration: none; -webkit-text-fill-color: currentColor; transition: border-color .15s, background-color .15s; }
.gz__link:hover { border-color: var(--ab-gold); background: var(--ab-gold-soft); color: var(--ab-text); }

.gz__chips { display: flex; flex-wrap: wrap; gap: .4rem; padding: .3rem .85rem .6rem; }
.gz__chips:empty { display: none; }
.gz__chips button { max-width: 100%; padding: .38rem .7rem; border: 1px solid var(--ab-border-strong); border-radius: 999px; background: transparent; color: var(--ab-text); font: 500 .78rem/1.2 'Switzer', sans-serif; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: border-color .15s, background-color .15s; }
.gz__chips button:hover { border-color: var(--ab-gold); background: var(--ab-gold-soft); }

.gz__email { align-self: stretch; display: grid; gap: .5rem; padding: .7rem; border: 1px solid var(--ab-gold-border); border-radius: 10px; background: var(--ab-gold-soft); }
.gz__email label { font-size: .78rem; font-weight: 600; }
.gz__email div { display: flex; gap: .4rem; }
.gz__email input { flex: 1; min-width: 0; padding: .5rem .65rem; border: 1px solid var(--ab-border-strong); border-radius: 8px; background: var(--ab-bg); color: var(--ab-text); font: 400 .875rem/1.2 'Switzer', sans-serif; }
.gz__email button { flex: none; padding: 0 .9rem; border: 0; border-radius: 8px; background: var(--ab-gold); color: var(--gz-on); font: 700 .8rem/1 'Switzer', sans-serif; cursor: pointer; }
.gz__blad { margin: 0; font-size: .76rem; color: var(--ab-red); }

.gz__form { display: flex; gap: .4rem; padding: .6rem .7rem .4rem; border-top: 1px solid var(--ab-border); }
.gz__form input { flex: 1; min-width: 0; padding: .6rem .75rem; border: 1px solid var(--ab-border-strong); border-radius: 10px; background: var(--ab-bg); color: var(--ab-text); font: 400 .875rem/1.2 'Switzer', sans-serif; }
.gz__form input::placeholder { color: var(--ab-text-faint); }
.gz__form button { flex: none; width: 42px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 10px; background: var(--ab-gold); color: var(--gz-on); cursor: pointer; transition: transform .2s; }
.gz__form button:active { transform: scale(.92); }
.gz__form button:disabled { opacity: .5; cursor: default; }
.gz__form svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gz__nota { margin: 0; padding: 0 .85rem .6rem; font-size: .68rem; color: var(--ab-text-faint); }
.gz__nota a { color: inherit; text-decoration: underline; -webkit-text-fill-color: currentColor; }

@media (max-width: 480px) {
  .gz { right: 10px; bottom: 10px; }
  .gz__panel { width: calc(100vw - 20px); height: min(78dvh, 600px); }
}
@media (prefers-reduced-motion: reduce) {
  .gz__m, .gz__pisze i { animation: none; }
  .gz__panel, .gz__fab, .gz__awatar span { transition: none; }
}
