/* Sofi · SFI-America digital worker · web widget (preview) */
#sofi-root { --sofi-navy: #0F2A43; position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 60; font-family: var(--sans); }
.sofi-launch { display: inline-flex; align-items: center; gap: .6rem; background: var(--sofi-navy); color: #fff; border: 0; border-radius: 999px; padding: .6rem 1rem .6rem .65rem; font: inherit; font-size: .875rem; cursor: pointer; box-shadow: 0 6px 24px rgba(15,42,67,.25); }
.sofi-launch:hover { transform: translateY(-1px); }
.sofi-launch .sofi-av { width: 28px; height: 28px; }
.sofi-launch small { display: block; font-size: .7rem; opacity: .75; line-height: 1.2; }
.sofi-launch span.t { text-align: left; line-height: 1.25; }
@media (max-width: 46rem) { #sofi-root { right: .75rem; bottom: .75rem; } .sofi-launch small { display: none; } .sofi-launch { padding: .5rem .85rem .5rem .55rem; } }
.sofi-av { border-radius: 50%; background: #fff; color: var(--sofi-navy); display: inline-grid; place-items: center; flex: none; }
.sofi-av svg { width: 60%; height: 60%; }

.sofi-panel { position: fixed; right: 1.25rem; bottom: 1.25rem; width: min(400px, calc(100vw - 1.5rem)); height: min(640px, calc(100vh - 2.5rem)); background: var(--bg); color: var(--ink); border: 1px solid var(--rule); border-radius: 6px; box-shadow: 0 18px 60px rgba(15,42,67,.28); display: flex; flex-direction: column; overflow: hidden; }
@media (max-width: 30rem) { .sofi-panel { right: 0; bottom: 0; width: 100vw; height: 100dvh; border-radius: 0; } }
.sofi-panel[hidden], .sofi-launch[hidden] { display: none; }
.sofi-head { background: var(--sofi-navy); color: #fff; padding: .85rem 1rem; display: flex; gap: .7rem; align-items: center; }
.sofi-head .sofi-av { width: 36px; height: 36px; }
.sofi-head .who { flex: 1; min-width: 0; line-height: 1.3; }
.sofi-head .who strong { font-weight: 600; font-size: .95rem; }
.sofi-head .who span { display: block; font-size: .72rem; opacity: .78; }
.sofi-head button { background: none; border: 1px solid rgba(255,255,255,.3); color: #fff; font: inherit; font-size: .72rem; padding: .25rem .5rem; border-radius: 3px; cursor: pointer; }
.sofi-head button:hover { border-color: #fff; }
.sofi-head .x { border: 0; font-size: 1.3rem; line-height: 1; padding: .1rem .3rem; }
.sofi-note { background: #FBF4E2; color: #5A4310; font-size: .74rem; line-height: 1.45; padding: .45rem 1rem; border-bottom: 1px solid #E8D6A6; }
.sofi-log { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .65rem; scroll-behavior: smooth; }
.sofi-msg { max-width: 88%; font-size: .9rem; line-height: 1.55; padding: .6rem .8rem; border-radius: 10px; }
.sofi-msg p { margin: 0; max-width: none; }
.sofi-msg p + p { margin-top: .5rem; }
.sofi-msg a { color: inherit; }
.sofi-msg.bot { background: var(--bg-alt); border-top-left-radius: 2px; align-self: flex-start; }
.sofi-msg.me { background: var(--sofi-navy); color: #fff; border-top-right-radius: 2px; align-self: flex-end; white-space: pre-wrap; }
.sofi-card { align-self: stretch; border: 1px solid var(--rule); border-radius: 6px; padding: .8rem .9rem; font-size: .85rem; line-height: 1.5; background: var(--bg); }
.sofi-card .k { font-size: .65rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); }
.sofi-card .h { font-family: var(--serif); font-size: 1.05rem; line-height: 1.35; margin: .25rem 0 .5rem; }
.sofi-card dl { display: grid; grid-template-columns: 1fr auto; gap: .2rem .8rem; margin: 0 0 .5rem; }
.sofi-card dt { color: var(--ink-soft); } .sofi-card dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.sofi-card .f { font-family: ui-monospace, Menlo, monospace; font-size: .74rem; color: var(--ink-mute); margin-top: .35rem; }
.sofi-card .src { font-size: .78rem; color: var(--ink-soft); margin-top: .35rem; }
.sofi-card .tag-supuesto, .sofi-card .tag-dato { font-size: .62rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; padding: 0 .3rem; border-radius: 2px; }
.sofi-card pre { white-space: pre-wrap; font-family: inherit; font-size: .8rem; margin: .35rem 0 0; max-height: 220px; overflow: auto; background: var(--bg-alt); padding: .6rem; border-radius: 4px; }
.sofi-card .acts { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .6rem; }
.sofi-chips { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0 1rem .6rem; }
.sofi-chip, .sofi-card .acts a, .sofi-card .acts button { font: inherit; font-size: .8rem; line-height: 1.3; padding: .4rem .7rem; border: 1px solid var(--accent); background: var(--bg); color: var(--accent); border-radius: 999px; cursor: pointer; text-decoration: none; text-align: left; }
.sofi-chip:hover, .sofi-card .acts a:hover, .sofi-card .acts button:hover { background: var(--accent); color: var(--accent-ink); }
.sofi-chip.primary { background: var(--sofi-navy); border-color: var(--sofi-navy); color: #fff; }
.sofi-form { display: flex; gap: .5rem; padding: .65rem 1rem .85rem; border-top: 1px solid var(--rule); }
.sofi-form input { flex: 1; min-width: 0; font: inherit; font-size: .9rem; padding: .55rem .7rem; border: 1px solid var(--rule); border-radius: 4px; background: var(--bg); color: var(--ink); }
.sofi-form button { font: inherit; font-size: .85rem; padding: .5rem .9rem; background: var(--sofi-navy); color: #fff; border: 0; border-radius: 4px; cursor: pointer; }
.sofi-typing { align-self: flex-start; font-size: .8rem; color: var(--ink-mute); padding: 0 .2rem; }
.sofi-foot { font-size: .68rem; color: var(--ink-mute); padding: 0 1rem .6rem; line-height: 1.4; }
.sofi-foot a { color: inherit; }
