/* ============================================================
   Asesora de Estilo UNO+UNO+ — widget flotante
   Estricto blanco y negro. Times New Roman + monospace.
   ============================================================ */

.dlb-st {
	--dlb-st-ink:    #000;
	--dlb-st-paper:  #fff;
	--dlb-st-card:   #fafafa;
	--dlb-st-gold:   #000;
	--dlb-st-gold-d: #333;
	--dlb-st-line:   rgba(0,0,0,.16);
	--dlb-st-user:   #000;

	--dlb-st-serif:  'Times New Roman', Times, serif;
	--dlb-st-mono:   ui-monospace, 'SFMono-Regular', 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;

	position: fixed;
	right: clamp(.5rem, 1.4vw, .85rem);
	bottom: clamp(.5rem, 1.4vw, .85rem);
	z-index: 99990;
	font-family: var(--dlb-st-mono);
	-webkit-font-smoothing: antialiased;
}
.dlb-st *, .dlb-st *::before, .dlb-st *::after { box-sizing: border-box; }

/* ---- Launcher ---- */
.dlb-st-launcher {
	position: relative;
	width: 62px; height: 62px;
	border-radius: 50%;
	border: none; cursor: pointer;
	background: var(--dlb-st-ink);
	color: var(--dlb-st-paper);
	display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 14px 34px -12px rgba(0,0,0,.5);
	transition: transform .25s, background .25s;
}
.dlb-st-launcher:hover { transform: translateY(-2px); background: var(--dlb-st-gold-d); }
.dlb-st-launcher-ico { width: 30px; height: 30px; position: relative; z-index: 2; display: inline-flex; }
.dlb-st-launcher-ico svg { width: 100%; height: 100%; }

.dlb-st-pulse {
	position: absolute; inset: 0; border-radius: 50%;
	background: var(--dlb-st-gold); opacity: .5; z-index: 1;
	animation: dlbst-pulse 2.4s cubic-bezier(.4,0,.2,1) infinite;
	pointer-events: none;
}
.dlb-st-pulse-2 { animation-delay: 1.2s; opacity: .35; }
@keyframes dlbst-pulse {
	0%   { transform: scale(1); opacity: .5; }
	70%  { transform: scale(2); opacity: 0; }
	100% { transform: scale(2); opacity: 0; }
}
.dlb-st[data-state="open"] .dlb-st-pulse { display: none; }
.dlb-st[data-state="open"] .dlb-st-launcher { display: none; }

/* ---- Panel ---- */
.dlb-st-panel {
	position: absolute; right: 0; bottom: 0;
	width: min(360px, calc(100vw - 2rem));
	height: min(540px, calc(100vh - 2rem));
	background: var(--dlb-st-paper);
	border: 1px solid var(--dlb-st-line);
	border-radius: 4px;
	box-shadow: 0 30px 70px -30px rgba(0,0,0,.5);
	display: flex; flex-direction: column; overflow: hidden;
	animation: dlbst-in .35s cubic-bezier(.16,1,.3,1);
}
@keyframes dlbst-in { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }

.dlb-st-head {
	display: flex; align-items: center; gap: .7rem;
	padding: 1rem 1.1rem;
	background: var(--dlb-st-ink); color: var(--dlb-st-paper);
}
.dlb-st-head-ico { width: 26px; height: 26px; color: var(--dlb-st-gold); flex: 0 0 auto; }
.dlb-st-head-ico svg { width: 100%; height: 100%; }
.dlb-st-head div { flex: 1; line-height: 1.15; }
.dlb-st-head strong {
	display: block; font-family: var(--dlb-st-serif);
	font-size: 1.3rem; font-weight: 700; letter-spacing: .01em;
}
.dlb-st-head small { font-size: .62rem; letter-spacing: .28em; text-transform: uppercase; opacity: .65; }
.dlb-st-close {
	background: none; border: none; color: var(--dlb-st-paper);
	font-size: 1.5rem; line-height: 1; cursor: pointer; opacity: .7; padding: .2rem .4rem;
}
.dlb-st-close:hover { opacity: 1; }

/* ---- Log ---- */
.dlb-st-log {
	flex: 1; overflow-y: auto; padding: 1.1rem;
	display: flex; flex-direction: column; gap: .65rem;
}
.dlb-st-msg {
	max-width: 85%; padding: .7rem .9rem; border-radius: 3px;
	font-size: .9rem; line-height: 1.45;
}
.dlb-st-msg--bot {
	align-self: flex-start; background: var(--dlb-st-card);
	border: 1px solid var(--dlb-st-line); color: var(--dlb-st-ink);
	border-bottom-left-radius: 0;
}
.dlb-st-msg--user {
	align-self: flex-end; background: var(--dlb-st-user); color: var(--dlb-st-paper);
	border-bottom-right-radius: 0;
}

.dlb-st-chips { display: flex; flex-wrap: wrap; gap: .45rem; align-self: flex-start; max-width: 95%; }
.dlb-st-chip {
	appearance: none; cursor: pointer;
	background: transparent; border: 1px solid var(--dlb-st-gold);
	color: var(--dlb-st-gold-d); border-radius: 40px;
	padding: .45rem .9rem; font-family: inherit; font-size: .8rem;
	transition: all .2s;
}
.dlb-st-chip:hover { background: var(--dlb-st-gold); color: #fff; }

/* ---- Form ---- */
.dlb-st-form {
	display: flex; align-items: center; gap: .5rem;
	padding: .7rem; border-top: 1px solid var(--dlb-st-line);
	background: var(--dlb-st-card);
}
.dlb-st-input {
	flex: 1; border: 1px solid var(--dlb-st-line); border-radius: 40px;
	padding: .7rem 1rem; font-family: inherit; font-size: .9rem;
	background: #fff; color: var(--dlb-st-ink); outline: none;
}
.dlb-st-input:focus { border-color: var(--dlb-st-gold); }
.dlb-st-send {
	flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%;
	border: none; cursor: pointer; background: var(--dlb-st-ink); color: var(--dlb-st-paper);
	display: inline-flex; align-items: center; justify-content: center; transition: background .2s;
}
.dlb-st-send:hover { background: var(--dlb-st-gold-d); }
.dlb-st-send svg { width: 18px; height: 18px; }

@media (prefers-reduced-motion: reduce) {
	.dlb-st *, .dlb-st *::before, .dlb-st *::after { animation: none !important; transition: none !important; }
}
