/* The "i" tooltip (.info-tip), moved verbatim out of layout.css (10/27) so admin.html can load it too:
   admin never loaded layout.css, so every tip on the Master Backtester printed its text inline. index.html
   loads this BEFORE layout.css, so layout.css's later rules (mobile max-width, .pa-gate) still win as before. */
.info-tip { position:relative;display:inline-flex;align-items:center;cursor:help;margin-left:4px;vertical-align:middle; }
.info-tip .tip-icon { position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--border);color:var(--muted);font-size:12px;font-weight:600;font-style:normal;line-height:1;transition:background .2s,color .2s; }
.info-tip:hover .tip-icon { background:var(--ds-text);color: var(--ds-on-primary); }
.info-tip .tip-icon::before { content:'';position:absolute;left:50%;top:50%;width:max(100%, 44px);height:max(100%, 44px);transform:translate(-50%,-50%); }
/* Hidden bubbles are display:none, not visibility:hidden — a hidden bubble still
   occupied layout, and a .tip-right near the pane edge made the Backtester scroll
   sideways at 768px. The fade-in is a keyframe (display can't transition). */
.info-tip .tip-text { display:none;visibility:hidden;opacity:0;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:300px;padding:10px 12px;background:var(--ds-text);color:var(--ds-on-primary);font-size:12px;font-weight:400;line-height:1.5;border-radius:8px;box-shadow:var(--ds-shadow-md);z-index:9999;pointer-events:none;transition:opacity .2s,visibility .2s;white-space:normal;text-transform:none;letter-spacing:normal; }
.info-tip .tip-text::after { content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ds-text); }
.info-tip:hover .tip-text,.info-tip:focus .tip-text,.info-tip.show .tip-text { display:block;visibility:visible;opacity:1;animation:tip-in .2s ease; }
@keyframes tip-in { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .info-tip .tip-text { animation:none !important; } }
.info-tip .tip-text.tip-right { left:0;transform:none; }
.info-tip .tip-text.tip-right::after { left:12px;transform:none; }
.info-tip .tip-text.tip-left { left:auto;right:0;transform:none;width:250px;max-width:250px; }
.info-tip .tip-text.tip-left::after { left:auto;right:12px;transform:none; }
.info-tip .tip-text.tip-below { bottom:auto;top:calc(100% + 8px);left:50%;transform:translateX(-50%);max-width:220px;white-space:normal; }
.info-tip .tip-text.tip-below::after { top:auto;bottom:100%;left:50%;transform:translateX(-50%);border-top-color:transparent;border-bottom-color:var(--ds-text); }
