/* =============================================================================
   obc-chat.css — comanda programului complet, direct în conversația cu Andu (prefixul claselor: obc-).
   Mesajele lui Andu și bulele tale copiază exact stilul chatului A+ (măsurat: text 16/26.4 #CFD1DC,
   bula ta cu gradient 0.24/0.26 și colțuri 22/22/8). Foaia de răspuns ia locul barei de scris, cu același
   material (gradient #131A28 → #0D111A, colțuri de 26px, aceeași umbră).
   ============================================================================= */
.obc-dock, .obc-row, .obc-of, .obc-modal {
  --o-fg: #ecedf3;
  --o-body: #cfd1dc;
  --o-muted: #9b9bac;
  --o-dim: #7d8096;
  --o-bd: rgba(255, 255, 255, 0.08);
  --o-bd2: rgba(255, 255, 255, 0.14);
  --o-acc: 124, 92, 252;
  --o-ok: 1, 219, 105;
  --o-grad: linear-gradient(100deg, #00c2ff 0%, #6a6cff 52%, #b521e9 100%);
  --o-ubg: linear-gradient(135deg, rgba(0, 194, 255, 0.24), rgba(124, 92, 252, 0.26) 55%, rgba(181, 33, 233, 0.24)), #0b0f18;
  --o-emph: cubic-bezier(0.16, 1, 0.3, 1);
  --o-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --o-press: cubic-bezier(0.34, 1.4, 0.64, 1);
}

/* ── firul ── */
.obc-row { display: flex; animation: obcIn 0.38s var(--o-emph) both; }
.obc-a .obc-tx { max-width: 100%; font: 400 16px/26.4px Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing: 0.003em; color: var(--o-body); text-wrap: pretty; }
.obc-a + .obc-a { margin-top: -6px; }
.obc-rich { width: 100%; }
.obc-u { justify-content: flex-end; animation: none; }
.obc-ub {
  max-width: 82%; padding: 12px 16px; border: 0; border-radius: 22px 22px 8px 22px; cursor: pointer; text-align: left;
  background: var(--o-ubg); color: #fff; font: 400 16px/23.2px Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  box-shadow: inset 0 0 0 1px rgba(157, 124, 255, 0.38), 0 12px 28px -16px rgba(124, 92, 252, 0.6);
  overflow-wrap: anywhere; -webkit-tap-highlight-color: transparent;
}
.obc-ub:active { filter: brightness(1.15); }
.obc-typing .obc-tx { display: flex; gap: 5px; padding: 10px 0; }
.obc-typing .obc-tx i { width: 7px; height: 7px; border-radius: 50%; background: #8f90a6; animation: obcDot 1.1s var(--o-ease) infinite; }
.obc-typing .obc-tx i:nth-child(2) { animation-delay: 0.16s; }
.obc-typing .obc-tx i:nth-child(3) { animation-delay: 0.32s; }
.obc-soft .obc-tx { color: var(--o-muted); }
@keyframes obcDot { 0%, 60%, 100% { opacity: 0.35; transform: none; } 30% { opacity: 1; transform: translateY(-3px); } }
@keyframes obcIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* datele deja știute: aceleași jetoane ca chitanța „Instrucțiuni primite" din chat */
.obc-profile { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px; border-radius: 18px; border: 1px dashed rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.02); }
.obc-profile span { padding: 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--o-bd); color: var(--o-muted); font-size: 14px; line-height: 1.2; }
.obc-profile b { color: var(--o-fg); font-weight: 600; }
.obc-legal { padding: 14px 16px; border-radius: 18px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--o-bd); color: var(--o-muted); font-size: 14.5px; line-height: 1.6; }

