/* Floating launcher button */
		/*
        .chat-launcher{
            position: fixed; right: 20px; bottom: 20px; z-index: 9999;
            width: 56px; height: 56px; border-radius: 9999px;  border: none;
  outline: none; solid var(--chat-border);
            background: var(--chat-primary); color:#fff; display:flex; align-items:center; justify-content:center;
            box-shadow: var(--chat-shadow); cursor: pointer; transition: transform .15s ease;
        }
        .chat-launcher:hover{ transform: translateY(-1px); }
        .chat-launcher[aria-expanded="true"]{ outline: 2px solid var(--chat-accent); }
		*/
		
:root {
	--chat-bg: #ffffff;
	--chat-fg: #0f172a;
	--chat-muted: #64748b;
	--chat-primary: #1f2937;
	--chat-accent: #2563eb;
	--chat-border: #e2e8f0;
	--chat-panel: #f8fafc;
	--chat-user: #e5e7eb;
	--chat-bot: #dbeafe;
	--chat-shadow: 0 10px 30px rgba(2,6,23,.15);
}
		
		
.chat-launcher{
    position: fixed; 
    right: 23px; 
    bottom: 13px; 
    z-index: 9999;

    width: 8em; 
    height: 8em;

    background: transparent; /* 회색 사각형 제거 */
    border-radius: 50%;      /* 원형 버튼 */
    border: none;
    outline: none;

    display:flex; 
    align-items:center; 
    justify-content:center;

    cursor: pointer;
    transition: transform .15s ease;
}
.chat-launcher:hover{
    transform: translateY(-1px);
}



/* Overlay */
.chat-overlay{ position: fixed; inset: 0; background: rgba(2,6,23,.45); opacity: 0; pointer-events: none; transition: opacity .2s ease; z-index: 9998; }
.chat-overlay.open{ opacity: 1; pointer-events: auto; }

/* Panel container */
.chat-panel{
	position: fixed; z-index: 10000; background: #ffffff; color: var(--chat-fg);
	border: 1px solid var(--chat-border); box-shadow: var(--chat-shadow); display: flex; flex-direction: column;
	max-height: 100svh; overflow: hidden;
}

/* Mobile: bottom sheet */
.chat-panel{ left: 0; right: 0; bottom: 0; height: 65vh; border-radius: 16px 16px 0 0; transform: translateY(100%); transition: transform .22s ease; }
.chat-panel.open{ transform: translateY(0); }

/* Desktop ≥ 768px: right side drawer */
@media (min-width: 768px){
	.chat-panel{ width: 400px; left: auto; right: 0; top: 0; bottom: 0; height: 100vh; border-radius: 0; transform: translateX(100%); }
	.chat-panel.open{ transform: translateX(0); }
}

.chat-header{
	display:flex; align-items:center; justify-content:space-between; gap:8px;
	padding: 14px 16px; background: var(--chat-bg); border-bottom: 1px solid var(--chat-border);
}
.chat-title{ display:flex; align-items:center; gap:10px; font-weight: 600; }
.chat-title .dot{ width:10px; height:10px; background: #10b981; border-radius: 9999px; box-shadow: 0 0 0 3px #d1fae5; }
.chat-close{
	background: transparent; border: 1px solid var(--chat-border); border-radius: 8px; padding: 6px 8px; cursor: pointer; color: var(--chat-muted);
}

.chat-body{ 
	flex: 1; 
	overflow-y: auto; 
	overflow-x: hidden;
	padding: 16px; 
	margin-top: 4.2em;
	display:flex; 
	flex-direction:column; 
	gap: 10px;
	min-height: 0;
}
.msg{ max-width: 80%; padding: 10px 12px; border-radius: 12px; font-size: 14px; line-height: 1.4; border: 1px solid var(--chat-border); }
.msg.user{ align-self: flex-end; background: var(--chat-user); }
.msg.bot{ align-self: flex-start; background: var(--chat-bot); }

/* Loading indicator */
.msg.loading {
	align-self: flex-start;
	background: var(--chat-bot);
	display: flex;
	align-items: center;
	gap: 8px;
}
.loading::after {
	content: "...";
	animation: loading 1s infinite;
}
@keyframes loading {
	0%, 100% { content: "."; }
	33% { content: ".."; }
	66% { content: "..."; }
}

.chat-footer{ padding: 10px; border-top: 1px solid var(--chat-border); background: var(--chat-bg); display:flex; flex-direction: row; align-items: center; gap:8px; min-width: 0; box-sizing: border-box; }
.chat-input-wrapper{ flex:1; display:flex; align-items:center; gap:8px; border: 1px solid var(--chat-border); background: #fff; padding: 8px 10px; border-radius: 10px; min-width: 0; }
.chat-input-wrapper input{ flex:1; border: none; outline: none; font-size: 14px; min-width: 0; }
.chat-send{ background: var(--chat-accent); color: #fff; border: none; border-radius: 10px; padding: 8px 12px; cursor: pointer; white-space: nowrap; flex-shrink: 0; }

/* Toolbar styles */
.chat-toolbar {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-shrink: 0;
}
.chat-tool-btn {
	background: #fff;
	border: 1px solid var(--chat-border);
	color: var(--chat-fg);
	padding: 6px 8px;
	border-radius: 8px;
	cursor: pointer;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
}
.chat-tool-btn:hover { 
	background: var(--chat-panel);
	border-color: #d1d5db;
}

/* Icon styles for toolbar buttons */
#chat-upload-btn.chat-tool-btn::before,
#chat-voice-btn.chat-tool-btn::before,
#chat-lens-btn.chat-tool-btn::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	vertical-align: middle;
}

#chat-upload-btn.chat-tool-btn::before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>');
}

#chat-voice-btn.chat-tool-btn::before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 14a3 3 0 0 0 3-3V7a3 3 0 1 0-6 0v4a3 3 0 0 0 3 3zm5-3a5 5 0 0 1-10 0H5a7 7 0 0 0 6 6.93V20H8v2h8v-2h-3v-2.07A7 7 0 0 0 19 11h-2z"/></svg>');
}

#chat-lens-btn.chat-tool-btn::before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm0-8H3V7c0-1.1.9-2 2-2h4v2H5v4zm14 4h2v-4c0-1.1-.9-2-2-2h-4v2h4v4zm0 8h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z"/></svg>');
}

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }


.chat-panel {
    background-color: #ffffff !important;
}


