.article-content > .ifis-read {
    opacity: .76;
    transition: opacity .18s ease;
}
.article-content > .ifis-read:hover,
.article-content > .ifis-read:focus-within { opacity: 1; }

.ifis-reading-marker {
    --marker-color: #b87024;
    position: absolute;
    z-index: 4;
    width: 28px;
    height: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transform: translateY(-50%);
}
.ifis-reading-marker::before {
    content: '';
    position: absolute;
    top: 50%; left: 0;
    width: 100%; height: 1px;
    background: var(--marker-color);
    opacity: .72;
}
.ifis-reading-marker--left { transform: translate(-100%, -50%); margin-left: -10px; }
.ifis-reading-marker--right { margin-left: 10px; }

.ifis-reading-line {
    --marker-color: #b87024;
    position: absolute;
    z-index: 3;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: color-mix(in srgb, var(--marker-color) 13%, transparent);
    box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--marker-color) 42%, transparent);
    transform: translateY(-50%);
    cursor: pointer;
}

.ifis-reading-offer {
    position: absolute; z-index: 8;
    transform: translate(calc(-100% - 10px), -50%);
    margin: 0; padding: 3px 6px;
    border: 0; border-radius: 6px;
    background: var(--bg, #fff);
    box-shadow: 0 1px 8px rgba(0,0,0,.07);
    color: var(--text-muted, #6a6a6a);
    font: inherit; font-size: .68rem; line-height: 1.2;
    letter-spacing: .02em; white-space: nowrap; cursor: pointer;
}
.ifis-reading-offer:hover,
.ifis-reading-offer:focus-visible { color: var(--text-main, #2b2b2b); background: var(--bg-soft, #fafafa); }

.ifis-reading-palette {
    position: absolute; z-index: 10;
    display: flex; gap: 7px; align-items: center;
    padding: 6px 7px;
    border-radius: 14px;
    background: var(--bg, #fff);
    box-shadow: 0 2px 12px rgba(0,0,0,.10);
    transform: translateY(-50%);
}
.ifis-reading-palette.is-left { transform: translate(-100%,-50%); }
.ifis-reading-palette.is-mobile { transform: translate(-50%,-100%); }
.ifis-reading-color {
    --swatch: #b87024;
    width: 10px; height: 10px;
    padding: 0; border: 0; border-radius: 50%;
    background: var(--swatch); opacity: .62; cursor: pointer;
}
.ifis-reading-color:hover,
.ifis-reading-color:focus-visible,
.ifis-reading-color.is-active { opacity: 1; }
.ifis-reading-color.is-active { box-shadow: 0 0 0 2px var(--bg, #fff), 0 0 0 3px var(--text-muted, #6a6a6a); }

@media (hover: none) and (pointer: coarse) {
    .article-content > .ifis-read:active { opacity: 1; }
    .ifis-reading-marker { display: none; }
    .ifis-reading-line { min-height: 22px; }
    .ifis-reading-offer {
        transform: translate(-50%,-100%);
        font-size: .68rem;
        padding: 5px 7px;
        box-shadow: 0 2px 10px rgba(0,0,0,.08);
    }
    .ifis-reading-color { width: 12px; height: 12px; }
}
@media (prefers-reduced-motion: reduce) { .article-content > .ifis-read { transition: none; } }
@media (prefers-color-scheme: dark) {
    .ifis-reading-offer,
    .ifis-reading-palette {
        box-shadow: 0 2px 12px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.14);
    }
}
.ifis-reading-offer:focus-visible,
.ifis-reading-color:focus-visible {
    outline: 2px solid var(--text-muted, #6a6a6a);
    outline-offset: 3px;
}
