/* ==================================================================
   ARI — la asistente integrada
   ------------------------------------------------------------------
   Dialecto "la conversación calma": superficie clara, una sola tinta de
   acento, aire. El degradé de marca vive sólo en el orbe y en el botón
   de enviar. Lo único que levanta la voz es la tarjeta que espera una
   decisión. Todo usa los tokens de style.css / soft.css.
   ================================================================== */
:root{
  --ari-w: 420px;
  --ari-ink: var(--color-primary);
  --ari-accent: #2563eb;
  --ari-soft: #f3f6fd;
  --ari-line: rgba(14,33,72,.09);
  --ari-grad: linear-gradient(135deg, #1b3fa8 0%, #2f6bf0 46%, #6fb4ff 100%);
}

/* ---------- Orbe: la cara de Ari ---------- */
.ari-orb{
  --s: 38px;
  position: relative; display: inline-block; flex-shrink: 0;
  width: var(--s); height: var(--s); border-radius: 50%;
  background:
    radial-gradient(circle at 30% 26%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 34%),
    radial-gradient(circle at 72% 78%, #8fd0ff 0%, rgba(143,208,255,0) 55%),
    var(--ari-grad);
  box-shadow: 0 6px 18px rgba(37,99,235,.28), inset 0 -3px 8px rgba(14,33,72,.28);
}
.ari-orb i{
  position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 0deg, rgba(255,255,255,0) 0deg, rgba(255,255,255,.55) 70deg, rgba(255,255,255,0) 150deg, rgba(255,255,255,0) 360deg);
  mix-blend-mode: soft-light; animation: ari-turn 9s linear infinite;
}
.ari-orb.sm{ --s: 30px; box-shadow: 0 3px 10px rgba(37,99,235,.24), inset 0 -2px 6px rgba(14,33,72,.26); }
.ari-orb.lg{ --s: 62px; }
@keyframes ari-turn{ to{ transform: rotate(360deg); } }
@keyframes ari-breathe{ 0%,100%{ transform: scale(1); } 50%{ transform: scale(1.09); } }
.ari-panel.busy .ari-head .ari-orb{ animation: ari-breathe 1.5s var(--ease-standard) infinite; }
.ari-panel.busy .ari-head .ari-orb i{ animation-duration: 2.2s; }

/* ---------- Botón flotante ---------- */
.ari-fab{
  position: fixed; right: 22px; bottom: 22px; z-index: 880;
  width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%;
  background: #fff; cursor: pointer;
  display: grid; place-items: center;
  box-shadow: 0 10px 30px rgba(14,33,72,.18), 0 2px 6px rgba(14,33,72,.10);
  transition: transform var(--dur-base) var(--ease-spring), opacity var(--dur-base) !important;
  animation: ari-pop .5s var(--ease-spring) both;
}
.ari-fab .ari-orb{ --s: 44px; }
.ari-fab:hover{ transform: translateY(-2px) scale(1.05); }
.ari-fab:active{ transform: scale(.95); }
.ari-fab-dot{
  position: absolute; top: -2px; right: -2px; min-width: 20px; height: 20px; padding: 0 5px;
  border-radius: 999px; background: #e0362f; color: #fff; border: 2px solid #fff;
  font: 700 10.5px/16px var(--font-body); text-align: center;
}
body.ari-open .ari-fab{ opacity: 0; pointer-events: none; transform: scale(.6); }
@keyframes ari-pop{ from{ opacity: 0; transform: scale(.5) translateY(20px); } to{ opacity: 1; transform: none; } }

/* ---------- Botón de la barra superior ---------- */
.ari-top-btn{
  position: relative; display: inline-flex; align-items: center; gap: 7px; flex-shrink: 0;
  height: 34px; padding: 0 13px 0 6px; border-radius: 999px; cursor: pointer;
  border: 1px solid rgba(37,99,235,.22); background: linear-gradient(120deg, #f2f6ff, #eaf1ff);
  color: #173a8c; font: 700 12.5px/1 var(--font-body); letter-spacing: .01em;
}
.ari-top-btn .ari-orb{ --s: 22px; box-shadow: 0 2px 6px rgba(37,99,235,.3), inset 0 -2px 4px rgba(14,33,72,.25); }
.ari-top-btn:hover{ background: linear-gradient(120deg, #e9f0ff, #dde9ff); border-color: rgba(37,99,235,.36); }
.ari-top-btn.active{ background: var(--color-primary); color: #fff; border-color: transparent; }
.ari-top-btn kbd{ font: 600 10px/1 var(--font-body); padding: 3px 5px; border-radius: 5px; background: rgba(23,58,140,.09); color: inherit; opacity: .75; }
.ari-top-btn.active kbd{ background: rgba(255,255,255,.18); }
.ari-top-dot{ position: absolute; top: -2px; right: -2px; width: 10px; height: 10px; border-radius: 50%; background: #e0362f; border: 2px solid #fff; }
@media (max-width: 1180px){ .ari-top-btn kbd{ display: none; } }

/* ---------- Panel ---------- */
.ari-panel{
  position: fixed; top: 10px; right: 10px; bottom: 10px; z-index: 900;
  width: var(--ari-w); max-width: calc(100vw - 20px);
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--ari-line); border-radius: 22px;
  box-shadow: 0 30px 80px rgba(14,33,72,.22), 0 6px 18px rgba(14,33,72,.08);
  transform: translateX(calc(100% + 30px)); opacity: 0; visibility: hidden;
  transition: transform .34s cubic-bezier(.22,.9,.3,1), opacity .22s ease, visibility 0s linear .34s, width .28s var(--ease-out);
  overflow: hidden;
}
.ari-panel.open{ transform: none; opacity: 1; visibility: visible; transition-delay: 0s; }
.ari-panel.wide{ --ari-w: 620px; }
/* En pantallas anchas el panel empuja el contenido: se sigue trabajando al lado */
@media (min-width: 1360px){
  body.ari-open .app{ padding-right: calc(var(--ari-w) + 22px); transition: padding-right .3s var(--ease-out); }
  body.ari-open:has(.ari-panel.wide) .app{ padding-right: 642px; }
  .app{ transition: padding-right .3s var(--ease-out); }
}

.ari-head{
  display: flex; align-items: center; gap: 10px; padding: 14px 14px 12px 16px;
  border-bottom: 1px solid var(--ari-line);
  background: linear-gradient(180deg, #fbfcff, #fff);
}
.ari-head-txt{ flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.ari-head-txt b{ font: 700 15.5px/1.15 var(--font-display); letter-spacing: -.02em; color: var(--ari-ink); }
.ari-head-txt span{ font-size: 11.5px; color: var(--color-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ari-hbtn{
  width: 32px; height: 32px; border: 0; border-radius: 10px; background: transparent; cursor: pointer;
  color: var(--color-text-muted); display: grid; place-items: center; flex-shrink: 0;
}
.ari-hbtn:hover{ background: var(--ari-soft); color: var(--ari-ink); }
.ari-hbtn svg, .ari-cbtn svg, .ari-idea svg, .ari-noted > svg{ width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

.ari-body{
  flex: 1; overflow-y: auto; overscroll-behavior: contain;
  padding: 18px 16px 10px; display: flex; flex-direction: column; gap: 12px;
  scrollbar-width: thin; scrollbar-color: #d7dce6 transparent;
}
/* Hijos de una columna flex con overflow:hidden se dejan aplastar: que no encojan. */
.ari-body > *{ flex-shrink: 0; }
.ari-body::-webkit-scrollbar{ width: 8px; }
.ari-body::-webkit-scrollbar-thumb{ background: #d7dce6; border-radius: 8px; border: 2px solid #fff; }

/* ---------- Mensajes ---------- */
.ari-msg{ display: flex; max-width: 100%; }
.ari-msg.me{ justify-content: flex-end; }
.ari-bubble{
  max-width: 86%; padding: 9px 14px; border-radius: 18px 18px 5px 18px;
  background: var(--ari-ink); color: #fff; font-size: 13.5px; line-height: 1.5; word-wrap: break-word; overflow-wrap: anywhere;
}
.ari-msg.bot{ flex-direction: column; align-items: flex-start; gap: 8px; }
.ari-msg.bot.warn .ari-md{ color: #8a5a00; }
.ari-msg.bot.error .ari-md{ color: #a32620; }
.is-new{ animation: ari-in .32s var(--ease-out) both; }
@keyframes ari-in{ from{ opacity: 0; transform: translateY(8px); } to{ opacity: 1; transform: none; } }

.ari-md{ font-size: 13.5px; line-height: 1.6; color: var(--color-text); max-width: 100%; overflow-wrap: anywhere; }
.ari-md > *:first-child{ margin-top: 0; } .ari-md > *:last-child{ margin-bottom: 0; }
.ari-md p{ margin: 0 0 9px; }
.ari-md ul, .ari-md ol{ margin: 0 0 9px; padding-left: 19px; }
.ari-md li{ margin: 3px 0; }
.ari-md li::marker{ color: var(--color-text-subtle); }
.ari-md b{ font-weight: 650; color: var(--ari-ink); }
.ari-md h3, .ari-md h4, .ari-md h5, .ari-md h6{ font: 700 14px/1.3 var(--font-display); letter-spacing: -.01em; color: var(--ari-ink); margin: 14px 0 6px; }
.ari-md h3{ font-size: 15.5px; }
.ari-md code{ font: 500 12px var(--font-mono); background: var(--ari-soft); padding: 1px 5px; border-radius: 5px; }
.ari-md a{ color: var(--ari-accent); text-decoration: underline; text-underline-offset: 2px; }
.ari-md hr{ border: 0; border-top: 1px solid var(--ari-line); margin: 12px 0; }
.ari-md i, .ari-md em{ color: var(--color-text-secondary); }

.ari-tbl-wrap{ max-width: 100%; overflow-x: auto; margin: 4px 0 10px; border: 1px solid var(--ari-line); border-radius: 12px; }
.ari-tbl{ width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ari-tbl th{ text-align: left; font: 650 10.5px/1.3 var(--font-body); letter-spacing: .05em; text-transform: uppercase; color: var(--color-text-muted); padding: 9px 11px; background: #fafbfd; border-bottom: 1px solid var(--ari-line); white-space: nowrap; }
.ari-tbl td{ padding: 8px 11px; border-bottom: 1px solid rgba(14,33,72,.05); vertical-align: top; }
.ari-tbl tr:last-child td{ border-bottom: 0; }
.ari-tbl td.n{ text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ari-tbl tbody tr:hover td{ background: #fafbfe; }

.ari-typing{ display: inline-flex; gap: 5px; padding: 10px 2px; }
.ari-typing i{ width: 7px; height: 7px; border-radius: 50%; background: #9db4e6; animation: ari-dot 1.1s ease-in-out infinite; }
.ari-typing i:nth-child(2){ animation-delay: .15s; } .ari-typing i:nth-child(3){ animation-delay: .3s; }
@keyframes ari-dot{ 0%,70%,100%{ transform: translateY(0); opacity: .45; } 35%{ transform: translateY(-5px); opacity: 1; } }

/* ---------- Pasos (lo que Ari está haciendo) ---------- */
.ari-step{ display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--color-text-muted); margin: -4px 0; }
.ari-step-ic{ width: 16px; height: 16px; display: grid; place-items: center; flex-shrink: 0; }
.ari-step .ico{ width: 13px; height: 13px; }
.ari-step.ok .ari-step-ic{ color: #0f9d68; }
.ari-step.err{ color: #b3382f; } .ari-step.ask .ari-step-ic{ color: var(--ari-accent); }
.ari-spin{ width: 12px; height: 12px; border-radius: 50%; border: 2px solid rgba(37,99,235,.2); border-top-color: var(--ari-accent); animation: ari-turn .7s linear infinite; display: inline-block; }
.ari-notice{ display: flex; gap: 9px; align-items: flex-start; font-size: 12px; line-height: 1.5; color: #8a5a00; background: #fff8e8; border: 1px solid #f6e3b4; border-radius: 12px; padding: 9px 12px; }
.ari-notice .ico{ width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; }
.ari-noted{ display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; line-height: 1.5; color: #14532d; background: #effaf3; border: 1px solid #cdeedb; border-radius: 12px; padding: 9px 12px; }
.ari-noted > svg{ flex-shrink: 0; margin-top: 1px; color: #0f9d68; }
.ari-noted b{ margin-right: 4px; } .ari-noted em{ font-style: normal; opacity: .75; }

/* ---------- Tarjetas ---------- */
.ari-card{
  border: 1px solid var(--ari-line); border-radius: 16px; background: #fff; overflow: hidden;
  box-shadow: 0 1px 2px rgba(14,33,72,.04);
}
.ari-card-h{ display: flex; align-items: center; gap: 10px; padding: 13px 14px 10px; }
.ari-card-h b{ font: 700 14px/1.25 var(--font-display); letter-spacing: -.01em; color: var(--ari-ink); flex: 1; min-width: 0; }
.ari-card-h em{ font-style: normal; font-size: 11.5px; color: var(--color-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 46%; }
.ari-card-ic{ width: 30px; height: 30px; border-radius: 10px; background: var(--ari-soft); color: var(--ari-accent); display: grid; place-items: center; flex-shrink: 0; }
.ari-card-ic .ico{ width: 16px; height: 16px; }
.ari-card-ic.wa{ background: #e8f9ee; color: #128c4a; }
.ari-kvs{ padding: 0 14px 4px; }
.ari-kv{ display: flex; gap: 12px; justify-content: space-between; align-items: baseline; padding: 7px 0; border-top: 1px solid rgba(14,33,72,.06); font-size: 12.5px; }
.ari-kv span{ color: var(--color-text-muted); flex-shrink: 0; }
.ari-kv b{ font-weight: 600; color: var(--color-text); text-align: right; overflow-wrap: anywhere; }
.ari-card-note{ display: flex; gap: 8px; margin: 6px 14px 4px; padding: 8px 10px; border-radius: 10px; background: #fff8e8; color: #8a5a00; font-size: 12px; line-height: 1.45; }
.ari-card-note .ico{ width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; }
.ari-card-f{ display: flex; gap: 8px; justify-content: flex-end; padding: 10px 14px 13px; flex-wrap: wrap; }
.ari-card-s{ display: flex; align-items: center; gap: 8px; padding: 10px 14px 12px; font-size: 12.5px; font-weight: 600; border-top: 1px solid rgba(14,33,72,.06); margin-top: 6px; }
.ari-card-s .ico{ width: 15px; height: 15px; }
.ari-card-s.ok{ color: #0b7d53; background: #f3fbf6; } .ari-card-s.err{ color: #b3382f; background: #fef5f4; }
.ari-card-s.off{ color: var(--color-text-subtle); font-weight: 500; } .ari-card-s.run{ color: var(--ari-accent); }
.ari-card-s span{ flex: 1; }
.ari-link{ border: 0; background: none; cursor: pointer; color: var(--ari-accent); font: 600 12px var(--font-body); display: inline-flex; align-items: center; gap: 4px; padding: 0; }
.ari-link .ico{ width: 13px; height: 13px; }
/* La tarjeta que espera decisión es lo único que resalta */
.ari-confirm.pending{ border-color: rgba(37,99,235,.42); box-shadow: 0 0 0 4px rgba(37,99,235,.09), 0 10px 26px rgba(37,99,235,.12); }
.ari-confirm.pending.danger{ border-color: rgba(224,54,47,.45); box-shadow: 0 0 0 4px rgba(224,54,47,.08), 0 10px 26px rgba(224,54,47,.10); }
.ari-confirm.danger .ari-card-ic{ background: #fdeceb; color: #c9302a; }
.ari-confirm.cancelled, .ari-confirm.expired{ opacity: .62; }
.ari-confirm.done .ari-card-ic{ background: #e7f8f0; color: #0b7d53; }

.ari-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; text-decoration: none;
  height: 34px; padding: 0 14px; border-radius: 999px; cursor: pointer; white-space: nowrap;
  font: 650 12.5px/1 var(--font-body); border: 1px solid transparent;
}
.ari-btn .ico{ width: 14px; height: 14px; }
.ari-btn.primary{ background: var(--ari-ink); color: #fff; }
.ari-btn.primary:hover{ background: #16305f; }
.ari-btn.danger{ background: #d9342c; color: #fff; } .ari-btn.danger:hover{ background: #bf2a23; }
.ari-btn.ghost{ background: #fff; color: var(--color-text-secondary); border-color: var(--color-border-strong); }
.ari-btn.ghost:hover{ background: var(--ari-soft); color: var(--ari-ink); }
.ari-btn:active{ transform: scale(.97); }

.ari-report-top{ display: flex; gap: 12px; align-items: center; padding: 14px; cursor: pointer; }
.ari-report-top:hover b{ color: var(--ari-accent); }
.ari-report-doc{ width: 40px; height: 48px; border-radius: 8px; background: linear-gradient(160deg, #eef4ff, #dde9ff); color: var(--ari-accent); display: grid; place-items: center; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(37,99,235,.16); }
.ari-report-doc .ico{ width: 18px; height: 18px; }
.ari-report-top b{ display: block; font: 700 14px/1.25 var(--font-display); color: var(--ari-ink); letter-spacing: -.01em; }
.ari-report-top span{ font-size: 11.5px; color: var(--color-text-muted); }
.ari-report-sum{ margin: 0 14px; font-size: 12.5px; line-height: 1.55; color: var(--color-text-secondary); }
.ari-draft-subj{ margin: 0 14px 6px; font-weight: 650; font-size: 12.5px; color: var(--ari-ink); }
.ari-draft-txt{ margin: 0 14px; padding: 11px 13px; border-radius: 12px; background: #f6f8fc; font-size: 13px; line-height: 1.55; color: var(--color-text); max-height: 240px; overflow-y: auto; overflow-wrap: anywhere; }
.ari-acts{ display: flex; flex-wrap: wrap; gap: 6px; }
.ari-chip{ border: 1px solid var(--color-border-strong); background: #fff; border-radius: 999px; padding: 6px 12px; font: 600 12px var(--font-body); color: var(--ari-ink); cursor: pointer; }
.ari-chip:hover{ background: var(--ari-soft); border-color: rgba(37,99,235,.3); }

/* ---------- Gráficos ---------- */
.ari-chart{ padding-bottom: 8px; }
.ari-svg{ display: block; width: 100%; height: auto; padding: 0 8px; }
.ari-ax{ font: 500 10.5px var(--font-body); fill: #7a8394; }
.ari-val{ font: 650 10px var(--font-body); fill: #24406f; }
.ari-base{ stroke: rgba(14,33,72,.14); stroke-width: 1; }
.ari-pie{ display: flex; gap: 16px; align-items: center; padding: 4px 14px 10px; flex-wrap: wrap; }
.ari-pie svg{ width: 124px; height: 124px; flex-shrink: 0; }
.ari-pie ul{ list-style: none; margin: 0; padding: 0; flex: 1; min-width: 160px; display: grid; gap: 5px; }
.ari-pie li{ display: grid; grid-template-columns: 10px 1fr auto auto; gap: 8px; align-items: center; font-size: 12px; }
.ari-pie li i{ width: 10px; height: 10px; border-radius: 3px; }
.ari-pie li b{ font-variant-numeric: tabular-nums; } .ari-pie li em{ font-style: normal; color: var(--color-text-muted); font-variant-numeric: tabular-nums; }

/* ---------- Portada ---------- */
.ari-welcome{ display: flex; flex-direction: column; align-items: flex-start; padding: 14px 4px 6px; animation: ari-in .4s var(--ease-out) both; }
.ari-welcome h2{ font: 750 23px/1.15 var(--font-display); letter-spacing: -.03em; color: var(--ari-ink); margin: 16px 0 6px; }
.ari-welcome > p{ font-size: 13.5px; line-height: 1.55; color: var(--color-text-secondary); margin: 0 0 16px; max-width: 34ch; }
.ari-brief{ width: 100%; }
.ari-brief-load{ display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--color-text-muted); padding: 6px 0 12px; }
.ari-brief-stats{ display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--ari-line); border-radius: 16px; overflow: hidden; margin-bottom: 10px; background: #fff; }
.ari-brief-stats div{ padding: 11px 6px 10px; text-align: center; border-left: 1px solid var(--ari-line); }
.ari-brief-stats div:first-child{ border-left: 0; }
.ari-brief-stats b{ display: block; font: 750 19px/1 var(--font-display); letter-spacing: -.03em; color: var(--ari-ink); font-variant-numeric: tabular-nums; }
.ari-brief-stats span{ font-size: 10.5px; color: var(--color-text-muted); letter-spacing: .02em; }
.ari-att{ display: grid; gap: 6px; margin-bottom: 4px; }
.ari-att-i{ display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ari-line); background: #fff; cursor: pointer; font: 550 12.5px/1.35 var(--font-body); color: var(--color-text); }
.ari-att-i i{ width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: #9aa4b5; }
.ari-att-i.high i{ background: #e0362f; box-shadow: 0 0 0 3px rgba(224,54,47,.14); }
.ari-att-i.mid i{ background: #e6a100; }
.ari-att-i span{ flex: 1; } .ari-att-i .ico{ width: 13px; height: 13px; color: var(--color-text-subtle); }
.ari-att-i:hover{ background: var(--ari-soft); border-color: rgba(37,99,235,.24); }
.ari-att-ok{ display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: #0b7d53; padding: 4px 2px 8px; }
.ari-att-ok .ico{ width: 14px; height: 14px; }
.ari-ideas-t{ font: 700 10.5px/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-subtle); margin: 16px 0 8px; }
.ari-ideas{ display: grid; gap: 6px; width: 100%; }
.ari-idea{ display: flex; align-items: flex-start; gap: 10px; text-align: left; padding: 10px 12px; border-radius: 12px; border: 0; background: var(--ari-soft); cursor: pointer; font: 500 13px/1.4 var(--font-body); color: var(--ari-ink); }
.ari-idea svg{ width: 15px; height: 15px; flex-shrink: 0; margin-top: 2px; color: var(--ari-accent); }
.ari-idea:hover{ background: #e8effd; }
.ari-more{ margin-top: 12px; border: 0; background: none; padding: 4px 0; cursor: pointer; font: 600 12px var(--font-body); color: var(--ari-accent); }
.ari-more:hover{ text-decoration: underline; }

/* ---------- Composer ---------- */
.ari-foot{ padding: 8px 14px 10px; border-top: 1px solid var(--ari-line); background: #fff; }
.ari-composer{
  display: flex; align-items: flex-end; gap: 6px; padding: 6px 6px 6px 14px;
  border: 1.5px solid var(--color-border-strong); border-radius: 20px; background: #fff;
  transition: border-color var(--dur-base), box-shadow var(--dur-base);
}
.ari-composer:focus-within{ border-color: var(--ari-accent); box-shadow: 0 0 0 4px rgba(37,99,235,.11); }
.ari-composer textarea{
  flex: 1; min-width: 0; border: 0 !important; outline: 0; resize: none; background: transparent !important; box-shadow: none !important;
  font: 400 14px/1.45 var(--font-body); color: var(--color-text); padding: 7px 0; max-height: 160px; border-radius: 0 !important;
}
.ari-cbtn{ width: 34px; height: 34px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; flex-shrink: 0; }
.ari-mic{ background: transparent; color: var(--color-text-muted); }
.ari-mic:hover{ background: var(--ari-soft); color: var(--ari-ink); }
.ari-mic.on{ background: #fdeceb; color: #d9342c; animation: ari-breathe 1.2s ease-in-out infinite; }
.ari-send{ background: var(--ari-grad); color: #fff; box-shadow: 0 4px 12px rgba(37,99,235,.3); }
.ari-send svg{ stroke-width: 2.4; }
.ari-send:hover{ transform: translateY(-1px); }
.ari-send.stop{ background: var(--ari-ink); box-shadow: none; }
.ari-hint{ margin: 7px 2px 0; font-size: 10.5px; color: var(--color-text-subtle); text-align: center; }
.ari-hint kbd{ font: 600 9.5px var(--font-body); padding: 1px 5px; border-radius: 4px; border: 1px solid var(--color-border-strong); background: #fafaf8; }

/* ---------- Modales de Ari (capacidades, libreta) ---------- */
.ari-caps h3{ margin-bottom: 4px; }
.ari-caps-sub{ font-size: 13px; color: var(--color-text-muted); margin: 0 0 16px; line-height: 1.5; }
.ari-caps-grid{ display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px 18px; }
.ari-caps-grid b{ font: 700 13px var(--font-display); color: var(--color-primary); }
.ari-caps-grid ul{ margin: 6px 0 0; padding-left: 16px; font-size: 12.5px; line-height: 1.55; color: var(--color-text-secondary); }
.ari-notes{ display: grid; gap: 6px; max-height: 52vh; overflow-y: auto; }
.ari-note-row{ display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--hairline); border-radius: 12px; }
.ari-note-row > div{ flex: 1; min-width: 0; }
.ari-note-row span{ display: block; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.ari-note-row em{ font-style: normal; font-size: 11px; color: var(--color-text-muted); }
.ari-note-row.done span{ text-decoration: line-through; color: var(--color-text-subtle); }
.ari-note-chk{ width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--color-border-strong); background: #fff; cursor: pointer; flex-shrink: 0; margin-top: 1px; display: grid; place-items: center; color: #fff; padding: 0; }
.ari-note-row.done .ari-note-chk{ background: #0f9d68; border-color: #0f9d68; }
.ari-note-chk .ico{ width: 12px; height: 12px; }
.ari-note-del{ border: 0; background: none; cursor: pointer; color: var(--color-text-subtle); padding: 2px; }
.ari-note-del:hover{ color: #d9342c; } .ari-note-del .ico{ width: 14px; height: 14px; }
.ari-notes-empty{ padding: 26px; text-align: center; color: var(--color-text-muted); font-size: 13px; border: 1px dashed var(--color-border-strong); border-radius: 14px; }

/* ---------- Informe: la hoja ---------- */
.ari-sheet-overlay{ position: fixed; inset: 0; z-index: 1500; background: rgba(13,21,38,.55); backdrop-filter: blur(5px); display: flex; flex-direction: column; animation: ari-fade .2s ease both; }
@keyframes ari-fade{ from{ opacity: 0; } to{ opacity: 1; } }
.ari-sheet-bar{ display: flex; align-items: center; gap: 10px; padding: 10px 16px; background: #fff; border-bottom: 1px solid var(--ari-line); }
.ari-sheet-bar b{ font: 700 14px var(--font-display); color: var(--ari-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.ari-sheet-bar .sp{ flex: 1; }
.ari-sheet-scroll{ flex: 1; overflow-y: auto; padding: 28px 16px 60px; }
.ari-sheet{ max-width: 860px; margin: 0 auto; background: #fff; border-radius: 6px; padding: clamp(26px, 5vw, 64px); box-shadow: 0 24px 70px rgba(0,0,0,.28); animation: ari-in .4s var(--ease-out) both; }
.ari-sh-head{ border-bottom: 2px solid var(--ari-ink); padding-bottom: 20px; margin-bottom: 24px; }
.ari-sh-eyebrow{ font: 700 11px/1 var(--font-body); letter-spacing: .16em; text-transform: uppercase; color: var(--ari-accent); }
.ari-sh-head h1{ font: 800 clamp(24px, 3.4vw, 34px)/1.08 var(--font-display); letter-spacing: -.03em; color: var(--ari-ink); margin: 10px 0 8px; }
.ari-sh-meta{ font-size: 12.5px; color: var(--color-text-muted); margin: 0; }
.ari-sh-sum{ background: var(--ari-soft); border-radius: 14px; padding: 16px 18px; margin-bottom: 26px; }
.ari-sh-sum > b{ display: block; font: 700 10.5px/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; color: var(--ari-accent); margin-bottom: 8px; }
.ari-sh-sum .ari-md{ font-size: 14.5px; }
.ari-sh-sec{ margin-bottom: 30px; break-inside: avoid-page; }
.ari-sh-sec h3{ display: flex; align-items: baseline; gap: 10px; font: 700 18px/1.25 var(--font-display); letter-spacing: -.02em; color: var(--ari-ink); margin: 0 0 10px; }
.ari-sh-sec h3 i{ font: 500 12px var(--font-mono); color: var(--color-text-subtle); font-style: normal; }
.ari-sh-sec .ari-md{ font-size: 14px; margin-bottom: 12px; }
.ari-sh-chart{ border: 1px solid var(--ari-line); border-radius: 14px; padding: 12px 6px 6px; margin-bottom: 14px; }
.ari-tbl.doc{ font-size: 13px; } .ari-tbl.doc td{ padding: 9px 12px; }
.ari-sh-rec ol{ margin: 0; padding-left: 20px; font-size: 14px; line-height: 1.6; } .ari-sh-rec li{ margin: 6px 0; }
.ari-sh-foot{ border-top: 1px solid var(--ari-line); padding-top: 14px; font-size: 11.5px; color: var(--color-text-subtle); }

@media print{
  body.ari-printing > *:not(.ari-sheet-overlay){ display: none !important; }
  body.ari-printing{ background: #fff !important; overflow: visible !important; }
  .ari-sheet-overlay{ position: static !important; background: #fff !important; backdrop-filter: none !important; display: block !important; animation: none !important; }
  .ari-sheet-bar{ display: none !important; }
  .ari-sheet-scroll{ overflow: visible !important; padding: 0 !important; }
  .ari-sheet{ box-shadow: none !important; max-width: none !important; padding: 0 !important; border-radius: 0 !important; animation: none !important; }
  .ari-tbl-wrap{ overflow: visible !important; }
  @page{ margin: 16mm 14mm; }
}

/* ---------- Teléfono: hoja completa ---------- */
@media (max-width: 720px){
  .ari-panel{ inset: 0; width: 100% !important; max-width: none; border-radius: 0; border: 0; transform: translateY(100%); }
  .ari-panel.open{ transform: none; }
  .ari-fab{ right: 14px; bottom: 14px; width: 52px; height: 52px; }
  .ari-fab .ari-orb{ --s: 40px; }
  .ari-hbtn[title^="Agrandar"]{ display: none; }
  .ari-hint{ display: none; }
  .ari-foot{ padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .ari-sheet-bar{ flex-wrap: wrap; } .ari-sheet-bar b{ flex-basis: 60%; }
}
@media (prefers-reduced-motion: reduce){
  .ari-orb i, .ari-panel.busy .ari-head .ari-orb, .ari-typing i, .ari-mic.on{ animation: none !important; }
}

/* Con el menú lateral del teléfono abierto, el botón flotante se esconde
   (visibility y no opacity: la animación de entrada deja la opacidad fija). */
body.nav-open .ari-fab, body.ari-open .ari-fab{ visibility: hidden; }
