/* All rules are scoped to generated reader elements, never the whole entry. */
.lc-ewt-source, .lc-ewt-panel { min-width: 0; max-width: 100%; }
.lc-ewt-source .lc-ewt-toolbar {
    display: flex; flex-wrap: wrap; gap: .5rem; margin: 0 0 1rem;
    writing-mode: horizontal-tb; text-indent: 0;
}
.lc-ewt-source .lc-ewt-toolbar button {
    appearance: none; box-sizing: border-box; width: auto; min-width: 5em;
    min-height: 44px; margin: 0; padding: .5em 1em;
    border: 1px solid currentColor; border-radius: .25rem;
    background: transparent; color: inherit; font: inherit; line-height: 1.5;
    cursor: pointer; text-indent: 0;
}
.lc-ewt-source .lc-ewt-toolbar button[aria-pressed="true"] {
    background: #333; color: #fff; border-color: #333;
}
.lc-ewt-source .lc-ewt-toolbar button:focus-visible,
.lc-ewt-source .lc-ewt-toolbar select:focus-visible,
.lc-ewt-source .lc-ewt-viewport:focus-visible { outline: 3px solid #2864b4; outline-offset: 3px; }
.lc-ewt-source .lc-ewt-font-control {
    display: inline-flex; align-items: center; gap: .5rem; margin: 0;
    color: inherit; font: inherit; line-height: 1.5; text-indent: 0;
}
.lc-ewt-source .lc-ewt-font-control select {
    box-sizing: border-box; width: auto; min-width: 7em; max-width: 100%;
    min-height: 44px; margin: 0; padding: .5em;
    border: 1px solid currentColor; border-radius: .25rem;
    background: transparent; color: inherit; font: inherit; line-height: 1.5;
    cursor: pointer;
}
.lc-ewt-source .lc-ewt-text[data-lc-ewt-font="gothic"] {
    font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', Meiryo, 'ＭＳ ゴシック', Roboto, 'Droid Sans', sans-serif;
}
.lc-ewt-source .lc-ewt-text[data-lc-ewt-font="mincho"] {
    font-family: 'Hiragino Mincho ProN', 'ヒラギノ明朝 ProN W3', 'Yu Mincho', '游明朝', YuMincho, 'ＭＳ Ｐ明朝', 'ＭＳ 明朝', 'Noto Serif CJK JP', serif;
}
.lc-ewt-source .lc-ewt-hint {
    writing-mode: horizontal-tb; text-indent: 0; font-size: .875em;
    line-height: 1.7; margin: 0 0 .75rem;
}
.lc-ewt-source .lc-ewt-hint[hidden] { display: none; }
.lc-ewt-source .lc-ewt-viewport { max-width: 100%; min-width: 0; }
.lc-ewt-source .lc-ewt-vertical > .lc-ewt-viewport {
    box-sizing: border-box; width: 100%; height: 68vh;
    height: clamp(12rem, 68svh, 44rem);
    overflow: auto; overscroll-behavior-x: contain;
    writing-mode: vertical-rl; text-orientation: mixed;
    padding: 1rem; border: 1px solid #999;
    -webkit-overflow-scrolling: touch;
}
.lc-ewt-source .lc-ewt-vertical .lc-ewt-text {
    box-sizing: border-box; writing-mode: vertical-rl; text-orientation: mixed;
    width: max-content; max-width: none; height: 100%; min-height: 0;
    margin: 0; padding: 0; float: none;
    line-height: 1.9; overflow-wrap: break-word;
}
.lc-ewt-source .lc-ewt-vertical .lc-ewt-text p {
    width: auto; max-width: none; height: auto;
    margin: 0 0 0 1.5em;
}
.lc-ewt-source .lc-ewt-vertical .lc-ewt-text img,
.lc-ewt-source .lc-ewt-vertical .lc-ewt-text video {
    max-height: 100%; max-width: min(70vw, 32rem); object-fit: contain;
}
/* Print the complete work rather than a clipped scroll viewport. */
@media print {
    .lc-ewt-source .lc-ewt-toolbar, .lc-ewt-source .lc-ewt-hint { display: none; }
    .lc-ewt-source .lc-ewt-vertical > .lc-ewt-viewport,
    .lc-ewt-source .lc-ewt-vertical .lc-ewt-text {
        writing-mode: horizontal-tb; width: auto; max-width: 100%;
        height: auto; overflow: visible; border: 0; padding: 0;
    }
    .lc-ewt-source .lc-ewt-vertical .lc-ewt-text p { margin: 0 0 1.5em; }
}
