/* ========================================
   TooltipService Styles
   DOM-based tooltips with accessibility support
   All colors via CSS variables from themes.css
   ======================================== */

.tooltip-service {
    position: absolute;
    /* [2026-08-15] Якорь в (0,0) обязателен, пока тултип скрыт.
       Без него абсолютный блок без координат встаёт в ПОТОК в конце <body> и
       удлиняет документ на свою высоту (замер: 742 px при экране 720). На
       обычных страницах это незаметно, а на странице таблицы, которая занимает
       ровно экран, корень становился прокручиваемым: `scrollIntoView` при
       переходе к дальней ячейке уводил страницу на 22 px, и шапка уезжала под
       верхний край. Координаты при показе всё равно проставляются явно
       (`TooltipService.js` — style.top/left), поэтому значения по умолчанию
       ничего не ломают.
       Ref: сообщение PO «почему заголовок уезжает под верхний край и
       обрезается?» 2026-08-15. Chat: spreadsheet-basic-excel-2026-08-15. */
    top: 0;
    left: 0;
    z-index: 10200; /* Must be higher than ModalService overlay (10100) */
    max-width: 280px;
    padding: 6px 10px;
    font-family: var(--font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--tooltip-text);
    background-color: var(--tooltip-bg);
    border: 1px solid var(--tooltip-border);
    border-radius: 4px;
    box-shadow: var(--tooltip-shadow);
    white-space: normal;
    word-wrap: break-word;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity 0.15s ease-out,
        visibility 0.15s ease-out;
}

/* Visible state */
.tooltip-service.tooltip-visible {
    opacity: 1;
    visibility: visible;
}

/* Arrow - above position (pointing down) */
.tooltip-service.tooltip-above::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--tooltip-bg);
}

/* Arrow - below position (pointing up) */
.tooltip-service.tooltip-below::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-bottom-color: var(--tooltip-bg);
}

/* ========================================
   High Contrast / Accessibility
   Override tooltip variables for maximum contrast
   ======================================== */

@media (prefers-contrast: high) {
    :root {
        --tooltip-bg: #000000;
        --tooltip-text: #ffffff;
        --tooltip-border: #ffffff;
        --tooltip-shadow: none;
    }

    [data-theme='dark'] {
        --tooltip-bg: #ffffff;
        --tooltip-text: #000000;
        --tooltip-border: #000000;
        --tooltip-shadow: none;
    }
}

/* ========================================
   Reduced Motion
   ======================================== */

@media (prefers-reduced-motion: reduce) {
    .tooltip-service {
        transition: none;
    }
}

/* ========================================
   Cursor-Following Tooltip Mode
   No arrow, follows mouse cursor
   ======================================== */

.tooltip-service.tooltip-cursor {
    /* No arrow for cursor mode */
}

.tooltip-service.tooltip-cursor::after {
    display: none;
}

/* ========================================
   Interactive Popup Mode
   Allows pointer events for clickable content
   ======================================== */

.tooltip-service.tooltip-interactive {
    max-width: 320px;
    padding: 10px 14px;
    pointer-events: auto;
}

/* Interactive popup content styling */
.tooltip-service.tooltip-interactive .notification-btn-wrapper {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    justify-content: flex-end;
}

.tooltip-service.tooltip-interactive .notification-btn {
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 500;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition:
        background-color 0.15s ease,
        opacity 0.15s ease;
}

.tooltip-service.tooltip-interactive .notification-btn:hover {
    opacity: 0.9;
}

.tooltip-service.tooltip-interactive .notification-btn-approve {
    background-color: var(--color-success, #22c55e);
    color: white;
}

.tooltip-service.tooltip-interactive .notification-btn-deny {
    background-color: var(--color-danger, #ef4444);
    color: white;
}

/* ========================================
   Mobile: Disable tooltips on touch devices
   Tooltips don't work well with touch - use long-press or aria-labels instead
   ======================================== */

@media (hover: none) and (pointer: coarse) {
    .tooltip-service {
        display: none !important;
    }
}
