/* World and alliance chat dock (public/chat-ui.js). Floats over every tab; a bottom sheet on phones.
   Colors follow the parchment cards (.map-card) and teal primary buttons of the main screen. */
.chat-dock{--chat-paper:#fcf7e9;--chat-edge:#d7ceb8;--chat-ink:#344338;--chat-muted:#8c937e;--chat-teal:#168674;--chat-cream:#fff9e5;--chat-field:#f5edda;--chat-gold:#a88532}
.chat-dock{position:fixed;right:22px;bottom:22px;z-index:25;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.chat-dock>*{pointer-events:auto}
.chat-dock[hidden]{display:none}
.chat-dock .chat-launcher{position:relative;display:flex;align-items:center;gap:8px;padding:11px 17px;border-radius:999px;border:1px solid var(--chat-teal);background:var(--chat-teal);color:var(--chat-cream);font-weight:700;font-size:var(--fs12);box-shadow:0 10px 26px #2a3a2f40}
.chat-dock .chat-launcher span[aria-hidden]{font-family:serif;font-size:19px;line-height:1}
.chat-dock .chat-launcher:hover:not(:disabled){background:#12705f}
.chat-dock.open .chat-launcher{display:none}
.chat-dock .chat-unread{position:absolute;top:5px;right:6px;width:9px;height:9px;border-radius:50%;background:#d9573b;box-shadow:0 0 0 2px var(--chat-cream)}
.chat-dock .chat-unread[hidden]{display:none}
/* 데스크톱은 세로 한 줄이라 맨 위(화면 안쪽)에, 폰은 2열 격자의 오른쪽 아래(예전 떠 있던 자리)에 둔다. */
.map-controls .chat-launcher{position:relative;display:flex;align-items:center;justify-content:center;order:-1}
.map-controls .chat-launcher span[aria-hidden]{font-family:serif}
.map-controls .chat-launcher-label{display:none}
.map-controls .chat-unread{position:absolute;top:3px;right:3px;width:9px;height:9px;border-radius:50%;background:#d9573b;box-shadow:0 0 0 2px #f5e6c4}
.chat-dock .chat-panel{display:flex;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(520px,calc(100vh - 140px));border:1px solid var(--chat-edge);border-radius:12px;background:var(--chat-paper);color:var(--chat-ink);box-shadow:0 18px 44px #2a3a2f40;overflow:hidden}
.chat-dock .chat-panel[hidden]{display:none}
.chat-dock .chat-head{display:flex;align-items:center;gap:8px;padding:10px 10px 8px 12px;border-bottom:1px solid var(--chat-edge)}
.chat-dock .chat-tabs{display:flex;gap:4px;flex:1}
.chat-dock .chat-tabs button{position:relative;padding:7px 16px;border-radius:999px;font-size:var(--fs12);color:var(--chat-muted);background:none;border-color:var(--chat-edge)}
.chat-dock .chat-tabs button[aria-selected="true"]{color:var(--chat-cream);background:var(--chat-teal);border-color:var(--chat-teal);font-weight:700}
.chat-dock .chat-tabs .chat-unread{top:3px;right:3px}
.chat-dock .chat-close{padding:6px 10px;background:none;border:0;color:var(--chat-muted)}
.chat-dock .chat-scope{padding:7px 14px;font-size:var(--fs10);color:var(--chat-muted);border-bottom:1px solid var(--chat-edge)}
.chat-dock .chat-scope:empty{display:none}
.chat-dock .chat-scope.error{color:#b4432c}
.chat-dock .chat-log{flex:1;overflow-y:auto;margin:0;padding:8px 12px 12px;list-style:none;overscroll-behavior:contain}
.chat-dock .chat-log[hidden],.chat-dock .chat-empty[hidden],.chat-dock .chat-muted[hidden],.chat-dock .chat-form[hidden]{display:none}
.chat-dock .chat-day{text-align:center;margin:10px 0 6px;font-size:var(--fs10);color:var(--chat-muted)}
.chat-dock .chat-day span{padding:2px 10px;border-radius:999px;background:#ede4cc}
.chat-dock .chat-older{text-align:center;margin:6px 0;font-size:var(--fs10);color:var(--chat-muted)}
.chat-dock .chat-older button{padding:3px 12px;font-size:var(--fs10);border-color:var(--chat-edge);background:var(--chat-field);color:var(--chat-ink)}
.chat-dock .chat-message{padding:6px 8px;border-radius:8px;margin-top:2px}
.chat-dock .chat-message:hover{background:#f4ecd8}
.chat-dock .chat-message.mine{background:#16867414}
.chat-dock .chat-message.chat-system{margin:6px 0;background:#a885321f;border-left:3px solid var(--chat-gold);border-radius:0 8px 8px 0}
.chat-dock .chat-message.chat-system .chat-name{color:#7d6120}
.chat-dock .chat-message.chat-system .chat-text{font-weight:600}
.chat-dock .chat-meta{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:var(--fs10);color:var(--chat-muted)}
.chat-dock .chat-name{color:var(--chat-ink);font-size:var(--fs11)}
.chat-dock .chat-message.mine .chat-name{color:var(--chat-teal)}
.chat-dock .chat-crown{color:var(--chat-gold);margin-right:3px}
.chat-dock .chat-tag{padding:0 6px;border-radius:4px;background:#1686741a;color:#11695b}
.chat-dock .chat-mute{margin-left:auto;padding:0 6px;border:0;background:none;color:var(--chat-muted);font-size:var(--fs10);opacity:0}
.chat-dock .chat-message:hover .chat-mute,.chat-dock .chat-mute:focus-visible{opacity:1}
.chat-dock .chat-text{margin-top:2px;font-size:var(--fs12);line-height:1.55;color:var(--chat-ink);overflow-wrap:anywhere;white-space:pre-wrap}
.chat-dock .chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;text-align:center;font-size:var(--fs12);color:var(--chat-muted)}
.chat-dock .chat-empty b{color:var(--chat-ink)}
.chat-dock .chat-muted{padding:5px 14px;font-size:var(--fs10);color:var(--chat-muted);border-top:1px solid var(--chat-edge)}
.chat-dock .chat-muted button{padding:2px 8px;margin-left:6px;font-size:var(--fs10)}
.chat-dock .chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--chat-edge)}
.chat-dock .chat-form input{flex:1;min-width:0;padding:10px 12px;border:1px solid #c7b17a;border-radius:8px;background:var(--chat-field);color:var(--chat-ink)}
.chat-dock .chat-form .chat-send{margin:0;padding:10px 14px;white-space:nowrap;border:1px solid var(--chat-teal);background:var(--chat-teal);color:var(--chat-cream);font-weight:700}
.chat-dock .chat-muted button,.chat-dock .chat-empty button{border-color:var(--chat-edge);background:var(--chat-field);color:var(--chat-ink)}
.chat-dock .chat-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(hover:none){.chat-dock .chat-mute{opacity:1}}
@media(max-width:850px){
  .chat-dock{right:12px;bottom:calc(var(--chat-nav,66px) + 10px)}
  .chat-dock .chat-launcher{padding:10px 14px}
  .chat-dock .chat-launcher-label{display:none}
  .chat-dock.open{left:0;right:0;bottom:var(--chat-nav,66px)}
  .chat-dock .chat-panel{width:100vw;height:min(calc(100dvh - var(--chat-nav,66px) - 80px),520px);border-radius:14px 14px 0 0;border-left:0;border-right:0;border-bottom:0}
  .chat-dock .chat-form input{font-size:16px}
  .map-controls .chat-launcher{order:0}
}
@media(prefers-reduced-motion:no-preference){.chat-dock .chat-panel{animation:chat-in .16s ease-out}@keyframes chat-in{from{opacity:0;transform:translateY(8px)}}}
