/* ============================================================
   DARTEE GOLF, Caddie chat concierge
   ============================================================ */
.dc-fab { position: fixed; left: 20px; bottom: 20px; z-index: 120; width: 60px; height: 60px; border-radius: 50%; background: var(--green-800, #0E6B61); color: var(--cream-50, #F7FBFA); border: 2px solid var(--gold, #E85190); box-shadow: 0 12px 30px rgba(10,74,67,.35); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform .18s ease, background .18s; }
.dc-fab:hover { transform: translateY(-3px) scale(1.04); background: var(--green-700, #17543E); }
.dc-fab svg { width: 28px; height: 28px; }
.dc-fab__dot { position: absolute; top: 2px; right: 2px; width: 14px; height: 14px; background: var(--gold, #E85190); border-radius: 50%; border: 2px solid var(--cream-50, #F7FBFA); }

.dc-panel { position: fixed; left: 20px; bottom: 20px; z-index: 130; width: 380px; max-width: calc(100vw - 32px); height: 560px; max-height: calc(100vh - 40px); background: var(--cream-50, #F7FBFA); border-radius: 20px; box-shadow: 0 28px 70px rgba(10,30,26,.4); display: flex; flex-direction: column; overflow: hidden; transform: translateY(20px) scale(.98); opacity: 0; visibility: hidden; transition: transform .26s cubic-bezier(.2,.8,.2,1), opacity .2s ease, visibility .26s; }
.dc-panel.open { transform: none; opacity: 1; visibility: visible; }

.dc-head { background-color: var(--green-900, #0A4A43); background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.06) 0 2px, rgba(255,255,255,0) 2px 46px); color: var(--cream-50, #F7FBFA); padding: 18px 18px 16px; display: flex; align-items: center; gap: 12px; }
.dc-head__av { width: 40px; height: 40px; border-radius: 50%; background: var(--gold, #E85190); color: var(--green-900, #0A4A43); display: flex; align-items: center; justify-content: center; font-family: var(--ff-display, "Anton"), sans-serif; font-size: 20px; flex: none; }
.dc-head__t { flex: 1; }
.dc-head__name { font-family: var(--ff-display, "Anton"), sans-serif; text-transform: uppercase; font-size: 18px; letter-spacing: .02em; line-height: 1; }
.dc-head__status { font-size: 12px; color: rgba(247,251,250,.7); margin-top: 3px; display: flex; align-items: center; gap: 6px; }
.dc-head__status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #54e0a0; display: inline-block; }
.dc-head__x { background: none; border: none; color: rgba(247,251,250,.8); font-size: 24px; line-height: 1; cursor: pointer; width: 32px; height: 32px; }

.dc-body { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; background: var(--cream-50, #F7FBFA); }
.dc-msg { max-width: 84%; font-size: 14.5px; line-height: 1.5; padding: 11px 14px; border-radius: 14px; }
.dc-msg--bot { align-self: flex-start; background: #fff; border: 1px solid var(--line, #D4E5E2); color: var(--ink, #11201E); border-bottom-left-radius: 4px; }
.dc-msg--user { align-self: flex-end; background: var(--green-800, #0E6B61); color: var(--cream-50, #F7FBFA); border-bottom-right-radius: 4px; }
.dc-msg a { color: var(--green-700, #17543E); font-weight: 700; text-decoration: underline; }
.dc-msg--user a { color: #fff; }
.dc-msg b { font-weight: 800; }

.dc-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 18px 14px; }
.dc-chip { background: #fff; border: 1.5px solid var(--line, #D4E5E2); color: var(--green-900, #0A4A43); border-radius: 999px; padding: 9px 14px; font-family: var(--ff-sans, "Archivo"), sans-serif; font-weight: 700; font-size: 13px; cursor: pointer; transition: border-color .15s, background .15s; }
.dc-chip:hover { border-color: var(--green-700, #17543E); background: var(--cream, #E6F1EF); }

.dc-input { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--line, #D4E5E2); background: #fff; }
.dc-input input { flex: 1; border: 1.5px solid var(--line, #D4E5E2); border-radius: 999px; padding: 11px 16px; font-family: var(--ff-sans, "Archivo"), sans-serif; font-size: 14px; color: var(--ink, #11201E); outline: none; }
.dc-input input:focus { border-color: var(--green-700, #17543E); }
.dc-input button { flex: none; width: 44px; height: 44px; border-radius: 50%; border: none; background: var(--gold, #E85190); color: var(--green-900, #0A4A43); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.dc-input button svg { width: 20px; height: 20px; }

@media (max-width: 560px) {
  .dc-fab { bottom: 74px; }
  .dc-panel { bottom: 74px; max-height: calc(100vh - 148px); }
}
@media (max-width: 480px) {
  .dc-panel { left: 8px; right: 8px; bottom: 74px; height: calc(100vh - 90px); width: calc(100vw - 16px); }
  .dc-fab { left: 14px; bottom: 74px; }
}
@media print { .dc-fab, .dc-panel { display: none !important; } }

.dc-restock { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.dc-restock__l { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: var(--green-900, #0A4A43); text-transform: uppercase; letter-spacing: .04em; }
.dc-restock__l input { border: 1.5px solid var(--line, #D4E5E2); border-radius: 10px; padding: 9px 12px; font-family: var(--ff-sans, "Archivo"), sans-serif; font-size: 14px; color: var(--ink, #11201E); outline: none; text-transform: none; letter-spacing: 0; font-weight: 500; }
.dc-restock__l input:focus { border-color: var(--green-700, #17543E); }
.dc-restock__btn { margin-top: 2px; background: var(--green-900, #0A4A43); color: var(--cream-50, #F7FBFA); border: none; border-radius: 999px; padding: 11px 16px; font-family: var(--ff-display, "Anton"), sans-serif; text-transform: uppercase; letter-spacing: .04em; font-size: 14px; cursor: pointer; transition: background .15s; }
.dc-restock__btn:hover { background: var(--green-800, #0E6B61); }
.dc-restock__ok { margin-top: 10px; background: var(--cream, #E6F1EF); border: 1px solid var(--line, #D4E5E2); border-radius: 12px; padding: 10px 12px; font-size: 13.5px; color: var(--green-900, #0A4A43); }