/* rezumatul */
.obc-sum { border-radius: 22px; overflow: hidden; background: linear-gradient(180deg, #131a28, #0d111a); border: 1px solid rgba(255, 255, 255, 0.07); box-shadow: 0 24px 48px -28px rgba(0, 0, 0, 0.9); }
.obc-sum.old { opacity: 0.55; }
.obc-sum.old [data-obc-edit] { visibility: hidden; }
.obc-sum-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 148px; padding: 18px; background: linear-gradient(180deg, rgba(13, 17, 26, 0.05) 0%, rgba(13, 17, 26, 0.55) 55%, #0f141f 100%), var(--img) center 28% / cover no-repeat; }
.obc-sum-hero .k { font-size: 11.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.82); }
.obc-sum-hero .v { margin-top: 4px; font: 700 26px/1.1 Sora, Inter, sans-serif; letter-spacing: -0.02em; color: #fff; }
.obc-sum-hero .s { margin-top: 4px; font-size: 14.5px; color: #dfe0ea; }
.obc-sum-team { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--o-bd); }
.obc-sum-team img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px rgba(124, 92, 252, 0.6); }
.obc-sum-team span { display: flex; flex-direction: column; font-size: 13.5px; line-height: 1.35; color: #a6f0c6; }
.obc-sum-team b { color: var(--o-fg); font-size: 14.5px; font-weight: 600; }
.obc-sum-rows .r { display: flex; align-items: center; gap: 10px; padding: 12px 18px; }
.obc-sum-rows .r + .r { border-top: 1px solid var(--o-bd); }
.obc-sum-rows .r > div { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.obc-sum-rows span { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--o-dim); }
.obc-sum-rows b { font-size: 14.5px; font-weight: 500; line-height: 1.45; color: var(--o-fg); overflow-wrap: anywhere; }
.obc-sum-rows button { flex: none; padding: 8px 4px 8px 8px; border: 0; background: transparent; color: #cbbcff; font: 600 13.5px Inter, sans-serif; cursor: pointer; }
.obc-sum-price { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px 16px; border-top: 1px solid var(--o-bd); background: rgba(255, 255, 255, 0.02); color: var(--o-muted); font-weight: 600; font-size: 14px; }
.obc-sum-price b { font: 800 26px/1 Sora, Inter, sans-serif; letter-spacing: -0.03em; color: #fff; margin-right: 2px; }
.obc-sum-price .p { display: flex; flex-direction: column; align-items: flex-end; font-weight: 500; font-size: 13px; }
.obc-sum-price .ok { color: #a6f0c6; font-weight: 650; }

/* cardul de reluare: tot cardul e butonul */
.obc-resume-c { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 12px 12px 14px; border-radius: 18px; cursor: pointer; text-align: left; font: inherit; color: inherit; background: linear-gradient(180deg, #131a28, #0d111a); border: 1px solid rgba(124, 92, 252, 0.35); box-shadow: 0 16px 32px -22px rgba(124, 92, 252, 0.9); transition: transform 0.16s var(--o-press); }
.obc-resume-c:active { transform: scale(0.98); }
.obc-resume-c img { flex: none; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px rgba(124, 92, 252, 0.6); }
.obc-resume-c .t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; color: var(--o-muted); line-height: 1.35; }
.obc-resume-c b { color: var(--o-fg); font-size: 15.5px; font-weight: 650; }
.obc-resume-c .go { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--o-grad); box-shadow: 0 8px 18px -8px rgba(106, 108, 255, 0.9); }
.obc-resume-c .go svg { width: 18px; height: 18px; stroke: #fff; stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* ── cât e un program început, sugestiile de început ale chatului nu mai au rost ── */
html.obc-has .up5-chat [data-js="chat-suggestions"] { display: none !important; }

/* ── bara de scris lasă locul foii ── */
html.obc-on .js-search-bar-container { opacity: 0; transform: translateY(24px); pointer-events: none; transition: opacity 0.2s var(--o-ease, ease), transform 0.3s var(--o-ease, ease); }

/* ── foaia de răspuns ── */
.obc-dock {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 61; margin: 0;
  padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, rgba(8, 11, 18, 0) 0%, rgba(8, 11, 18, 0.92) 16px, #080b12 100%);
  /* coboară repede și hotărât, urcă lin; firul urcă odată cu ea, cu aceeași curbă (obc-chat.js → follow) */
  transform: translate3d(0, calc(100% + 24px), 0); transition: transform 0.27s cubic-bezier(0.5, 0, 0.75, 0), bottom 0.12s linear;
  pointer-events: none; will-change: transform;
}
.obc-dock.on { transform: none; pointer-events: auto; transition: transform 0.52s cubic-bezier(0.25, 0.8, 0.25, 1), bottom 0.12s linear; }
html.obx-kb .obc-dock { bottom: var(--kb, 0px); padding-bottom: 10px; }
.obc-card {
  max-width: 44rem; margin: 0 auto; border-radius: 26px; overflow: hidden;
  background: linear-gradient(#131a28, #0d111a);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 -6px 24px -12px rgba(124, 92, 252, 0.45), 0 4px 12px -6px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.obc-dock-h { display: flex; align-items: center; gap: 12px; padding: 12px 18px 2px; }
.obc-dock-t { flex: none; font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #bfb0ff; }
.obc-dock-bar { flex: 1; height: 3px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.obc-dock-bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--o-grad); transition: width 0.6s var(--o-emph); }
.obc-pause { flex: none; border: 0; background: transparent; color: var(--o-dim); font: 600 13px Inter, sans-serif; padding: 6px 0 6px 6px; cursor: pointer; }
.obc-dock-in { position: relative; overflow: hidden; }
.obc-dq { padding: 10px 12px 12px; display: grid; gap: 10px; }

/* butoane */
.obc-btns { display: grid; gap: 8px; }
.obc-btn {
  position: relative; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 20px;
  border: 0; border-radius: 999px; background: var(--o-grad); color: #fff; font: 700 16px/1 Inter, -apple-system, sans-serif; cursor: pointer;
  box-shadow: 0 10px 24px -12px rgba(106, 108, 255, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.22);
  transition: transform 0.16s var(--o-press), opacity 0.2s var(--o-ease);
}
.obc-btn:active { transform: scale(0.97); }
.obc-btn.ghost { background: rgba(255, 255, 255, 0.05); color: var(--o-fg); box-shadow: inset 0 0 0 1px var(--o-bd2); font-weight: 600; }
.obc-btn.busy { pointer-events: none; }
.obc-btn.busy::after { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.4); border-top-color: #fff; animation: obcSpin 0.8s linear infinite; }
@keyframes obcSpin { to { transform: rotate(360deg); } }
.obc-send { flex: none; width: 52px; height: 52px; border: 0; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #7861f3, #c64fcc); cursor: pointer; box-shadow: 0 8px 20px -10px rgba(124, 92, 252, 0.9); transition: transform 0.16s var(--o-press); }
.obc-send:active { transform: scale(0.92); }
.obc-send svg { width: 22px; height: 22px; stroke: #fff; stroke-width: 2.2; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* opțiuni */
.obc-opts { display: flex; flex-wrap: wrap; gap: 8px; max-height: min(46svh, 360px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
.obc-opts::-webkit-scrollbar { display: none; }
.obc-opt {
  position: relative; display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 16px; border-radius: 999px; cursor: pointer; text-align: left;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); color: var(--o-fg); font: 500 15.5px/1.25 Inter, -apple-system, sans-serif;
  transition: transform 0.16s var(--o-press), background 0.2s var(--o-ease), border-color 0.2s var(--o-ease);
}
.obc-opt:active { transform: scale(0.97); }
.obc-opt .ic { flex: none; font-size: 18px; line-height: 1; }
.obc-opt .tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.obc-opt .t { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-weight: 600; }
.obc-opt .t em { font-style: normal; padding: 2px 7px; border-radius: 999px; background: rgba(var(--o-ok), 0.13); color: #a6f0c6; font-size: 10.5px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.obc-opt .t em.sug { background: rgba(var(--o-acc), 0.18); color: #d4c5ff; text-transform: none; letter-spacing: 0; font-size: 11px; }
.obc-opt .d { font-size: 13.5px; font-weight: 400; color: var(--o-muted); line-height: 1.35; }
.obc-opt.sug { border-color: rgba(var(--o-acc), 0.45); }
.obc-opt.on { background: var(--o-ubg); border-color: rgba(157, 124, 255, 0.7); box-shadow: 0 8px 20px -12px rgba(124, 92, 252, 0.9); }
.obc-opts.rich { flex-direction: column; flex-wrap: nowrap; }
.obc-opts.rich .obc-opt { width: 100%; min-height: 60px; padding: 10px 14px; border-radius: 18px; }
.obc-opts.rich .obc-opt .ic { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; background: rgba(255, 255, 255, 0.05); font-size: 18px; }
.obc-opts.grid { display: grid; grid-template-columns: 1fr 1fr; }
.obc-opts.grid .obc-opt { justify-content: center; padding: 0 8px; border-radius: 16px; text-align: center; }
.obc-opts.grid .obc-opt .t { justify-content: center; font-size: 15px; }
.obc-opts.big { display: grid; grid-template-columns: 1fr 1fr; }
.obc-opts.big .obc-opt { flex-direction: column; justify-content: center; min-height: 104px; border-radius: 20px; gap: 8px; }
.obc-opts.big .obc-opt .ic { font-size: 34px; }
.obc-opts.big .obc-opt .t { font-size: 16.5px; }

/* jetoane */
.obc-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.obc-chip {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: 999px; cursor: pointer;
  background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); color: var(--o-body); font: 500 14.5px Inter, -apple-system, sans-serif;
  transition: transform 0.16s var(--o-press), background 0.2s var(--o-ease), border-color 0.2s var(--o-ease), color 0.2s var(--o-ease);
}
.obc-chip:active { transform: scale(0.95); }
.obc-chip.on { background: var(--o-ubg); border-color: rgba(157, 124, 255, 0.7); color: #fff; }
.obc-chip.on::before { content: ""; width: 11px; height: 11px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5 11-11'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12l5 5 11-11'/%3E%3C/svg%3E") center/contain no-repeat; }
.obc-kit .obc-chip .e { font-size: 15px; }
.obc-kit .obc-chip.on::before { display: none; }

/* câmpuri (etichetă plutitoare, ca paginile de cont) */
.obc-fld { position: relative; }
.obc-fld input {
  display: block; width: 100%; min-height: 52px; padding: 20px 16px 6px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.1); outline: none;
  background: rgba(255, 255, 255, 0.04); color: #fff; font: 500 16px/1.3 Inter, -apple-system, sans-serif; -webkit-appearance: none; appearance: none;
  transition: border-color 0.2s var(--o-ease), box-shadow 0.2s var(--o-ease);
}
.obc-fld input::placeholder { color: transparent; }
.obc-fld label { position: absolute; left: 16px; top: 15px; color: var(--o-muted); font-size: 15.5px; pointer-events: none; transform-origin: left top; transition: transform 0.2s var(--o-ease), color 0.2s var(--o-ease); }
.obc-fld input:focus { border-color: rgba(var(--o-acc), 0.75); box-shadow: 0 0 0 4px rgba(var(--o-acc), 0.14); }
.obc-fld input:focus + label, .obc-fld input:not(:placeholder-shown) + label { transform: translateY(-9px) scale(0.76); color: #cbbcff; }
.obc-fld.bad input { border-color: rgba(255, 107, 129, 0.7); animation: obcShake 0.34s var(--o-ease); }
@keyframes obcShake { 0%, 100% { transform: none; } 25% { transform: translateX(-5px); } 50% { transform: translateX(4px); } 75% { transform: translateX(-2px); } }
.obc-field { display: flex; gap: 8px; align-items: center; }
.obc-field .obc-fld { flex: 1; }
.obc-extra input { min-height: 46px; padding-top: 17px; font-size: 15px; }
.obc-extra label { top: 13px; font-size: 14.5px; }
.obc-eye { position: absolute; right: 4px; top: 4px; width: 44px; height: 44px; border: 0; background: transparent; display: grid; place-items: center; cursor: pointer; }
.obc-eye svg { width: 20px; height: 20px; stroke: var(--o-muted); stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.obc-eye .off, .obc-pass.show .obc-eye .on { display: none; }
.obc-pass.show .obc-eye .off { display: block; }
.obc-acc { display: grid; gap: 8px; }
.obc-rules { display: flex; flex-wrap: wrap; gap: 5px; padding: 0 2px; }
.obc-rules span { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; background: rgba(255, 255, 255, 0.04); color: var(--o-dim); font-size: 12px; font-weight: 550; transition: all 0.2s var(--o-ease); }
.obc-rules span::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.obc-rules span.ok { background: rgba(var(--o-ok), 0.1); color: #a6f0c6; }
.obc-rules span.ok::before { opacity: 1; background: #01db69; box-shadow: 0 0 6px rgba(var(--o-ok), 0.9); }
.obc-consent { display: flex; align-items: flex-start; gap: 10px; padding: 3px 2px; font-size: 13.5px; line-height: 1.45; color: var(--o-body); cursor: pointer; }
.obc-consent input { position: absolute; opacity: 0; pointer-events: none; }
.obc-consent .bx { flex: none; width: 20px; height: 20px; margin-top: 1px; border-radius: 6px; border: 1.5px solid var(--o-bd2); display: grid; place-items: center; transition: all 0.2s var(--o-ease); }
.obc-consent .bx svg { width: 12px; height: 12px; stroke: #fff; stroke-width: 3.4; fill: none; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transform: scale(0.4); transition: all 0.22s var(--o-press); }
.obc-consent input:checked + .bx { background: var(--o-grad); border-color: transparent; }
.obc-consent input:checked + .bx svg { opacity: 1; transform: none; }
.obc-consent a { color: #d4c5ff; text-decoration: underline; text-underline-offset: 2px; text-decoration-color: rgba(212, 197, 255, 0.45); }
.obc-consent.bad .bx { border-color: #ff6b81; animation: obcShake 0.34s var(--o-ease); }
.obc-err { margin: 0; padding: 0 4px; font-size: 13.5px; line-height: 1.4; color: #ff9aaa; }
.obc-err:empty { display: none; }
.obc-pay-p { display: none; }
.obc-err a { color: #fff; font-weight: 650; }
.obc-note { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 0; font-size: 12.5px; color: var(--o-dim); }
.obc-note svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; }

/* roata pentru numere */
.obc-wheel { position: relative; width: 10rem; margin: 0 auto; }
.obc-wheel .u { position: absolute; left: calc(100% + 8px); top: 50%; transform: translateY(-50%); font: 600 16px Inter, sans-serif; color: var(--o-muted); }
.obc-dock .obx-wheel { position: relative; height: 150px; --it: 42px; }
.obc-dock .obx-wheel-list { height: 100%; overflow-y: auto; scroll-snap-type: y mandatory; overscroll-behavior: contain; scrollbar-width: none; -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 32%, #000 68%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 32%, #000 68%, transparent 100%); outline: none; }
.obc-dock .obx-wheel-list::-webkit-scrollbar { display: none; }
.obc-dock .obx-wheel-pad { height: calc(50% - var(--it) / 2); }
.obc-dock .obx-wheel-it { height: var(--it); display: grid; place-items: center; scroll-snap-align: center; font: 600 20px/1 Sora, Inter, sans-serif; color: var(--o-dim); font-variant-numeric: tabular-nums; transition: color 0.15s, transform 0.15s; cursor: pointer; }
.obc-dock .obx-wheel-it.near { color: var(--o-muted); transform: scale(0.94); }
.obc-dock .obx-wheel-it.on { color: #fff; font-size: 27px; transform: none; }
.obc-dock .obx-wheel-lens { position: absolute; left: 0; right: 0; top: 50%; height: var(--it); transform: translateY(-50%); pointer-events: none; border-radius: 14px; background: rgba(var(--o-acc), 0.1); border: 1px solid rgba(var(--o-acc), 0.35); }
.obc-live { margin: 0; padding: 10px 12px; border-radius: 14px; background: linear-gradient(135deg, rgba(0, 194, 255, 0.1), rgba(181, 33, 233, 0.1)); border: 1px solid rgba(var(--o-acc), 0.3); font-size: 14px; line-height: 1.45; color: #dfe0ea; text-align: center; }
.obc-live:empty { display: none; }
.obc-live.warn { background: rgba(255, 184, 77, 0.08); border-color: rgba(255, 184, 77, 0.4); color: #ffd79a; }

@media (min-width: 560px) {
  .obc-opts.grid { grid-template-columns: repeat(4, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .obc-row, .obc-dock, .obc-dock-bar i { animation: none !important; transition: none !important; }
}

/* ── BIFELE (29 sept): plin, fără gradient. Bifa albă se desenează dintr-o mișcare, cutia face un mic „pop",
   iar un inel violet se stinge în jur. La debifare, bifa se șterge invers. ── */
.obc-consent .bx { position: relative; width: 22px; height: 22px; border-radius: 7px; border: 1.5px solid rgba(255, 255, 255, 0.24); background: rgba(255, 255, 255, 0.04); transition: background-color 0.18s var(--o-ease), border-color 0.18s var(--o-ease), box-shadow 0.25s var(--o-ease); }
.obc-consent .bx svg { width: 13px; height: 13px; stroke: #fff; stroke-width: 3; opacity: 1; transform: none; transition: none; }
.obc-consent .bx svg path { stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset 0.14s ease-in; }
.obc-consent input:checked + .bx { background: #7c5cfc; border-color: #7c5cfc; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 6px 14px -6px rgba(124, 92, 252, 0.95); animation: obcCkPop 0.42s var(--o-press); }
.obc-consent input:checked + .bx svg path { stroke-dashoffset: 0; transition: stroke-dashoffset 0.3s cubic-bezier(0.65, 0, 0.35, 1) 0.09s; }
.obc-consent .bx::after { content: ""; position: absolute; inset: -2px; border-radius: 9px; pointer-events: none; opacity: 0; }
.obc-consent input:checked + .bx::after { animation: obcCkRing 0.6s var(--o-ease); }
.obc-consent input:focus-visible + .bx { box-shadow: 0 0 0 3px rgba(124, 92, 252, 0.45); }
.obc-chip.on { background: rgba(124, 92, 252, 0.2); border-color: rgba(157, 124, 255, 0.75); color: #fff; box-shadow: 0 6px 16px -10px rgba(124, 92, 252, 0.9); animation: obcChipPop 0.34s var(--o-press); }
.obc-chip.on::before { animation: obcCkIn 0.3s var(--o-press) 0.04s both; }
@keyframes obcCkPop { 0% { transform: scale(1); } 30% { transform: scale(0.82); } 62% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes obcCkRing { 0% { opacity: 1; box-shadow: 0 0 0 0 rgba(124, 92, 252, 0.6); } 100% { opacity: 0; box-shadow: 0 0 0 10px rgba(124, 92, 252, 0); } }
@keyframes obcCkIn { from { transform: scale(0); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes obcChipPop { 0% { transform: scale(1); } 40% { transform: scale(0.94); } 100% { transform: scale(1); } }
.obc-nw { white-space: nowrap; }
/* disclaimerul medical: acord separat, obligatoriu */
.obc-legal b { display: block; margin-bottom: 6px; color: var(--o-fg); font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.obc-med { padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--o-bd); color: var(--o-fg); font-size: 14.5px; }
.obc-med.bad { border-color: rgba(255, 107, 129, 0.6); }
.obc-btn.off { opacity: 0.4; box-shadow: none; filter: saturate(0.6); }
/* cardul compact al ofertei (după o reîncărcare, sub planul exemplu) */
.obc-offer-c { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 14px; border-radius: 20px; background: linear-gradient(160deg, rgba(124, 92, 252, 0.16), rgba(13, 17, 26, 0.9) 60%), #0d111a; border: 1px solid rgba(124, 92, 252, 0.35); }
.obc-offer-c img { flex: none; width: 40px; height: 40px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px rgba(124, 92, 252, 0.6); }
.obc-offer-c .t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; font-size: 13.5px; line-height: 1.4; color: var(--o-muted); }
.obc-offer-c .t b { color: var(--o-fg); font-size: 15.5px; font-weight: 650; }
.obc-offer-c .pr { flex-basis: 100%; margin: -4px 0 0; text-align: center; font-size: 12.5px; color: var(--o-dim); }
.obc-offer-c .go { flex: 1 1 100%; height: 48px; padding: 0 18px; border: 0; border-radius: 999px; background: var(--o-grad); color: #fff; font: 700 15px Inter, sans-serif; cursor: pointer; box-shadow: 0 8px 18px -8px rgba(106, 108, 255, 0.9); }
.obc-offer-c .ch { flex-basis: 100%; display: flex; gap: 8px; }
.obc-offer-c .ch button { flex: 1; height: 42px; border-radius: 999px; border: 1px solid rgba(157, 124, 255, 0.5); background: rgba(124, 92, 252, 0.14); color: #fff; font: 600 14px Inter, sans-serif; cursor: pointer; }

/* ══ 29 sept, a doua trecere: oferta, începutul, mișcarea, disclaimerul, modificarea pe loc ══ */

/* motorul își păstrează cardul (ascuns); în locul lui stă oferta compactă */
.obc-gone { display: none !important; }

/* planul din chat, etichetat de la prima privire */
.obc-inst { align-self: flex-start; display: inline-flex; align-items: center; gap: 5px; margin-bottom: 2px; padding: 3px 9px 3px 7px; border-radius: 999px; background: rgba(0, 194, 255, 0.1); border: 1px solid rgba(0, 194, 255, 0.28); color: #9fe6ff; font: 700 10.5px/1.3 Inter, -apple-system, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; }
.obc-inst::before { content: ""; width: 9px; height: 11px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 22'%3E%3Cpath d='M11 0 0 13h7l-2 9L18 8h-7z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 22'%3E%3Cpath d='M11 0 0 13h7l-2 9L18 8h-7z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* oferta: aceeași familie vizuală ca rezumatul de la final */
.obc-of { --img: none; width: 100%; box-sizing: border-box; margin-top: 12px; border-radius: 22px; overflow: hidden; background: linear-gradient(180deg, #131a28, #0d111a); border: 1px solid rgba(157, 124, 255, 0.28); box-shadow: 0 24px 48px -30px rgba(124, 92, 252, 0.8); }
.acx-conversie .obc-of { animation: obcOfIn 0.6s var(--o-emph) 0.12s both; }
.obc-offer .obc-of { margin-top: 10px; }
@keyframes obcOfIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.obc-of-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 3px; min-height: 136px; padding: 16px 18px 14px; background: linear-gradient(180deg, rgba(13, 17, 26, 0.05) 0%, rgba(13, 17, 26, 0.6) 55%, #111723 100%), var(--img) center 30% / cover no-repeat, linear-gradient(135deg, #2a2466, #121828 70%); transition: min-height 0.3s var(--o-ease); }
.obc-of.wait .obc-of-hero { min-height: 100px; }
.obc-of-hero .k { font-size: 11.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }
.obc-of-hero b { font: 700 22px/1.15 Sora, Inter, sans-serif; letter-spacing: -0.02em; color: #fff; }
.obc-of-hero .s { font-size: 13.5px; font-weight: 550; color: #a6f0c6; }
.obc-of-goals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 14px 16px 2px; }
.obc-of-goals button { min-height: 42px; padding: 0 6px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.04); color: var(--o-fg); font: 600 13.5px Inter, -apple-system, sans-serif; cursor: pointer; transition: transform 0.16s var(--o-press), background 0.2s var(--o-ease), border-color 0.2s var(--o-ease); }
.obc-of-goals button:active { transform: scale(0.96); }
.obc-of-goals button.on { background: rgba(124, 92, 252, 0.22); border-color: rgba(157, 124, 255, 0.8); color: #fff; }
.obc-of-goals.bad { animation: obcShake 0.34s var(--o-ease); }
.obc-of-l { list-style: none; margin: 0; padding: 14px 18px 2px; display: grid; gap: 9px; }
.obc-of-l li { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.4; color: var(--o-body); }
.obc-of-l svg { flex: none; width: 20px; height: 20px; margin-top: 1px; padding: 3.5px; border-radius: 50%; background: rgba(1, 219, 105, 0.14); stroke: #01db69; stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.obc-of-p { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 18px 0; color: var(--o-muted); font-size: 14px; font-weight: 600; }
.obc-of-p b { font: 800 24px/1 Sora, Inter, sans-serif; letter-spacing: -0.03em; color: #fff; margin-right: 2px; }
.obc-of-p .ok { color: #a6f0c6; font-weight: 650; font-size: 13.5px; }
.obc-of-go { display: flex; align-items: center; justify-content: center; width: calc(100% - 32px); min-height: 52px; margin: 14px 16px 16px; border: 0; border-radius: 999px; background: var(--o-grad); color: #fff; font: 700 16px/1 Inter, -apple-system, sans-serif; cursor: pointer; box-shadow: 0 10px 24px -12px rgba(106, 108, 255, 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.22); transition: background 0.2s var(--o-ease), color 0.2s var(--o-ease); }
.obc-of.wait .obc-of-go { background: rgba(255, 255, 255, 0.06); color: var(--o-muted); box-shadow: inset 0 0 0 1px var(--o-bd2); }

/* datele știute: jetoanele + „Modifică" */
.obc-pc { display: grid; gap: 8px; padding: 14px 14px 8px; border-radius: 18px; border: 1px dashed rgba(255, 255, 255, 0.12); background: rgba(255, 255, 255, 0.02); }
.obc-pc .obc-profile { padding: 0; border: 0; background: none; border-radius: 0; }
.obc-pc-ed { justify-self: start; padding: 6px 2px; border: 0; background: transparent; color: #cbbcff; font: 600 14px Inter, -apple-system, sans-serif; cursor: pointer; }

/* rezumatul: „Modifică" și pe obiectiv; rândul schimbat se luminează o clipă */
.obc-hed { position: absolute; top: 12px; right: 12px; padding: 7px 12px; border: 0; border-radius: 999px; background: rgba(8, 11, 18, 0.55); color: #fff; font: 600 13px Inter, -apple-system, sans-serif; cursor: pointer; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.obc-sum.old .obc-hed { visibility: hidden; }
.obc-sum-rows .r.upd { animation: obcUpd 1.8s var(--o-ease); }
.obc-sum-hero.upd { animation: obcUpdH 1.8s var(--o-ease); }
@keyframes obcUpd { 0%, 35% { background-color: rgba(124, 92, 252, 0.16); } 100% { background-color: rgba(124, 92, 252, 0); } }
@keyframes obcUpdH { 0%, 35% { box-shadow: inset 0 0 0 2px rgba(157, 124, 255, 0.85); } 100% { box-shadow: inset 0 0 0 2px rgba(157, 124, 255, 0); } }

/* foaia de modificare */
.obc-dock.ed .obc-dock-bar { visibility: hidden; }
.obc-ed-b { display: grid; gap: 18px; max-height: min(54svh, 470px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; padding: 4px 2px 6px; margin: 0 -2px; }
.obc-ed-b::-webkit-scrollbar { display: none; }
.obc-ed-b { -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 22px), transparent); mask-image: linear-gradient(180deg, #000 calc(100% - 22px), transparent); padding-bottom: 18px; }
.obc-ed-s { display: grid; gap: 9px; }
.obc-ed-l { font-size: 11.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--o-dim); padding: 0 2px; }
.obc-ed-t { display: grid; gap: 10px; }
.obc-ed-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.obc-mw { display: grid; gap: 4px; justify-items: stretch; padding: 10px 4px 4px; border-radius: 16px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--o-bd); text-align: center; }
.obc-mw .obc-ed-l { letter-spacing: 0.04em; font-size: 10.5px; }
.obc-dock .obc-mw .obx-wheel { height: 126px; --it: 36px; }
.obc-dock .obc-mw .obx-wheel-it { font-size: 16px; }
.obc-dock .obc-mw .obx-wheel-it.on { font-size: 22px; }
.obc-multi { display: grid; gap: 8px; }
.obc-radio .obc-chip.on::before { display: none; }
.obc-chip .e { font-size: 15px; line-height: 1; }

/* disclaimerul: un „fișier" în conversație, care deschide textul complet */
.obc-p { margin: 0 0 10px; }
.obc-doc { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 12px 12px 12px; border-radius: 16px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); color: inherit; font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; transition: transform 0.16s var(--o-press), background 0.2s var(--o-ease), border-color 0.2s var(--o-ease); }
.obc-doc:active { transform: scale(0.98); background: rgba(255, 255, 255, 0.06); border-color: rgba(157, 124, 255, 0.4); }
.obc-doc-ic { flex: none; width: 40px; height: 46px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(160deg, rgba(124, 92, 252, 0.3), rgba(124, 92, 252, 0.08)); box-shadow: inset 0 0 0 1px rgba(157, 124, 255, 0.35); }
.obc-doc-ic svg { width: 22px; height: 22px; stroke: #d4c5ff; stroke-width: 1.7; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.obc-doc .t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; line-height: 1.35; color: var(--o-muted); }
.obc-doc .t b { color: var(--o-fg); font-size: 15px; font-weight: 650; }
.obc-doc .go { flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, 0.06); }
.obc-doc .go svg { width: 15px; height: 15px; stroke: #cbbcff; stroke-width: 2.2; fill: none; stroke-linecap: round; stroke-linejoin: round; }

/* fereastra cu textul complet */
html.obc-lock, html.obc-lock body { overflow: hidden; }
.obc-modal { position: fixed; inset: 0; z-index: 90; display: flex; align-items: flex-end; justify-content: center; }
.obc-modal-bg { position: absolute; inset: 0; background: rgba(4, 6, 10, 0.62); opacity: 0; transition: opacity 0.3s var(--o-ease); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.obc-modal.on .obc-modal-bg { opacity: 1; }
.obc-modal-p { position: relative; display: flex; flex-direction: column; width: 100%; max-width: 44rem; max-height: 90svh; padding-bottom: env(safe-area-inset-bottom, 0px); border-radius: 26px 26px 0 0; background: linear-gradient(#131a28, #0d111a); box-shadow: 0 -20px 60px -20px rgba(0, 0, 0, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.08); transform: translate3d(0, 100%, 0); transition: transform 0.32s cubic-bezier(0.5, 0, 0.75, 0); }
.obc-modal.on .obc-modal-p { transform: none; transition: transform 0.56s cubic-bezier(0.16, 1, 0.3, 1); }
.obc-grab { flex: none; width: 40px; height: 5px; margin: 10px auto 2px; border-radius: 999px; background: rgba(255, 255, 255, 0.18); }
.obc-modal-h { flex: none; display: flex; align-items: center; gap: 12px; padding: 10px 14px 14px 18px; border-bottom: 1px solid var(--o-bd); }
.obc-modal-h .t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--o-muted); }
.obc-modal-h .t b { font: 700 18px/1.2 Sora, Inter, sans-serif; letter-spacing: -0.01em; color: #fff; }
.obc-x { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.06); cursor: pointer; }
.obc-x svg { width: 18px; height: 18px; stroke: var(--o-fg); stroke-width: 2.2; fill: none; stroke-linecap: round; }
.obc-modal-b { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 16px 20px 22px; color: var(--o-body); font: 400 15.5px/1.65 Inter, -apple-system, sans-serif; text-wrap: pretty; }
.obc-modal-b h4 { margin: 20px 0 6px; font: 650 15.5px/1.3 Inter, -apple-system, sans-serif; color: #fff; }
.obc-modal-b p { margin: 0 0 10px; }
.obc-modal-b ul { margin: 0 0 10px; padding-left: 20px; }
.obc-modal-b li { margin: 4px 0; }
.obc-md-note { padding: 10px 12px; border-radius: 12px; background: rgba(255, 184, 77, 0.08); border: 1px solid rgba(255, 184, 77, 0.3); color: #ffd79a; font-size: 13.5px; line-height: 1.45; }
.obc-modal-f { flex: none; display: grid; gap: 8px; padding: 12px 16px 14px; border-top: 1px solid var(--o-bd); }

/* formularul planului exemplu: obiectivul deja spus nu se mai cere */
.up5-chat .event-user-form .nt-mini-preluat:has(.obc-goal-ch) { display: block; text-align: left; }
.up5-chat .event-user-form .nt-mini-preluat .obc-goal-ch { display: inline; margin-left: 2px; padding: 0; border: 0; background: none; color: #cbbcff; font-family: inherit; font-size: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; text-decoration-color: rgba(203, 188, 255, 0.45); cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
  .obc-modal-p, .obc-modal-bg, .obc-of, .obc-of-hero { transition: none !important; animation: none !important; }
}

/* după plată, în chat: stadiul programului (în locul ofertei) */
.obc-done-c { --img: none; display: flex; flex-direction: column; gap: 3px; padding: 16px 18px; min-height: 120px; justify-content: flex-end; border-radius: 22px; overflow: hidden; border: 1px solid rgba(1, 219, 105, 0.28); background: linear-gradient(90deg, #0f1420 0%, #0f1420 57%, rgba(15, 20, 32, 0.6) 76%, rgba(15, 20, 32, 0.12) 100%), var(--img) right center / 46% auto no-repeat, #0f1420; box-shadow: 0 24px 48px -30px rgba(1, 219, 105, 0.45); }
.obc-done-c .k { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; background: rgba(1, 219, 105, 0.12); color: #a6f0c6; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.obc-done-c .k::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #01db69; box-shadow: 0 0 0 0 rgba(1, 219, 105, 0.6); animation: obcPulse 1.8s ease-out infinite; }
@keyframes obcPulse { 0% { box-shadow: 0 0 0 0 rgba(1, 219, 105, 0.55); } 100% { box-shadow: 0 0 0 8px rgba(1, 219, 105, 0); } }
.obc-done-c b { margin-top: 4px; font: 700 20px/1.2 Sora, Inter, sans-serif; letter-spacing: -0.02em; color: #fff; }
.obc-done-c .s { font-size: 14.5px; font-weight: 600; color: #dfe0ea; }
.obc-done-c .n { margin-top: 6px; max-width: 70%; font-size: 13.5px; line-height: 1.45; color: var(--o-muted, #9b9bac); }

/* ══ DESKTOP (29–30 sept): aceeași experiență, gândită pentru ecran lat, mouse și tastatură ══ */

/* mouse: fiecare element pe care îl poți apăsa răspunde la trecerea cursorului */
@media (hover: hover) and (pointer: fine) {
  .obc-opt:hover { background: rgba(255, 255, 255, 0.07); border-color: rgba(157, 124, 255, 0.45); }
  .obc-opt.on:hover { background: var(--o-ubg); }
  .obc-chip:hover { border-color: rgba(157, 124, 255, 0.5); color: #fff; }
  .obc-btn:hover { filter: brightness(1.08); }
  .obc-btn.ghost:hover { background: rgba(255, 255, 255, 0.08); filter: none; }
  .obc-btn.off:hover { filter: saturate(0.6); }
  .obc-send:hover { filter: brightness(1.1); }
  .obc-of-go:hover { filter: brightness(1.08); }
  .obc-of-goals button:hover { border-color: rgba(157, 124, 255, 0.55); }
  .obc-doc:hover { background: rgba(255, 255, 255, 0.06); border-color: rgba(157, 124, 255, 0.4); }
  .obc-doc:hover .go { background: rgba(124, 92, 252, 0.25); }
  .obc-resume-c:hover { border-color: rgba(157, 124, 255, 0.6); }
  .obc-ub[aria-label]:hover { filter: brightness(1.12); }
  .obc-sum-rows button:hover, .obc-pc-ed:hover, .obc-pause:hover { color: #fff; }
  .obc-hed:hover { background: rgba(8, 11, 18, 0.75); }
  .obc-x:hover { background: rgba(255, 255, 255, 0.12); }
  .obc-dock .obx-wheel-it:hover { color: var(--o-body); }
}
/* tastatura: focus vizibil, doar când navighezi cu tastatura */
.obc-dock :focus-visible, .obc-row :focus-visible, .obc-of :focus-visible, .obc-modal :focus-visible { outline: 2px solid rgba(157, 124, 255, 0.9); outline-offset: 2px; }
.obc-dock .obx-wheel-list:focus-visible { outline: none; }
.obc-dock .obx-wheel-list:focus-visible ~ .obx-wheel-lens, .obc-dock .obx-wheel:focus-within .obx-wheel-lens { border-color: rgba(157, 124, 255, 0.8); box-shadow: 0 0 0 3px rgba(124, 92, 252, 0.18); }

/* titlurile variantelor se rup echilibrat („Micul dejun proaspăt, / restul dinainte"), nu cu un cuvânt singur */
.obc-opt .t, .obc-opt .d { text-wrap: balance; }
@media (min-width: 720px) {
  /* aceeași tipografie ca răspunsurile lui Andu pe desktop (chat-v8: 17px/1.7, bula ta 17px/1.5, 13×18px) */
  .obc-a .obc-tx { font-size: 17px; line-height: 28.9px; }
  .obc-a + .obc-a { margin-top: -2px; }
  .obc-ub { max-width: 78%; padding: 13px 18px; font-size: 17px; line-height: 25.5px; }
  /* foaia stă exact pe coloana conversației, unde stă și bara de scris a chatului */
  .obc-dock { padding: 18px 0 calc(24px + env(safe-area-inset-bottom, 0px)); }
  .obc-card { max-width: none; width: var(--obc-w, 42.5rem); margin: 0 0 0 var(--obc-x, auto); }
  .obc-dock-h { padding: 14px 20px 4px; }
  .obc-dq { padding: 12px 16px 16px; }
  /* variantele cu descriere, două pe rând: foaia rămâne joasă, conversația rămâne la vedere */
  .obc-opts.rich { display: grid; grid-template-columns: 1fr 1fr; max-height: none; }
  .obc-opts.rich .obc-opt { min-height: 64px; }
  .obc-opts.big .obc-opt { min-height: 88px; }
  .obc-btns { grid-auto-flow: column; grid-auto-columns: 1fr; }
  .obc-med + .obc-btns { grid-template-columns: 2fr 1fr; grid-auto-flow: row; }
  .obc-live { font-size: 14.5px; }

  /* imaginile obiectivului, pe card lat: siluetele întregi, în dreapta, textul pe fond curat în stânga */
  .obc-of-hero { min-height: 164px; padding: 20px 22px 18px; background: linear-gradient(90deg, #111723 0%, #111723 46%, rgba(17, 23, 35, 0.55) 70%, rgba(17, 23, 35, 0.08) 100%), var(--img) right 0 top 26% / 46% auto no-repeat, linear-gradient(135deg, #2a2466, #121828 70%); }
  .obc-of.wait .obc-of-hero { min-height: 118px; }
  .obc-of-hero b { font-size: 24px; }
  .obc-of-l { padding: 18px 22px 4px; gap: 10px; }
  .obc-of-p { padding: 16px 22px 0; }
  .obc-of-go { width: calc(100% - 44px); margin: 16px 22px 20px; }
  .obc-of-goals { padding: 16px 22px 2px; }
  .obc-sum-hero { min-height: 168px; padding: 20px 22px; background: linear-gradient(90deg, #0f141f 0%, #0f141f 44%, rgba(15, 20, 31, 0.5) 70%, rgba(15, 20, 31, 0.06) 100%), var(--img) right 0 top 26% / 46% auto no-repeat, #0f141f; }
  .obc-sum-hero .v { font-size: 30px; }
  .obc-sum-team, .obc-sum-rows .r, .obc-sum-price { padding-left: 22px; padding-right: 22px; }
  /* rândurile rezumatului ca pe un bon: eticheta în stânga, valoarea lângă ea, „Modifică" la capăt — pe ecran lat
     ocupă jumătate din înălțime, deci tot rezumatul (cu bara de plată) încape și pe laptopurile de 768px */
  .obc-sum-rows .r { align-items: baseline; padding-top: 12px; padding-bottom: 12px; }
  .obc-sum-rows .r > div { flex-direction: row; align-items: baseline; gap: 16px; }
  .obc-sum-rows .r > div > span { flex: none; width: 104px; }
  .obc-sum-rows .r > div > b { flex: 1; min-width: 0; }
  .obc-sum-rows button { padding-top: 0; padding-bottom: 0; }
  .obc-sum-hero { min-height: 140px; }
  /* plata: bară de checkout (prețul în stânga, butonul în dreapta), mai joasă, ca rezumatul întreg să rămână la vedere */
  .obc-pay { grid-template-columns: 1fr minmax(15rem, 45%); align-items: center; column-gap: 16px; row-gap: 8px; }
  .obc-pay .obc-pay-p { display: flex; flex-direction: column; gap: 2px; padding-left: 6px; color: var(--o-muted); font-size: 14px; font-weight: 600; }
  .obc-pay .obc-pay-p b { font: 800 24px/1 Sora, Inter, sans-serif; letter-spacing: -0.03em; color: #fff; margin-right: 2px; }
  .obc-pay .obc-pay-p .sec { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--o-dim); font-size: 12.5px; font-weight: 500; }
  .obc-pay .obc-pay-p .sec svg { width: 13px; height: 13px; stroke: currentColor; stroke-width: 2; fill: none; }
  .obc-pay .obc-note { display: none; }
  .obc-pay .obc-err { grid-column: 1 / -1; }
  /* prețul e chiar în bara de plată: în card nu se mai repetă */
  .obc-sum-price { display: none; }

  /* disclaimerul complet: fereastră centrată, cu lățime de citit (~70 de caractere pe rând) */
  .obc-modal { align-items: center; padding: 32px; }
  .obc-modal-p { max-width: 38rem; max-height: min(82vh, 780px); padding-bottom: 0; border-radius: 24px; opacity: 0; transform: translate3d(0, 18px, 0) scale(0.985); transition: transform 0.22s cubic-bezier(0.5, 0, 0.75, 0), opacity 0.18s ease-in; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 0 0 1px rgba(255, 255, 255, 0.06); }
  .obc-modal.on .obc-modal-p { opacity: 1; transform: none; transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease-out; }
  .obc-grab { display: none; }
  .obc-modal-h { padding: 18px 16px 16px 22px; }
  .obc-modal-b { padding: 18px 26px 24px; font-size: 15.5px; }
  .obc-modal-f { grid-auto-flow: column; justify-content: end; gap: 10px; padding: 14px 18px; }
  .obc-modal-f .obc-btn { min-height: 46px; padding: 0 22px; font-size: 15px; }
  .obc-modal-f [data-a="x"] { order: -1; }
}

/* cât rulează programul (și după ce contul e făcut în conversație), cardul „Cu un cont gratuit · Creează cont" din bara
   laterală ar fi o a doua acțiune, concurentă: se retrage lin și revine când pui pauză */
.acx-guest { transition: opacity 0.3s var(--o-ease, ease), transform 0.4s var(--o-emph, ease), visibility 0s linear 0s; }
html.obc-on .acx-guest, html.obc-acct .acx-guest { opacity: 0; transform: translateY(12px); visibility: hidden; pointer-events: none; transition: opacity 0.25s ease, transform 0.3s ease, visibility 0s linear 0.3s; }
/* laptopuri scunde (768px și mai puțin): același rezumat, mai strâns, ca să încapă întreg deasupra barei de plată */
@media (min-width: 720px) and (max-height: 820px) {
  .obc-dock { padding-top: 12px; padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
  .obc-sum-hero { min-height: 104px; padding-top: 14px; padding-bottom: 14px; }
  .obc-sum-hero .v { font-size: 26px; }
  .obc-sum-team { padding-top: 9px; padding-bottom: 9px; }
  .obc-sum-team img { width: 30px; height: 30px; }
  .obc-sum-rows .r { padding-top: 10px; padding-bottom: 10px; }
  .obc-ed-b { max-height: min(48svh, 400px); }
}
@media (min-width: 720px) and (max-height: 740px) {
  .obc-sum-hero { min-height: 92px; }
  .obc-sum-rows .r { padding-top: 8px; padding-bottom: 8px; }
}

/* ══ Patch 2 5-10-26 · coperta obiectivului: un pătrat întreg, în dreapta ══
   Imaginile obiectivului (obiectiv-*.jpg) sunt pătrate de 360×360, cu siluetele până la tălpi, aproape de marginea de jos.
   Înainte erau fundal întins pe tot capul cardului (pe telefon: capetele tăiate sus, sub text) sau pe 46% din lățime
   (pe desktop: tăiate în talie, cu marginea imaginii în colțul cardului). Acum: o copertă PĂTRATĂ, cu colțuri rotunjite,
   desenată ca ::after (markupul rămâne al lui obc-chat.js); pătrat în pătrat, `cover` arată tot cadrul, fără nimic tăiat.
   Textul stă în stânga, pe fond curat. Fără obiectiv ales (oferta cu alegere, `.wait`): nicio copertă, textul pe toată
   lățimea. Aceeași copertă pe rezumat și pe cardul „În lucru" / „Se confirmă plata". --cv = latura copertei. */
.obc-of, .obc-sum, .obc-done-c { --cv: 96px; --cv-r: 16px; --cv-in: 16px; --cv-gap: 14px; }
.obc-of-hero, .obc-sum-hero, .obc-done-c { position: relative; z-index: 0; isolation: isolate; justify-content: center; min-height: calc(var(--cv) + 2 * var(--cv-in)); padding-right: calc(var(--cv-in) + var(--cv) + var(--cv-gap)); }
.obc-of-hero { background: radial-gradient(70% 130% at 100% 50%, rgba(124, 92, 252, 0.16), rgba(124, 92, 252, 0) 72%); border-bottom: 1px solid var(--o-bd); }
.obc-sum-hero { background: radial-gradient(70% 130% at 100% 50%, rgba(124, 92, 252, 0.14), rgba(124, 92, 252, 0) 72%), #0f141f; border-bottom: 1px solid var(--o-bd); }
.obc-done-c { background: radial-gradient(70% 130% at 100% 50%, rgba(1, 219, 105, 0.1), rgba(1, 219, 105, 0) 72%), #0f1420; }
/* coperta + o lumină difuză din ea, în spate (aceleași culori ca imaginea) */
.obc-of-hero::after, .obc-sum-hero::after, .obc-done-c::after,
.obc-of-hero::before, .obc-sum-hero::before, .obc-done-c::before {
  content: ""; position: absolute; top: 50%; right: var(--cv-in); width: var(--cv); height: var(--cv); margin-top: calc(var(--cv) / -2);
  border-radius: var(--cv-r); pointer-events: none;
}
.obc-of-hero::after, .obc-sum-hero::after, .obc-done-c::after {
  background: var(--img) center / cover no-repeat, linear-gradient(135deg, #2a2466, #121828 70%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12), 0 16px 32px -18px rgba(0, 0, 0, 0.95);
}
.obc-of-hero::before, .obc-sum-hero::before, .obc-done-c::before { z-index: -1; background: var(--img) center / cover no-repeat; filter: blur(26px) saturate(1.2); opacity: 0.32; transform: scale(0.9); }
.obc-of-hero b, .obc-of-hero .s, .obc-sum-hero .v, .obc-sum-hero .s, .obc-done-c b, .obc-done-c .n { text-wrap: balance; }
/* rupte pe două rânduri lângă copertă, subtitlurile își iau rândul lor (nu cel moștenit, de 26px, al textului din fir) */
.obc-of-hero .s, .obc-sum-hero .s { line-height: 1.4; }
.obc-done-c .n { max-width: none; }
/* „Modifică" (ținta) nu mai stă peste imagine: rândul lui, sub text, în coloana din stânga */
.obc-sum-hero .obc-hed { position: static; order: 9; align-self: flex-start; margin-top: 10px; padding: 6px 12px; background: rgba(255, 255, 255, 0.07); box-shadow: inset 0 0 0 1px var(--o-bd2); }
/* fără obiectiv: fără copertă, textul pe toată lățimea */
.obc-of.wait .obc-of-hero { min-height: 0; padding-right: 18px; }
.obc-of.wait .obc-of-hero::after, .obc-of.wait .obc-of-hero::before { display: none; }
/* obiectivul ales chiar acum (sau cardul abia intrat): coperta apare cu o mică ridicare */
.obc-of:not(.wait) .obc-of-hero::after { animation: obcCvIn 0.5s var(--o-emph) 0.18s both; }
@keyframes obcCvIn { from { opacity: 0; transform: translateY(6px) scale(0.94); } to { opacity: 1; transform: none; } }
@media (min-width: 720px) {
  .obc-of, .obc-sum, .obc-done-c { --cv: 132px; --cv-r: 20px; --cv-in: 20px; --cv-gap: 22px; }
  .obc-of.wait .obc-of-hero { padding-right: 22px; }
  /* pe ecran lat, „Modifică" stă sus, la capătul coloanei de text, lângă copertă: capul rezumatului rămâne cât coperta */
  .obc-sum-hero .obc-hed { position: absolute; top: var(--cv-in); right: calc(var(--cv-in) + var(--cv) + 12px); margin: 0; }
}
/* laptopuri scunde: coperta mai mică, ca oferta / rezumatul să încapă întregi deasupra barei */
@media (min-width: 720px) and (max-height: 820px) {
  .obc-of, .obc-sum, .obc-done-c { --cv: 112px; --cv-in: 16px; --cv-r: 18px; }
  /* rezumatul are cinci rânduri și bara de plată sub el: coperta lui e mai mică, capul rămâne cât era (~104px;
     min-height-ul îl ia din regula comună de mai sus, care vine după cele de bază) */
  .obc-sum { --cv: 88px; --cv-in: 14px; --cv-r: 16px; }
}
@media (min-width: 720px) and (max-height: 740px) {
  .obc-of, .obc-sum, .obc-done-c { --cv: 100px; --cv-in: 14px; --cv-r: 16px; }
  .obc-sum { --cv: 76px; --cv-in: 12px; --cv-r: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .obc-of-hero::after { animation: none !important; }
}
