/* Shared visual tokens and minimap marker states. */
:root {
    color-scheme: dark;
    --font-body: "Inter", system-ui, sans-serif;
    --font-heading: "Geist", system-ui, sans-serif;
    --canvas-background-color: #08090a;
    --canvas-dot-color: rgb(255 255 255 / 6%);
    --canvas-selection-dot-color: #6fe358;
    --canvas-origin-color: #ff5b5b;
    --canvas-grid-debug-color: #ff4545;
    --canvas-grid-debug-protection-color: rgb(70 190 255 / 65%);
    --canvas-grid-debug-column-color: rgb(245 184 91 / 75%);
    --canvas-grid-debug-column-gap-color: rgb(245 184 91 / 40%);
    --canvas-path-color: #1f1f1f;
    --canvas-path-focus-color: #2c2c2c;
    --canvas-path-flow-start-color: rgb(111 227 88 / 0%);
    --canvas-path-flow-mid-color: rgb(111 227 88 / 45%);
    --canvas-path-flow-head-color: rgb(150 255 122 / 90%);
    --canvas-path-flow-end-color: rgb(150 255 122 / 0%);
    --canvas-effect-none-color: #858589;
    --canvas-effect-low-color: #ee858d;
    --canvas-effect-medium-color: #e8ec83;
    --canvas-effect-good-color: #6fe358;
    --canvas-effect-ultra-color: #a65cff;
    --canvas-link-unlink-color: #e8ec83;
    --canvas-link-relink-color: #6fe358;
    --card-background-color: #0a0b0c;
    --card-skeleton-background-color: rgb(10 11 12 / 35%);
    --card-shadow-color: rgb(0 0 0 / 27%);
    --card-border-start-color: #2c2c2c;
    --card-border-end-color: #1f1f1f;
    --card-selection-color: #6fe358;
    --card-header-height: 24px;
    --card-header-top-offset: -4px;
    --card-header-content-gap: 12px;
    --card-skeleton-bar-color: #4f4f4f;
    --keyword-table-text-color: #d9ddda;
    --keyword-table-heading-color: #8b8b8b;
    --keyword-table-row-hover-color: #151515;
    --keyword-table-score-color: #8fd880;
    --keyword-table-checkbox-border-color: #4b4b4b;
    --keyword-table-checkbox-hover-color: #888;
    --keyword-table-checkmark-color: #101910;
    --keyword-table-scroll-thumb-color: #696969;
    --keyword-table-scroll-thumb-hover-color: #8a8a8a;
    --keyword-table-scroll-track-color: rgb(44 44 44 / 55%);
    --keyword-deepen-checkbox-border-color: #343638;
    --keyword-deepen-complete-color: #77797d;
    --keyword-deepen-disabled-border-color: #464749;
    --keyword-deepen-disabled-background-color: #303133;
    --keyword-deepen-disabled-check-color: #a7a8aa;
    --keyword-deepen-child-color: #a7aaac;
    --minimap-inspiration-background-color: var(--card-background-color);
    --minimap-inspiration-border-color: var(--card-border-start-color);
    --minimap-inspiration-hover-border-color: var(--text-primary-color);
    --minimap-inspiration-text-color: var(--text-primary-color);
    --minimap-inspiration-icon-color: var(--text-muted-color);
    --minimap-rune-border-color: rgb(111 227 88 / 65%);
    --text-primary-color: #eeeef0;
    --text-muted-color: #737579;
    --text-placeholder-color: #5c5f63;
    --button-hover-background-color: #fff;
    --button-hover-text-color: #08090a;
    --focus-ring-color: #a49bff;
    --drag-handle-color: #6fe358;
    --resize-handle-color: #6fe358;
    --resize-handle-glow-color: rgb(111 227 88 / 16%);
    --resize-handle-ring-color: rgb(111 227 88 / 22%);
    --resize-border-glow-color: rgb(111 227 88 / 35%);
    --resize-dot-shadow-color: #000b;
    --sidebar-background-color: #0d0f10;
    --sidebar-border-color: #25282a;
    --sidebar-code-color: #c4d0c8;
    --font-code: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.minimap-working::before,
.minimap-rune-target::before {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: linear-gradient(
        100deg,
        transparent 20%,
        var(--minimap-shimmer-edge, rgb(255 255 255 / 4%)) 38%,
        var(--minimap-shimmer-center, rgb(255 255 255 / 18%)) 50%,
        var(--minimap-shimmer-edge, rgb(255 255 255 / 4%)) 62%,
        transparent 80%
    );
    pointer-events: none;
    z-index: 0;
    animation: minimap-working-shimmer 2.5s linear infinite;
}

.minimap-working > *,
.minimap-rune-target > *,
.minimap-rune-hover > * {
    position: relative;
    z-index: 1;
}

.minimap-rune-target {
    --minimap-shimmer-edge: rgb(111 227 88 / 8%);
    --minimap-shimmer-center: rgb(111 227 88 / 35%);
}

.minimap-rune-hover::before {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: radial-gradient(circle at center, rgb(111 227 88 / 22%), transparent 75%);
    pointer-events: none;
    z-index: 0;
    animation: minimap-rune-pulse 1.8s ease-in-out infinite;
}

@keyframes minimap-working-shimmer {
    from { transform: translateX(-100%); }
    to { transform: translateX(100%); }
}

@keyframes minimap-rune-pulse {
    0%, 100% { opacity: 0.25; }
    50% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .minimap-working::before,
    .minimap-rune-target::before,
    .minimap-rune-hover::before {
        animation: none;
        opacity: 0.5;
    }
}

.keyword-result-group,
.keyword-result-group-minimap {
    position: absolute;
    box-sizing: border-box;
    color: var(--text-muted-color);
}

.keyword-result-group {
    display: flex;
    flex-direction: column;
    padding-top: calc(var(--card-header-top-offset) + var(--card-header-height) + var(--card-header-content-gap));
    --card-header-actions-opacity: 1;
    --card-header-actions-pointer-events: auto;
}

.keyword-result-group piton-card-header {
    position: absolute;
    top: var(--card-header-top-offset);
    right: 0;
    left: 0;
}

.keyword-result-group-body {
    position: relative;
    flex: 1;
    min-height: 0;
    box-sizing: border-box;
    border: 1px solid transparent;
    border-radius: 16px;
    background: rgb(12 14 15 / 42%);
}

.keyword-result-group-body::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0 0 0 1px var(--card-border-start-color);
    pointer-events: none;
}

