*{box-sizing:border-box;margin:0}
html,body{height:100%}
body{background:var(--color-surface-2);color:var(--color-text);font-family:var(--font-body);display:flex;justify-content:center}
button{font-family:inherit;cursor:pointer}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:none;box-shadow:var(--shadow-focus)}

/* ===== Chat (segue demo-chat/spec.md) ===== */
.chat{width:100%;max-width:760px;height:100dvh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}
@media (max-width:760px){.chat{border:0}}
.header{min-height:64px;flex:none;display:flex;align-items:center;gap:var(--space-3);padding:max(0px,env(safe-area-inset-top)) var(--space-3) 0 var(--space-4);background:var(--color-surface);border-bottom:1px solid var(--color-border)}
.store-avatar{width:40px;height:40px;border-radius:var(--radius-full);flex:none;display:grid;place-items:center;background:var(--color-surface-2);border:1px solid var(--color-border)}
.store-avatar{font:800 var(--text-sm)/1 var(--font-display);color:var(--color-primary);letter-spacing:.02em}
.header .who{flex:1;min-width:0}
.header .name{font:700 var(--text-base)/1.2 var(--font-display);letter-spacing:var(--tracking-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header .sub{white-space:nowrap;font-size:var(--text-xs);color:var(--color-text-2);display:flex;align-items:center;gap:6px;margin-top:2px}
.online{width:8px;height:8px;border-radius:50%;background:var(--color-success);flex:none}
.badge-demo{font:600 10px/1 var(--font-body);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-on-accent);background:var(--color-accent);padding:5px 8px;border-radius:var(--radius-full);flex:none}
.demo-strip{flex:none;min-height:28px;display:flex;align-items:center;justify-content:center;text-align:center;padding:2px var(--space-3);font-size:var(--text-xs);color:var(--color-text-2);background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}

.list{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4) var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}
.row{display:flex;flex-direction:column;max-width:100%}
.row.me{align-items:flex-end}
.row.bot{align-items:flex-start}
.sender{font:600 var(--text-xs)/1 var(--font-body);color:var(--color-text-2);margin:0 0 var(--space-1) var(--space-2);display:flex;align-items:center;gap:6px}
.sender svg{width:14px;height:14px}
.bubble{max-width:80%;padding:10px 14px 8px;font-size:15px;line-height:1.45;border-radius:18px;white-space:pre-line;overflow-wrap:anywhere}
.bubble .meta{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-top:4px;font:400 11px/1 var(--font-mono);white-space:nowrap}
.me .bubble{background:var(--color-primary);color:var(--color-on-primary);border-bottom-right-radius:6px}
.me .bubble .meta{color:var(--color-on-primary);opacity:.85}
.bot .bubble{background:var(--color-surface);border:1px solid var(--color-border);border-bottom-left-radius:6px}
.bot .bubble .meta{color:var(--color-text-2)}

.me.failed .bubble{background:var(--color-surface);color:var(--color-text);border:1px dashed var(--color-error)}
.me.failed .bubble .meta{color:var(--color-text-2);opacity:1}
.fail-note{display:flex;align-items:center;gap:6px;margin-top:var(--space-1);font:500 var(--text-xs)/1.3 var(--font-body);color:var(--color-error)}
.fail-note button{font:600 var(--text-xs)/1 var(--font-body);color:var(--color-error);background:none;border:0;text-decoration:underline;padding:4px 0}

.system{align-self:center;max-width:88%;text-align:center;font-size:var(--text-xs);line-height:1.4;color:var(--color-text-2);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 12px;margin:var(--space-2) 0}
.system.day{border-radius:var(--radius-full);padding:4px 12px;font-weight:600}

.typing{display:inline-flex;gap:4px;padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:18px;border-bottom-left-radius:6px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--color-text-2);animation:dot 1.2s var(--ease-standard) infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}

.chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2);max-width:92%}
.chip{height:36px;padding:0 14px;display:inline-flex;align-items:center;border-radius:var(--radius-full);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-primary);font:600 var(--text-sm)/1 var(--font-body);transition:background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}
.chip:hover{background:var(--color-surface-2)}.chip:active{transform:scale(.97)}

