/* ---------- tech helper chat ---------- */
.th-launcher{
  position:fixed; right:22px; bottom:22px; z-index:60;
  display:flex; align-items:center; gap:10px;
  padding:12px 18px 12px 14px;
  background:#101211; color:#F5F3E9;
  border:1px solid rgba(245,243,233,0.16); border-radius:999px;
  font-family:var(--font-body); font-weight:600; font-size:0.95rem;
  box-shadow:0 12px 30px rgba(0,0,0,0.22);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.th-launcher:hover{transform:translateY(-2px); box-shadow:0 16px 36px rgba(0,0,0,0.28);}
.th-launcher-icon{
  width:30px; height:30px; flex:none; border-radius:50%;
  display:grid; place-items:center;
  background:var(--brass); color:#171412;
}
.th-launcher-icon svg{width:17px; height:17px;}
.th-launcher-pulse{
  width:8px; height:8px; border-radius:50%; background:#7FA98F; flex:none;
  box-shadow:0 0 0 0 rgba(127,169,143,0.6);
  animation:th-pulse 2.4s ease-out infinite;
}
@keyframes th-pulse{
  0%{box-shadow:0 0 0 0 rgba(127,169,143,0.55);}
  70%{box-shadow:0 0 0 9px rgba(127,169,143,0);}
  100%{box-shadow:0 0 0 0 rgba(127,169,143,0);}
}
.th-open .th-launcher{opacity:0; pointer-events:none; transform:translateY(8px);}

.th-panel{
  position:fixed; right:22px; bottom:22px; z-index:61;
  width:392px; max-width:calc(100vw - 32px);
  height:min(640px, calc(100vh - 110px));
  display:flex; flex-direction:column;
  background:var(--paper); color:var(--ink);
  border:1px solid var(--line); border-radius:6px;
  box-shadow:0 24px 60px rgba(0,0,0,0.24);
  overflow:hidden;
  opacity:0; transform:translateY(14px) scale(0.98); transform-origin:bottom right;
  pointer-events:none; visibility:hidden;
  transition:opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
.th-open .th-panel{
  opacity:1; transform:none; pointer-events:auto; visibility:visible;
  transition:opacity .2s ease, transform .2s ease;
}

.th-head{
  display:flex; align-items:center; gap:12px;
  padding:14px 14px 14px 18px;
  background:#101211; color:#F5F3E9;
  border-bottom:3px solid var(--brass);
}
.th-head-badge{
  width:36px; height:36px; flex:none; border-radius:50%;
  display:grid; place-items:center;
  background:rgba(245,243,233,0.08); border:1px solid rgba(245,243,233,0.18);
}
.th-head-badge svg{width:18px; height:18px; stroke:var(--brass);}
.th-head-text{flex:1; min-width:0;}
.th-title{font-family:var(--font-display); font-weight:600; font-size:1.08rem; line-height:1.2;}
.th-sub{display:flex; align-items:center; gap:6px; font-size:0.78rem; color:rgba(245,243,233,0.66);}
.th-sub::before{content:""; width:6px; height:6px; border-radius:50%; background:#7FA98F;}
.th-icon-btn{
  width:34px; height:34px; flex:none; display:grid; place-items:center;
  background:none; border:1px solid transparent; border-radius:3px;
  color:rgba(245,243,233,0.72); cursor:pointer;
}
.th-icon-btn:hover{color:#F5F3E9; border-color:rgba(245,243,233,0.22);}
.th-icon-btn svg{width:17px; height:17px;}

.th-log{
  flex:1; overflow-y:auto; padding:18px 16px 8px;
  display:flex; flex-direction:column; gap:12px;
  background:var(--paper-raised);
  scroll-behavior:smooth;
}
.th-msg{max-width:88%; font-size:0.94rem; line-height:1.5; white-space:pre-wrap; word-wrap:break-word;}
.th-msg.bot{
  align-self:flex-start;
  background:var(--paper); border:1px solid var(--line);
  border-radius:2px 12px 12px 12px; padding:10px 13px;
}
.th-msg.user{
  align-self:flex-end;
  background:var(--moss); color:#F5F3E9;
  border-radius:12px 2px 12px 12px; padding:9px 13px;
}
.th-msg-in{animation:th-in .22s ease both;}
@keyframes th-in{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;}}

.th-typing{display:inline-flex; gap:4px; align-items:center; padding:13px 14px;}
.th-typing span{width:6px; height:6px; border-radius:50%; background:var(--ink-soft); opacity:.4; animation:th-dot 1.1s ease-in-out infinite;}
.th-typing span:nth-child(2){animation-delay:.15s;}
.th-typing span:nth-child(3){animation-delay:.3s;}
@keyframes th-dot{0%,100%{opacity:.25; transform:translateY(0);} 50%{opacity:.9; transform:translateY(-3px);}}

.th-chips{display:flex; flex-wrap:wrap; gap:7px; align-self:flex-start; max-width:100%;}
.th-chip{
  font-family:var(--font-body); font-size:0.85rem; font-weight:500;
  padding:6px 12px; border-radius:999px; cursor:pointer;
  background:transparent; color:var(--moss); border:1px solid var(--moss);
  transition:background .15s ease, color .15s ease;
}
.th-chip:hover{background:var(--moss); color:#F5F3E9;}

/* booking ticket */
.th-ticket{
  align-self:stretch;
  background:var(--paper); border:1px solid var(--line); border-radius:4px;
  box-shadow:0 6px 18px var(--shadow);
  overflow:hidden;
}
.th-ticket-top{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  padding:11px 14px; border-bottom:1px dashed var(--line);
}
.th-ticket-label{font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:600;}
.th-urgency{font-size:0.72rem; font-weight:700; padding:3px 9px; border-radius:999px; background:var(--moss-soft); color:var(--moss);}
.th-urgency.soon{background:rgba(169,113,31,0.14); color:var(--brass-deep);}
.th-urgency.urgent{background:rgba(176,52,40,0.12); color:#B03428;}
.th-ticket-body{padding:10px 14px 4px; display:grid; gap:8px;}
.th-ticket-row{font-size:0.88rem; line-height:1.4;}
.th-ticket-row .k{display:block; font-size:0.74rem; color:var(--ink-soft);}
.th-ticket-actions{display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:12px 14px 14px;}
.th-ticket-actions .btn{padding:10px 12px; font-size:0.88rem;}
.th-ticket-actions .th-book{grid-column:1 / -1;}
.th-ticket-note{padding:0 14px 12px; font-size:0.76rem; color:var(--ink-soft);}

.th-form{
  display:flex; align-items:flex-end; gap:8px;
  padding:10px 12px; border-top:1px solid var(--line); background:var(--paper);
}
.th-input{
  flex:1; resize:none; max-height:120px; min-height:42px;
  padding:10px 12px; border:1px solid var(--line); border-radius:3px;
  font-family:var(--font-body); font-size:0.95rem; line-height:1.4;
  background:var(--paper); color:var(--ink);
}
.th-input:focus{outline:none; border-color:var(--moss);}
.th-send{
  width:42px; height:42px; flex:none; display:grid; place-items:center;
  background:var(--moss); color:#F5F3E9; border:none; border-radius:3px; cursor:pointer;
  transition:background .15s ease, opacity .15s ease;
}
.th-send:hover{background:var(--focus);}
.th-send:disabled{opacity:.45; cursor:default;}
.th-send svg{width:18px; height:18px;}
.th-foot{padding:0 14px 10px; background:var(--paper); font-size:0.72rem; color:var(--ink-soft); text-align:center;}

.hero-helper{
  display:inline-flex; align-items:center; gap:8px; margin-top:18px;
  background:none; border:none; padding:0; cursor:pointer;
  font-family:var(--font-body); font-size:0.95rem; font-weight:600; color:var(--moss);
  text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px;
}
.hero-helper:hover{color:var(--focus);}
.hero-helper svg{width:16px; height:16px;}

@media (max-width: 560px){
  .th-launcher{right:14px; bottom:14px;}
  .th-panel{
    right:0; bottom:0; width:100vw; max-width:100vw;
    height:100dvh; border-radius:0; border:none;
  }
}
