Eventbuzz_Concierge/public/embed/concierge-widget.css

859 lines
17 KiB
CSS

#eventbuzz-concierge-root {
--ebc-panel: #ffffff;
--ebc-text: #0f172a;
--ebc-muted: #64748b;
--ebc-accent: rgb(13, 148, 136);
--ebc-accent-rgb: 13, 148, 136;
--ebc-accent-text: #ffffff;
--ebc-border: #e2e8f0;
--ebc-user: rgb(204, 251, 241);
--ebc-bot: #f1f5f9;
font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
z-index: 2147483000;
position: fixed;
right: 20px;
bottom: 20px;
}
#eventbuzz-concierge-root .ebc-launcher {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
border: none;
border-radius: 999px;
min-width: 72px;
min-height: 72px;
padding: 10px 12px 8px;
background: var(--ebc-accent);
color: var(--ebc-accent-text);
cursor: pointer;
box-shadow: 0 8px 24px rgba(var(--ebc-accent-rgb), 0.35);
}
#eventbuzz-concierge-root .ebc-launcher-logo {
display: block;
width: 36px;
height: 36px;
object-fit: contain;
pointer-events: none;
}
#eventbuzz-concierge-root .ebc-launcher-label {
font-size: 10px;
font-weight: 600;
letter-spacing: 0.02em;
line-height: 1.1;
text-transform: lowercase;
}
#eventbuzz-concierge-root .ebc-panel {
display: none;
flex-direction: column;
width: min(380px, calc(100vw - 32px));
height: min(560px, calc(100vh - 100px));
background: var(--ebc-panel);
color: var(--ebc-text);
border: 1px solid var(--ebc-border);
border-radius: 16px;
overflow: hidden;
box-shadow: 0 16px 48px rgba(15, 23, 42, 0.22);
margin-bottom: 12px;
}
#eventbuzz-concierge-root.ebc-open .ebc-panel {
display: flex;
}
#eventbuzz-concierge-root.ebc-open .ebc-launcher {
display: none;
}
#eventbuzz-concierge-root .ebc-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 12px 14px;
background: var(--ebc-accent);
color: var(--ebc-accent-text);
}
#eventbuzz-concierge-root .ebc-header-brand {
display: flex;
align-items: center;
gap: 10px;
min-width: 0;
}
#eventbuzz-concierge-root .ebc-header-logo {
display: block;
width: 32px;
height: 32px;
object-fit: contain;
flex-shrink: 0;
border-radius: 8px;
background: rgba(255, 255, 255, 0.08);
}
#eventbuzz-concierge-root .ebc-title {
font-weight: 650;
font-size: 14px;
line-height: 1.25;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#eventbuzz-concierge-root .ebc-header-actions {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
#eventbuzz-concierge-root .ebc-close {
border: none;
background: transparent;
color: #cbd5e1;
cursor: pointer;
font-size: 22px;
line-height: 1;
padding: 4px 6px;
border-radius: 6px;
}
#eventbuzz-concierge-root .ebc-close:hover {
color: #fff;
background: rgba(255, 255, 255, 0.08);
}
#eventbuzz-concierge-root .ebc-end-voice {
border: 1px solid rgba(255, 255, 255, 0.22);
background: rgba(255, 255, 255, 0.08);
color: #e2e8f0;
cursor: pointer;
font-size: 11px;
line-height: 1;
padding: 6px 8px;
border-radius: 8px;
white-space: nowrap;
}
#eventbuzz-concierge-root .ebc-end-voice:hover {
color: #fff;
background: rgba(255, 255, 255, 0.16);
}
#eventbuzz-concierge-root .ebc-messages {
flex: 1;
overflow-y: auto;
padding: 14px;
display: flex;
flex-direction: column;
gap: 10px;
background: #f8fafc;
}
#eventbuzz-concierge-root .ebc-msg {
max-width: 88%;
padding: 10px 12px;
border-radius: 12px;
font-size: 14px;
line-height: 1.4;
white-space: pre-wrap;
word-break: break-word;
}
#eventbuzz-concierge-root .ebc-msg.user {
align-self: flex-end;
background: var(--ebc-user);
}
#eventbuzz-concierge-root .ebc-msg.bot {
align-self: flex-start;
background: var(--ebc-bot);
}
#eventbuzz-concierge-root .ebc-msg.ebc-has-cards {
max-width: 96%;
background: #fff;
border: 1px solid var(--ebc-border);
white-space: normal;
}
#eventbuzz-concierge-root .ebc-intro {
margin: 0;
white-space: pre-wrap;
}
#eventbuzz-concierge-root .ebc-msg.bot strong {
font-weight: 700;
}
#eventbuzz-concierge-root .ebc-intro + .ebc-cards-list,
#eventbuzz-concierge-root .ebc-intro + .ebc-feedback,
#eventbuzz-concierge-root .ebc-cards-list + .ebc-feedback {
margin-top: 10px;
}
#eventbuzz-concierge-root .ebc-cards-list {
display: flex;
flex-direction: column;
gap: 8px;
}
#eventbuzz-concierge-root .ebc-session-card {
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 10px 12px;
background: #f8fafc;
}
#eventbuzz-concierge-root .ebc-session-title {
font-weight: 650;
font-size: 14px;
color: var(--ebc-text);
margin-bottom: 4px;
}
#eventbuzz-concierge-root .ebc-session-meta,
#eventbuzz-concierge-root .ebc-session-speakers {
font-size: 12px;
color: var(--ebc-muted);
margin-top: 2px;
}
#eventbuzz-concierge-root .ebc-session-time {
font-weight: 600;
color: #334155;
}
#eventbuzz-concierge-root .ebc-session-track {
color: var(--ebc-accent);
font-weight: 600;
}
#eventbuzz-concierge-root .ebc-session-topics {
margin-top: 8px;
padding-top: 8px;
border-top: 1px solid var(--ebc-border);
}
#eventbuzz-concierge-root .ebc-session-topics-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.03em;
text-transform: uppercase;
color: #64748b;
margin-bottom: 4px;
}
#eventbuzz-concierge-root .ebc-session-topics-list {
margin: 0;
padding-left: 1.1rem;
font-size: 12px;
color: #475569;
}
#eventbuzz-concierge-root .ebc-session-topics-list li {
margin: 2px 0;
}
#eventbuzz-concierge-root .ebc-session-resources {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 8px;
}
#eventbuzz-concierge-root .ebc-session-resource {
font-size: 12px;
font-weight: 600;
color: var(--ebc-accent);
text-decoration: none;
}
#eventbuzz-concierge-root .ebc-session-resource:hover {
text-decoration: underline;
}
#eventbuzz-concierge-root .ebc-file-card {
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 10px 12px;
background: #f8fafc;
}
#eventbuzz-concierge-root .ebc-file-title {
font-weight: 650;
font-size: 14px;
color: var(--ebc-text);
margin-bottom: 8px;
}
#eventbuzz-concierge-root .ebc-file-meta {
font-size: 12px;
color: var(--ebc-muted);
margin-bottom: 8px;
}
#eventbuzz-concierge-root .ebc-file-preview {
display: block;
width: 100%;
max-height: 220px;
object-fit: contain;
border-radius: 8px;
background: #fff;
border: 1px solid var(--ebc-border);
margin-bottom: 8px;
}
#eventbuzz-concierge-root .ebc-file-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
#eventbuzz-concierge-root .ebc-file-btn {
display: inline-block;
padding: 8px 14px;
border-radius: 8px;
border: 1px solid var(--ebc-accent);
font-size: 12px;
font-weight: 650;
text-decoration: none;
cursor: pointer;
}
#eventbuzz-concierge-root .ebc-file-download {
background: var(--ebc-accent);
color: var(--ebc-accent-text);
}
#eventbuzz-concierge-root .ebc-file-view {
background: #fff;
color: var(--ebc-accent);
}
#eventbuzz-concierge-root .ebc-file-btn:hover {
filter: brightness(0.97);
}
#eventbuzz-concierge-root .ebc-cta-card {
margin: 0;
}
#eventbuzz-concierge-root .ebc-cta-btn {
display: block;
width: 100%;
box-sizing: border-box;
padding: 10px 14px;
border-radius: 10px;
border: 1px solid var(--ebc-accent);
background: var(--ebc-accent);
color: var(--ebc-accent-text);
font-size: 13px;
font-weight: 650;
text-align: center;
text-decoration: none;
cursor: pointer;
}
#eventbuzz-concierge-root .ebc-cta-btn:hover {
filter: brightness(0.97);
}
#eventbuzz-concierge-root .ebc-place-card {
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 10px 12px;
background: #f8fafc;
}
#eventbuzz-concierge-root .ebc-place-badge {
display: inline-block;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
color: var(--ebc-muted);
margin-bottom: 4px;
}
#eventbuzz-concierge-root .ebc-place-title {
font-weight: 650;
font-size: 14px;
color: var(--ebc-text);
margin-bottom: 4px;
}
#eventbuzz-concierge-root .ebc-place-meta {
font-size: 12px;
color: var(--ebc-muted);
margin-top: 2px;
}
#eventbuzz-concierge-root .ebc-place-link {
display: inline-block;
margin-top: 8px;
font-size: 12px;
font-weight: 600;
color: var(--ebc-accent);
text-decoration: none;
}
#eventbuzz-concierge-root .ebc-place-link:hover {
text-decoration: underline;
}
#eventbuzz-concierge-root .ebc-speaker-card {
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 10px 12px;
background: #f8fafc;
}
#eventbuzz-concierge-root .ebc-speaker-head {
display: flex;
gap: 10px;
align-items: flex-start;
}
#eventbuzz-concierge-root .ebc-speaker-photo {
width: 48px;
height: 48px;
border-radius: 50%;
object-fit: cover;
flex-shrink: 0;
background: #e2e8f0;
}
#eventbuzz-concierge-root .ebc-speaker-info {
min-width: 0;
flex: 1;
}
#eventbuzz-concierge-root .ebc-speaker-name {
font-weight: 650;
font-size: 14px;
color: var(--ebc-text);
}
#eventbuzz-concierge-root .ebc-speaker-meta {
font-size: 12px;
color: var(--ebc-muted);
margin-top: 2px;
}
#eventbuzz-concierge-root .ebc-speaker-bio {
margin-top: 8px;
font-size: 12px;
line-height: 1.45;
color: var(--ebc-text);
white-space: pre-wrap;
}
#eventbuzz-concierge-root .ebc-speaker-links {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
margin-top: 8px;
}
#eventbuzz-concierge-root .ebc-speaker-link {
font-size: 12px;
font-weight: 600;
color: var(--ebc-accent);
text-decoration: none;
}
#eventbuzz-concierge-root .ebc-speaker-link:hover {
text-decoration: underline;
}
#eventbuzz-concierge-root .ebc-exhibitor-card {
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 10px 12px;
background: #f8fafc;
}
#eventbuzz-concierge-root .ebc-exhibitor-head {
display: flex;
gap: 10px;
align-items: flex-start;
}
#eventbuzz-concierge-root .ebc-exhibitor-logo {
width: 48px;
height: 48px;
border-radius: 8px;
object-fit: contain;
flex-shrink: 0;
background: #fff;
border: 1px solid var(--ebc-border);
}
#eventbuzz-concierge-root .ebc-exhibitor-info {
min-width: 0;
flex: 1;
}
#eventbuzz-concierge-root .ebc-exhibitor-name {
font-weight: 650;
font-size: 14px;
color: var(--ebc-text);
}
#eventbuzz-concierge-root .ebc-exhibitor-meta {
font-size: 12px;
color: var(--ebc-muted);
margin-top: 2px;
}
#eventbuzz-concierge-root .ebc-exhibitor-desc {
margin-top: 8px;
font-size: 12px;
line-height: 1.45;
color: var(--ebc-text);
white-space: pre-wrap;
}
#eventbuzz-concierge-root .ebc-exhibitor-links {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
margin-top: 8px;
}
#eventbuzz-concierge-root .ebc-exhibitor-link {
font-size: 12px;
font-weight: 600;
color: var(--ebc-accent);
text-decoration: none;
}
#eventbuzz-concierge-root .ebc-exhibitor-link:hover {
text-decoration: underline;
}
#eventbuzz-concierge-root .ebc-ticket-qr-card {
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 12px;
background: #f8fafc;
text-align: center;
}
#eventbuzz-concierge-root .ebc-ticket-qr-title {
font-weight: 650;
font-size: 14px;
color: var(--ebc-text);
margin-bottom: 4px;
}
#eventbuzz-concierge-root .ebc-ticket-qr-meta {
font-size: 12px;
color: var(--ebc-muted);
margin-bottom: 10px;
}
#eventbuzz-concierge-root .ebc-ticket-qr-img {
display: block;
width: 200px;
height: 200px;
max-width: 100%;
margin: 0 auto;
border-radius: 8px;
background: #fff;
}
#eventbuzz-concierge-root .ebc-ticket-qr-hint {
margin-top: 8px;
font-size: 11px;
color: var(--ebc-muted);
}
#eventbuzz-concierge-root .ebc-ticket-qr-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: center;
margin-top: 10px;
}
#eventbuzz-concierge-root .ebc-ticket-qr-download,
#eventbuzz-concierge-root .ebc-ticket-qr-email {
display: inline-block;
padding: 8px 14px;
border-radius: 8px;
border: 1px solid var(--ebc-accent);
font-size: 12px;
font-weight: 650;
text-decoration: none;
cursor: pointer;
font-family: inherit;
line-height: 1.2;
}
#eventbuzz-concierge-root .ebc-ticket-qr-download {
background: var(--ebc-accent);
color: var(--ebc-accent-text);
}
#eventbuzz-concierge-root .ebc-ticket-qr-email {
background: #fff;
color: var(--ebc-accent);
}
#eventbuzz-concierge-root .ebc-ticket-qr-download:hover,
#eventbuzz-concierge-root .ebc-ticket-qr-email:hover {
filter: brightness(0.97);
}
#eventbuzz-concierge-root .ebc-ticket-qr-email:disabled {
opacity: 0.55;
cursor: not-allowed;
}
#eventbuzz-concierge-root .ebc-quick-replies {
display: flex;
flex-wrap: wrap;
gap: 8px;
align-self: flex-start;
max-width: 100%;
padding: 2px 0 4px;
}
#eventbuzz-concierge-root .ebc-chip {
border: 1px solid color-mix(in srgb, var(--ebc-accent) 45%, var(--ebc-border));
background: #fff;
color: var(--ebc-accent);
border-radius: 999px;
padding: 7px 12px;
font-size: 13px;
font-weight: 600;
line-height: 1.2;
cursor: pointer;
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
#eventbuzz-concierge-root .ebc-chip:hover:not(:disabled) {
background: var(--ebc-accent);
color: var(--ebc-accent-text);
border-color: var(--ebc-accent);
}
#eventbuzz-concierge-root .ebc-chip:disabled {
opacity: 0.55;
cursor: not-allowed;
}
#eventbuzz-concierge-root .ebc-error {
color: #b91c1c;
font-size: 12px;
min-height: 16px;
padding: 0 14px 6px;
}
#eventbuzz-concierge-root .ebc-inputbar {
display: flex;
gap: 8px;
padding: 12px;
border-top: 1px solid var(--ebc-border);
background: #fff;
}
#eventbuzz-concierge-root .ebc-input {
flex: 1;
border: 1px solid var(--ebc-border);
border-radius: 10px;
padding: 10px 12px;
font-size: 14px;
outline: none;
}
#eventbuzz-concierge-root .ebc-input:focus {
border-color: var(--ebc-accent);
}
#eventbuzz-concierge-root .ebc-send {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 42px;
height: 42px;
padding: 0;
border: none;
border-radius: 50%;
background: var(--ebc-accent);
color: var(--ebc-accent-text);
cursor: pointer;
}
#eventbuzz-concierge-root .ebc-send-icon {
display: block;
margin-left: 2px; /* optical center for paper-plane */
}
#eventbuzz-concierge-root .ebc-send:hover:not(:disabled) {
filter: brightness(1.06);
}
#eventbuzz-concierge-root .ebc-send:disabled,
#eventbuzz-concierge-root .ebc-input:disabled,
#eventbuzz-concierge-root .ebc-mic:disabled {
opacity: 0.6;
cursor: not-allowed;
}
#eventbuzz-concierge-root .ebc-hidden {
display: none !important;
}
#eventbuzz-concierge-root .ebc-mic {
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 42px;
height: 42px;
padding: 0;
border: 1px solid var(--ebc-border);
border-radius: 50%;
background: #fff;
color: var(--ebc-accent);
cursor: pointer;
}
#eventbuzz-concierge-root .ebc-mic:hover:not(:disabled) {
border-color: var(--ebc-accent);
background: rgba(var(--ebc-accent-rgb), 0.08);
}
#eventbuzz-concierge-root .ebc-mic.is-active {
background: var(--ebc-accent);
border-color: var(--ebc-accent);
color: var(--ebc-accent-text);
}
#eventbuzz-concierge-root .ebc-mic.is-listening {
box-shadow: 0 0 0 4px rgba(var(--ebc-accent-rgb), 0.22);
}
#eventbuzz-concierge-root .ebc-mic.is-speaking,
#eventbuzz-concierge-root .ebc-mic.is-connecting {
animation: ebc-mic-pulse 1.2s ease-in-out infinite;
}
@keyframes ebc-mic-pulse {
0%,
100% {
box-shadow: 0 0 0 0 rgba(var(--ebc-accent-rgb), 0.35);
}
50% {
box-shadow: 0 0 0 6px rgba(var(--ebc-accent-rgb), 0.08);
}
}
/* Typing indicator */
#eventbuzz-concierge-root .ebc-msg.ebc-typing {
padding: 12px 16px;
min-width: 56px;
}
#eventbuzz-concierge-root .ebc-typing-dots {
display: inline-flex;
align-items: center;
gap: 5px;
height: 14px;
}
#eventbuzz-concierge-root .ebc-typing-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--ebc-muted);
opacity: 0.35;
animation: ebc-typing-bounce 1.2s ease-in-out infinite;
}
#eventbuzz-concierge-root .ebc-typing-dot:nth-child(2) {
animation-delay: 0.15s;
}
#eventbuzz-concierge-root .ebc-typing-dot:nth-child(3) {
animation-delay: 0.3s;
}
@keyframes ebc-typing-bounce {
0%,
60%,
100% {
transform: translateY(0);
opacity: 0.35;
}
30% {
transform: translateY(-5px);
opacity: 1;
}
}
/* Reply feedback footer */
#eventbuzz-concierge-root .ebc-feedback {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
margin-top: 10px;
padding-top: 8px;
border-top: 1px solid var(--ebc-border);
}
#eventbuzz-concierge-root .ebc-feedback-label {
font-size: 11px;
line-height: 1.3;
color: #94a3b8;
font-weight: 400;
}
#eventbuzz-concierge-root .ebc-feedback-actions {
display: flex;
align-items: center;
gap: 2px;
flex-shrink: 0;
}
#eventbuzz-concierge-root .ebc-feedback-btn {
border: none;
background: transparent;
cursor: pointer;
font-size: 13px;
line-height: 1;
padding: 4px 6px;
border-radius: 6px;
opacity: 0.7;
}
#eventbuzz-concierge-root .ebc-feedback-btn:hover:not(:disabled) {
opacity: 1;
background: rgba(15, 23, 42, 0.06);
}
#eventbuzz-concierge-root .ebc-feedback-btn:disabled {
opacity: 0.35;
cursor: default;
}
#eventbuzz-concierge-root .ebc-msg.ebc-ephemeral {
font-size: 12px;
color: var(--ebc-muted);
background: transparent;
border: none;
padding: 2px 4px;
max-width: 92%;
}