.cards{display:flex;gap:var(--space-2);overflow-x:auto;margin-top:var(--space-2);width:calc(100% + var(--space-3));padding-right:var(--space-3);scroll-snap-type:x mandatory;scrollbar-width:none}
.cards::-webkit-scrollbar{display:none}
.card{flex:none;width:232px;scroll-snap-align:start;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.card .img{height:96px;background:var(--color-surface-2);display:grid;place-items:center;color:var(--color-text-2);position:relative}
.tag-ex{position:absolute;top:8px;left:8px;font:600 10px/1 var(--font-body);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:4px 6px;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-2);border:1px solid var(--color-border)}
.card .body{padding:var(--space-3);display:flex;flex-direction:column;gap:6px;flex:1}
.card .pname{font:700 var(--text-sm)/1.3 var(--font-display)}
.card .pdesc{font-size:var(--text-xs);color:var(--color-text-2);line-height:1.4}
.card .price{font:500 var(--text-lg)/1.2 var(--font-mono);font-variant-numeric:tabular-nums}
.card .price small{font:400 var(--text-xs) var(--font-body);color:var(--color-text-2)}
.card .btn{margin-top:auto}
.stock{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--color-success);font-weight:500}
.stock::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.stock.sem{color:var(--color-warning)}

.btn{min-height:36px;padding:0 12px;border-radius:var(--radius-md);font:600 var(--text-sm)/1.2 var(--font-body);display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;text-decoration:none;text-align:center;transition:background var(--duration-fast) var(--ease-standard)}
.btn.primary{background:var(--color-primary);color:var(--color-on-primary)}
.btn.primary:hover{background:var(--color-primary-hover)}
.btn.ghost{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}
.btn.ghost:hover{background:var(--color-surface-2)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn svg{width:16px;height:16px;flex:none}
.handoff{margin-top:var(--space-1);max-width:80%}.hnote{font-size:var(--text-xs);color:var(--color-text-2);margin:var(--space-1) 0 0 var(--space-2)}

.quote{width:300px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:var(--space-2);overflow:hidden}
.quote .qh{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:var(--space-3) var(--space-3) var(--space-2)}
.quote .qt{font:700 var(--text-sm)/1.2 var(--font-display)}
.quote .qid{font:400 11px/1 var(--font-mono);color:var(--color-text-2);white-space:nowrap}
.quote table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}
.quote td{padding:7px var(--space-3);border-top:1px solid var(--color-border);vertical-align:top}
.quote td.n{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.quote td .q{color:var(--color-text-2);display:block}
.quote tr.desc td.n{color:var(--color-success)}
.quote tr.total td{font:700 var(--text-sm)/1.2 var(--font-display);background:var(--color-surface-2)}
.quote tr.total td.n{font:500 var(--text-base)/1.2 var(--font-mono);color:var(--color-primary)}
.quote .qnote{padding:var(--space-2) var(--space-3);font-size:11px;line-height:1.4;color:var(--color-text-2);border-top:1px solid var(--color-border)}
.quote .qa{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);padding:0 var(--space-3) var(--space-3)}
.quote .qa .wide{grid-column:1/-1}

.composer{flex:none;display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface);border-top:1px solid var(--color-border)}
.input{flex:1;min-height:44px;border-radius:22px;background:var(--color-surface-2);border:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-4);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}
.input:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}
.input textarea{flex:1;border:0;background:none;font:16px/1.4 var(--font-body);color:var(--color-text);outline:none;min-width:0;resize:none;padding:11px 0;max-height:120px;height:44px}
.input textarea::placeholder{color:var(--color-text-2)}
.send{width:44px;height:44px;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-on-primary);display:grid;place-items:center;border:0;flex:none;transition:transform var(--duration-fast) var(--ease-emphasized),background var(--duration-fast) var(--ease-standard)}
.send:hover{background:var(--color-primary-hover)}.send:active{transform:scale(.92)}.send:disabled{opacity:.55}
.powered{flex:none;min-height:30px;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 6px;text-align:center;padding-top:4px;font-size:11px;color:var(--color-text-2);background:var(--color-surface);padding-bottom:env(safe-area-inset-bottom)}
.powered svg{width:14px;height:14px}
.powered b{font:700 11px/1 var(--font-display);color:var(--color-text)}

.enter{animation:bubble-in var(--duration-base) var(--ease-enter) both}
.row.me.enter{transform-origin:bottom right}.row.bot.enter{transform-origin:bottom left}
@keyframes bubble-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.typing i{animation:none;opacity:.7}.enter{animation:none}.list{scroll-behavior:auto}}

@media print{
  body{background:#fff}.chat{height:auto;border:0}
  .header,.demo-strip,.composer,.powered,.list>*:not(.row){display:none!important}
  .list>.row{display:none}.list>.row.imprimir{display:flex}
  .row.imprimir>*:not(.quote){display:none}.quote{width:100%;border:1px solid #999}.quote .qa{display:none}
}
.input textarea:focus-visible{box-shadow:none}
.fail-note .fail-wa{color:inherit;text-decoration:underline;white-space:nowrap}
.fail-note{flex-wrap:wrap}
.alt-tag{display:inline-block;font:600 var(--text-xs)/1.2 var(--font-body);color:var(--color-text-2);border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;margin-bottom:4px}