.keyword-result-group.is-collapsed .keyword-result-group-body {
    display: grid;
    place-items: center;
}

.keyword-result-group-note {
    font: 12px/1.4 var(--font-body);
}

.keyword-result-group-note[hidden] {
    display: none;
}

.keyword-result-group-minimap {
    display: block;
    overflow: hidden;
    padding: 8px;
    border: 1px solid var(--card-border-start-color);
    border-radius: 16px;
    background: rgb(12 14 15 / 42%);
    cursor: pointer;
    font: 600 12px/1.2 var(--font-heading);
    text-align: left;
    transform: scale(var(--minimap-ui-scale, 1));
    transform-origin: 0 0;
}

.keyword-result-group-minimap .keyword-result-group-title {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.keyword-result-group:is(:hover, :focus-within) .keyword-result-group-body::before {
    box-shadow: inset 0 0 0 1px var(--minimap-inspiration-hover-border-color);
}

.keyword-result-group.is-selected .keyword-result-group-body::before {
    box-shadow: inset 0 0 0 1px var(--card-selection-color);
}

.keyword-result-group-minimap:is(:hover, :focus-visible) {
    border-color: var(--minimap-inspiration-hover-border-color);
}

.keyword-result-group-minimap.is-selected {
    border-color: var(--card-selection-color);
}

.content-analysis-minimap {
    position: absolute;
    box-sizing: border-box;
    overflow: hidden;
    display: grid;
    place-items: center;
    padding: 8px;
    border: 1px solid var(--minimap-inspiration-border-color);
    border-radius: 12px;
    color: var(--minimap-inspiration-text-color);
    background: var(--minimap-inspiration-background-color);
    cursor: pointer;
    text-align: center;
    transform: scale(var(--minimap-ui-scale, 1));
    transform-origin: 0 0;
}

.content-analysis-minimap:is(:hover, :focus-visible) {
    border-color: var(--minimap-inspiration-hover-border-color);
}
.content-analysis-minimap.is-selected {
    border-color: var(--card-selection-color);
}
.content-analysis-minimap.has-sections {
    display: block;
    padding: 0;
    border-radius: 16px;
    background: rgb(12 14 15 / 42%);
}
.content-analysis-minimap.has-sections .content-analysis-minimap-heading {
    display: none;
}
.content-analysis-minimap-heading {
    display: flex;
    align-items: center;
    gap: 6px;
    overflow: hidden;
    font: 600 11px/1.2 var(--font-heading);
    white-space: nowrap;
}
.content-analysis-minimap-heading piton-icon {
    --icon-size: 14px;
    color: var(--minimap-inspiration-icon-color);
}
.content-analysis-minimap-sections {
    display: block;
}
.content-analysis-minimap-sections > button {
    position: absolute;
    box-sizing: border-box;
    appearance: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-width: 0;
    overflow: hidden;
    padding: 6px;
    border: 1px solid var(--card-border-start-color);
    border-radius: 8px;
    color: var(--text-primary-color);
    background: var(--card-background-color);
    font: 600 11px/1.2 var(--font-heading);
    cursor: pointer;
    white-space: nowrap;
}
.content-analysis-minimap-sections > button:is(:hover, :focus-visible) {
    border-color: var(--minimap-inspiration-hover-border-color);
}
.content-analysis-minimap-sections piton-icon {
    --icon-size: 13px;
    flex: none;
    color: var(--text-muted-color);
}
.content-analysis-minimap-sections > button > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
