/* ============================================
   Tooltip Component Styles
   ============================================ */

/* Tooltip Wrapper */
.tooltip-wrapper {
    position: relative;
    display: inline-block;
}

/* Tooltip */
.tooltip {
    position: absolute;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-xs);
    font-weight: 500;
    line-height: 1.4;
    border-radius: var(--border-radius);
    box-shadow: var(--shadow-md);
    white-space: nowrap;
    pointer-events: none;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
}

.tooltip.show {
    opacity: 1;
    visibility: visible;
}

/* Tooltip Arrow */
.tooltip-arrow {
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
}

/* Dark Variant (Default) - Inverts in dark mode */
.tooltip-dark {
    background-color: #1a1a1a;
    color: #ffffff;
}

[data-theme="dark"] .tooltip-dark {
    background-color: #ffffff;
    color: #1a1a1a;
}

/* Light Variant */
.tooltip-light {
    background-color: var(--color-surface);
    color: var(--color-text);
    border: 1px solid var(--color-border);
}

/* Position: Top */
.tooltip-top {
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(4px);
}

.tooltip-top.show {
    transform: translateX(-50%) translateY(0);
}

.tooltip-top.tooltip-dark .tooltip-arrow {
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 5px 5px 0 5px;
    border-color: #1a1a1a transparent transparent transparent;
}

[data-theme="dark"] .tooltip-top.tooltip-dark .tooltip-arrow {
    border-color: #ffffff transparent transparent transparent;
}

.tooltip-top.tooltip-light .tooltip-arrow {
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 5px 5px 0 5px;
    border-color: var(--color-surface) transparent transparent transparent;
}

/* Position: Bottom */
.tooltip-bottom {
    top: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%) translateY(-4px);
}

.tooltip-bottom.show {
    transform: translateX(-50%) translateY(0);
}

.tooltip-bottom.tooltip-dark .tooltip-arrow {
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 0 5px 5px 5px;
    border-color: transparent transparent #1a1a1a transparent;
}

[data-theme="dark"] .tooltip-bottom.tooltip-dark .tooltip-arrow {
    border-color: transparent transparent #ffffff transparent;
}

.tooltip-bottom.tooltip-light .tooltip-arrow {
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 0 5px 5px 5px;
    border-color: transparent transparent var(--color-surface) transparent;
}

/* Position: Left */
.tooltip-left {
    right: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%) translateX(4px);
}

.tooltip-left.show {
    transform: translateY(-50%) translateX(0);
}

.tooltip-left.tooltip-dark .tooltip-arrow {
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-width: 5px 0 5px 5px;
    border-color: transparent transparent transparent #1a1a1a;
}

[data-theme="dark"] .tooltip-left.tooltip-dark .tooltip-arrow {
    border-color: transparent transparent transparent #ffffff;
}

.tooltip-left.tooltip-light .tooltip-arrow {
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-width: 5px 0 5px 5px;
    border-color: transparent transparent transparent var(--color-surface);
}

/* Position: Right */
.tooltip-right {
    left: calc(100% + 8px);
    top: 50%;
    transform: translateY(-50%) translateX(-4px);
}

.tooltip-right.show {
    transform: translateY(-50%) translateX(0);
}

.tooltip-right.tooltip-dark .tooltip-arrow {
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-width: 5px 5px 5px 0;
    border-color: transparent #1a1a1a transparent transparent;
}

[data-theme="dark"] .tooltip-right.tooltip-dark .tooltip-arrow {
    border-color: transparent #ffffff transparent transparent;
}

.tooltip-right.tooltip-light .tooltip-arrow {
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    border-width: 5px 5px 5px 0;
    border-color: transparent var(--color-surface) transparent transparent;
}

/* Multi-line tooltips */
.tooltip-multiline {
    max-width: 250px;
    white-space: normal;
    text-align: left;
}
