/* 只調整現在／過去／遺書的閱讀內容，不影響輸入、其他面板、工作區或圖片大小。 */
body.new-body.diamwolf-game-play2 .game-play-page .gv-talk-log {
    --diamwolf-reading-font: 14px;
    --diamwolf-reading-small: 12px;
    --diamwolf-reading-strong: 20px;
    --diamwolf-reading-line-height: 1.45;
    --diamwolf-reading-row-margin: 1px;
    --diamwolf-reading-row-padding: 2px 4px;
    --diamwolf-reading-joined-padding: 1px;
}
body.new-body.diamwolf-game-play2[data-diamwolf-reading-font="16"] .game-play-page .gv-talk-log {
    --diamwolf-reading-font: 16px;
    --diamwolf-reading-small: 14px;
    --diamwolf-reading-strong: 22px;
}
body.new-body.diamwolf-game-play2[data-diamwolf-reading-density="loose"] .game-play-page .gv-talk-log {
    --diamwolf-reading-line-height: 1.65;
    --diamwolf-reading-row-margin: 3px;
    --diamwolf-reading-row-padding: 6px 8px;
    --diamwolf-reading-joined-padding: 3px;
}
.game-play-page .diamwolf-dock-toolbar {
    display: inline-flex;
    align-items: center;
    align-self: center;
    min-width: 0;
    padding: 0;
    flex: 0 0 auto;
    font-size: 14px;
    color: var(--diamwolf-gp2-ink);
}
.diamwolf-dock-tools { position: relative; z-index: 51; }
.game-play-page .diamwolf-dock-tools > summary { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 40px; padding: 0 12px; box-sizing: border-box; border: 1px solid var(--diamwolf-gp2-line); border-radius: 4px; background: var(--diamwolf-gp2-paper-muted); color: var(--diamwolf-gp2-ink); cursor: pointer; list-style: none; white-space: nowrap; }
.diamwolf-dock-tools > summary::-webkit-details-marker { display: none; }
.game-play-page .diamwolf-dock-settings-menu { position: fixed; z-index: 51; min-width: 190px; max-width: calc(100vw - 8px); max-height: calc(100vh - 8px); overflow: auto; padding: 4px; box-sizing: border-box; border: 1px solid var(--diamwolf-gp2-brand); border-radius: 4px; background: var(--diamwolf-gp2-paper); color: var(--diamwolf-gp2-ink); box-shadow: 0 4px 12px #0004; }
.game-play-page .diamwolf-dock-settings-menu label { display: flex; flex-direction: column; align-items: stretch; gap: 4px; margin: 0; padding: 4px; font-size: 12px; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-dock-settings-menu :is(button, select) { width: 100%; min-width: 0; min-height: 28px; height: auto; padding: 2px 8px; box-sizing: border-box; font-size: 12px; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-dock-settings-menu button { display: block; margin: 2px 0 0; border: 0; border-radius: 2px; background: transparent !important; color: inherit !important; box-shadow: none; text-align: left; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-dock-settings-menu button:is(:hover, :focus-visible) { background: var(--diamwolf-gp2-brand) !important; color: var(--diamwolf-gp2-on-brand) !important; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-reading-options { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px; font-size: 14px; }
.diamwolf-reading-options > div { display: flex; gap: 4px; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-reading-options button { width: 48px; min-height: 32px; margin: 0; border: 1px solid var(--diamwolf-gp2-line); font-size: 14px; text-align: center; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-reading-options button[aria-pressed="false"] { background: var(--diamwolf-gp2-paper-muted) !important; color: var(--diamwolf-gp2-ink) !important; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-reading-options button[aria-pressed="true"] { border-color: var(--diamwolf-gp2-brand-strong); background: var(--diamwolf-gp2-brand) !important; color: var(--diamwolf-gp2-on-brand) !important; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-reading-options button[aria-pressed="false"]:is(:hover, :focus-visible) { background: var(--diamwolf-gp2-hover) !important; }
.diamwolf-dock-desktop-tools { margin-top: 4px; border-top: 1px solid var(--diamwolf-gp2-line); }
.game-play-page .diamwolf-dock-tools > summary:is(:hover, :focus-visible) { background: var(--diamwolf-gp2-brand); color: var(--diamwolf-gp2-on-brand); }
.diamwolf-dock-host { flex: 1 1 auto; min-height: 380px; min-width: 0; position: relative; isolation: isolate; }
.game-play-page :is(.diamwolf-record-view, .diamwolf-dock-host, .diamwolf-dock-custom-tools, .diamwolf-dock-desktop-tools, .gv-main-grid)[hidden],
.game-play-page .gv-talk-log-wrap[hidden],
.diamwolf-dock-parking { display: none !important; }
.game-play-page .diamwolf-record-view { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; position: relative; }
.game-play-page .diamwolf-record-log-wrap { position: relative; display: flex; flex: 1 1 auto; min-width: 0; min-height: 0; overflow: hidden; }
.game-play-page .diamwolf-record-log-wrap > .gv-talk-log { min-height: 0; flex: 1 1 auto; overflow: auto; }
.game-play-page .diamwolf-record-view .gv-history-date-bar { margin: 0 0 4px !important; }
.game-play-page .diamwolf-history-filter { margin: 0 0 4px; font-size: 12px; }
/* 套件在內層主題節點重設色彩，必須直接套用，不能只依賴外層繼承。 */
.game-play-page.diamwolf-docking :is(.diamwolf-dock-host, .dockview-theme-light) {
    --dv-tabs-and-actions-container-height: 28px;
    --dv-activegroup-visiblepanel-tab-background-color: var(--diamwolf-gp2-brand);
    --dv-activegroup-visiblepanel-tab-color: var(--diamwolf-gp2-on-brand);
    --dv-inactivegroup-visiblepanel-tab-background-color: var(--diamwolf-gp2-paper-muted);
    --dv-inactivegroup-visiblepanel-tab-color: var(--diamwolf-gp2-ink);
    --dv-activegroup-hiddenpanel-tab-background-color: var(--diamwolf-gp2-paper-muted);
    --dv-activegroup-hiddenpanel-tab-color: var(--diamwolf-gp2-ink);
    --dv-inactivegroup-hiddenpanel-tab-background-color: var(--diamwolf-gp2-paper-muted);
    --dv-inactivegroup-hiddenpanel-tab-color: var(--diamwolf-gp2-ink);
    --dv-tabs-and-actions-container-background-color: var(--diamwolf-gp2-paper-muted);
    --dv-group-view-background-color: var(--diamwolf-gp2-paper-strong);
    --dv-separator-border: var(--diamwolf-gp2-brand);
    --dv-drag-over-background-color: color-mix(in srgb, var(--diamwolf-gp2-brand) 24%, transparent);
    --dv-drag-over-border-color: var(--diamwolf-gp2-brand);
    --dv-floating-titlebar-background-color: var(--diamwolf-gp2-paper-muted);
    --dv-floating-titlebar-height: 12px;
}
.game-play-page.diamwolf-docking .dv-floating-titlebar { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 0 8px; box-sizing: border-box; color: var(--diamwolf-gp2-ink); cursor: grab; user-select: none; }
/* 把手與提示只作視覺標示，拖曳仍由套件原本的標題列接收。 */
.game-play-page.diamwolf-docking .dv-floating-titlebar::before { content: ""; flex: 0 0 8px; height: 12px; max-height: 100%; background-image: radial-gradient(circle at 2px 2px, currentColor 1px, transparent 1.2px); background-size: 4px 4px; pointer-events: none; }
.game-play-page.diamwolf-docking .dv-floating-titlebar::after { content: "拖曳移動視窗"; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 11px; line-height: 1; pointer-events: none; }
.game-play-page.diamwolf-docking .dv-floating-titlebar:active { cursor: grabbing; }
.game-play-page.diamwolf-dock-locked .dv-floating-titlebar::before { opacity: .35; }
.game-play-page.diamwolf-dock-locked .dv-floating-titlebar::after { content: "版面已鎖定"; }
.diamwolf-dock-tab { display: flex; align-items: center; padding: 0 10px; height: 100%; font-size: 12px; cursor: grab; }
.diamwolf-dock-header-actions { display: inline-flex; align-items: center; gap: 3px; height: 100%; padding: 0 4px; white-space: nowrap; font-size: 11px; color: var(--diamwolf-gp2-ink); }
.game-play-page :is(.diamwolf-dock-header-actions, .diamwolf-dock-header-content, .diamwolf-dock-panel-close, .diamwolf-dock-panel-menu)[hidden] { display: none !important; }
.diamwolf-dock-header-content { display: inline-flex; align-items: center; gap: 3px; margin-right: 3px; }
.game-play-page .diamwolf-dock-header-actions button { min-width: 0; min-height: 22px; height: 22px; margin: 0; padding: 0 4px; border: 0; border-radius: 3px; font-size: 11px; line-height: 1.2; background: transparent; color: inherit; box-shadow: none; }
.game-play-page .diamwolf-dock-header-actions button:is(:hover, :focus-visible),
.game-play-page .diamwolf-dock-header-actions button.is-active { background: var(--diamwolf-gp2-brand); color: var(--diamwolf-gp2-on-brand); }
.game-play-page .diamwolf-dock-header-actions :is(.diamwolf-dock-panel-menu-toggle, .diamwolf-dock-panel-close) { width: 22px; flex: 0 0 22px; padding: 0; font-size: 17px; }
.game-play-page .diamwolf-dock-header-actions .diamwolf-dock-panel-menu-toggle[aria-expanded="true"] { background: var(--diamwolf-gp2-brand); color: var(--diamwolf-gp2-on-brand); }
.game-play-page .diamwolf-dock-panel-menu { position: fixed; z-index: 50; min-width: 172px; max-width: calc(100vw - 8px); max-height: calc(100vh - 8px); overflow: auto; padding: 4px; border: 1px solid var(--diamwolf-gp2-brand); border-radius: 4px; background: var(--diamwolf-gp2-paper); color: var(--diamwolf-gp2-ink); box-shadow: 0 4px 12px #0004; }
.diamwolf-dock-panel-menu-title { padding: 4px 8px 6px; border-bottom: 1px solid var(--diamwolf-gp2-line); font-size: 12px; font-weight: bold; }
.game-play-page .diamwolf-dock-panel-menu button { display: block; width: 100%; min-height: 28px; margin: 2px 0 0; padding: 4px 8px; border: 0; border-radius: 2px; background: transparent; color: inherit; box-shadow: none; text-align: left; font-size: 12px; }
.game-play-page .diamwolf-dock-panel-menu button:disabled { opacity: .45; cursor: default; }
.game-play-page .diamwolf-dock-panel-menu button:not(:disabled):is(:hover, :focus-visible) { background: var(--diamwolf-gp2-brand); color: var(--diamwolf-gp2-on-brand); }
.game-play-page.diamwolf-docking :is(.gv-player-fieldset, .gv-info-fieldset) > legend { display: none !important; }
.diamwolf-dock-content { height: 100%; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
/* 六面板共用小留邊；覆蓋原固定版的不同內距，fieldset 離開 grid 後仍須允許縮窄。 */
body.new-body.diamwolf-game-play2 .game-play-page.diamwolf-docking .diamwolf-dock-content > :is(fieldset, form, .diamwolf-record-view) { flex: 1 1 auto; min-width: 0; min-height: 0; margin: 0 !important; padding: 4px; box-sizing: border-box; }
body.new-body.diamwolf-game-play2 .game-play-page.diamwolf-docking :is(.gv-player-list-simple, .gv-talk-log, .gv-history-date-bar) { padding: 4px; }
/* 共用原頻道列，固定／手機切紀錄也跟隨內容；日期與篩選列留在浮動區外。 */
body.new-body.diamwolf-game-play2 .game-play-page .gv-talk-fieldset.diamwolf-floating-channels .diamwolf-floating-channel-view > .gv-talk-tabs {
    position: absolute; top: 8px; bottom: auto; left: 8px;
    width: max-content; max-width: calc(100% - 16px); margin: 0; flex: none;
    padding: 2px; box-sizing: border-box; border: 1px solid var(--diamwolf-gp2-line); border-radius: 6px;
    background: var(--diamwolf-gp2-paper); box-shadow: 0 2px 8px #0002;
}
body.new-body.diamwolf-game-play2 .game-play-page .gv-talk-fieldset.diamwolf-floating-channels .diamwolf-floating-channel-view.is-newest-first > .gv-talk-tabs {
    top: auto; bottom: calc(8px + var(--diamwolf-floating-channels-lift, 0px));
}
body.new-body.diamwolf-game-play2 .game-play-page .gv-talk-fieldset.diamwolf-floating-channels .diamwolf-floating-channel-view > .gv-talk-log {
    padding-top: 48px; padding-bottom: 4px;
}
body.new-body.diamwolf-game-play2 .game-play-page .gv-talk-fieldset.diamwolf-floating-channels .diamwolf-floating-channel-view.is-newest-first > .gv-talk-log {
    padding-top: 4px; padding-bottom: calc(48px + var(--diamwolf-floating-channels-lift, 0px));
}
/* 不預留尚未出現的捲軸，避免無捲軸時只有右側多一條空白。 */
.game-play-page.diamwolf-docking #playerList { scrollbar-gutter: auto; }
.game-play-page.diamwolf-docking .gv-talk-fieldset { display: flex; flex-direction: column; }
.game-play-page.diamwolf-docking .gv-talk-fieldset .gv-talk-log-wrap { flex: 1 1 auto; height: auto !important; max-height: none !important; }
.game-play-page.diamwolf-docking .gv-talk-tabs [data-talk-tab="history"],
.game-play-page.diamwolf-docking .gv-talk-tabs [data-talk-tab="last-words"] { display: none !important; }
body.new-body.diamwolf-game-play2 .game-play-page.diamwolf-docking .gv-talk-tabs { flex: 0 0 auto; margin-bottom: 4px; }
.game-play-page.diamwolf-docking .gv-player-fieldset { display: flex; flex-direction: column; overflow: hidden; }
.game-play-page .diamwolf-dock-player-tools { display: none; }
/* 工具列搬入深色框內後仍須保留原 legend 的成對底色／文字色。 */
.game-play-page.diamwolf-docking .diamwolf-dock-player-tools {
    display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; gap: 4px;
    padding: 3px 4px; margin-bottom: 4px; border-bottom: 1px solid var(--gv-player-legend-line);
    background: var(--gv-player-legend-bg); color: var(--gv-player-legend-text); font-size: 12px; line-height: 1.5;
}
body.new-body.diamwolf-game-play2 .game-play-page.diamwolf-docking .diamwolf-dock-player-tools .gv-player-mode-btn {
    padding: 2px 5px; border-radius: 3px; white-space: nowrap;
}
.game-play-page.diamwolf-docking .gv-info-fieldset { overflow: auto; }
/* 面板可拉高，但不讓 Grid 把剩餘高度分配到輸入列與功能列。 */
.game-play-page.diamwolf-docking .gv-talk-form { align-content: start; gap: 4px; overflow: auto; border: 0; }
.game-play-page.diamwolf-docking .diamwolf-record-view { background: var(--diamwolf-gp2-paper); }
.game-play-page.diamwolf-dock-locked :is(.dv-sash, .dv-floating-titlebar) { pointer-events: none !important; }
.game-play-page.diamwolf-dock-locked .dv-resize-container > [class^="dv-resize-handle-"] { pointer-events: none !important; }
/* 邊緣只保留頁籤寬度，抽屜覆蓋工作區，不再擠壓仍釘選的面板。 */
.game-play-page.diamwolf-docking .diamwolf-dock-host {
    --diamwolf-auto-left: 0px;
    --diamwolf-auto-right: 0px;
    --diamwolf-auto-bottom: 0px;
    display: grid;
    grid-template-columns: var(--diamwolf-auto-left) minmax(0, 1fr) var(--diamwolf-auto-right);
    grid-template-rows: minmax(0, 1fr) var(--diamwolf-auto-bottom);
}
.game-play-page .diamwolf-dock-host.has-auto-left { --diamwolf-auto-left: 28px; }
.game-play-page .diamwolf-dock-host.has-auto-right { --diamwolf-auto-right: 28px; }
.game-play-page .diamwolf-dock-host.has-auto-bottom { --diamwolf-auto-bottom: 28px; }
.diamwolf-dock-mount { grid-column: 2; grid-row: 1; min-width: 0; min-height: 0; position: relative; }
.game-play-page :is(.diamwolf-auto-rail, .diamwolf-auto-flyout, .diamwolf-auto-header button)[hidden] { display: none !important; }
.diamwolf-auto-rail { display: flex; gap: 4px; padding: 4px 2px; box-sizing: border-box; background: var(--diamwolf-gp2-paper-muted); }
.diamwolf-auto-rail-left, .diamwolf-auto-rail-right { flex-direction: column; align-items: stretch; overflow-x: hidden; overflow-y: auto; grid-row: 1; }
.diamwolf-auto-rail-left { grid-column: 1; border-right: 1px solid var(--diamwolf-gp2-line); }
.diamwolf-auto-rail-right { grid-column: 3; border-left: 1px solid var(--diamwolf-gp2-line); }
.diamwolf-auto-rail-bottom { grid-column: 1 / 4; grid-row: 2; overflow-x: auto; border-top: 1px solid var(--diamwolf-gp2-line); padding: 2px 4px; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-auto-rail button {
    flex: 0 0 auto; min-width: 0; min-height: 0; margin: 0; padding: 8px 3px; border: 0;
    border-radius: 3px; box-shadow: none; background: transparent; color: var(--diamwolf-gp2-ink);
    font-size: 12px; font-weight: bold; line-height: 1.25; letter-spacing: 1px; writing-mode: vertical-rl;
}
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-auto-rail-bottom button { padding: 3px 12px; writing-mode: horizontal-tb; letter-spacing: normal; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-auto-rail button:is(:hover, :focus-visible, [aria-expanded="true"]) { background: var(--diamwolf-gp2-brand); color: var(--diamwolf-gp2-on-brand); }
.diamwolf-auto-flyout { position: absolute; z-index: 1100; display: flex; flex-direction: column; min-width: 220px; min-height: 120px; box-sizing: border-box; border: 1px solid var(--diamwolf-gp2-brand); background: var(--diamwolf-gp2-paper); box-shadow: 0 5px 20px #0005; }
.diamwolf-auto-flyout[data-edge="left"] { top: 0; left: var(--diamwolf-auto-left); bottom: var(--diamwolf-auto-bottom); }
.diamwolf-auto-flyout[data-edge="right"] { top: 0; right: var(--diamwolf-auto-right); bottom: var(--diamwolf-auto-bottom); }
.diamwolf-auto-flyout[data-edge="bottom"] { left: var(--diamwolf-auto-left); right: var(--diamwolf-auto-right); bottom: var(--diamwolf-auto-bottom); }
.diamwolf-auto-flyout > .diamwolf-dock-content { flex: 1 1 auto; height: auto; }
.diamwolf-auto-header { display: flex; flex-wrap: wrap; flex: 0 0 auto; min-height: 28px; align-items: center; gap: 4px; padding: 0 5px; background: var(--diamwolf-gp2-paper-muted); border-bottom: 1px solid var(--diamwolf-gp2-line); color: var(--diamwolf-gp2-ink); font-size: 12px; }
.diamwolf-auto-title { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-auto-header :is(button, select) { flex: 0 0 auto; width: auto; min-width: 0; min-height: 22px; height: 22px; margin: 0; padding: 0 3px; border: 0; border-radius: 3px; background: transparent; color: inherit; box-shadow: none; font-size: 12px; }
body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-auto-header button:is(:hover, :focus-visible) { background: var(--diamwolf-gp2-brand); color: var(--diamwolf-gp2-on-brand); }
.diamwolf-auto-resize { position: absolute; touch-action: none; }
.diamwolf-auto-flyout[data-edge="left"] .diamwolf-auto-resize { right: -3px; top: 28px; bottom: 0; width: 6px; cursor: ew-resize; }
.diamwolf-auto-flyout[data-edge="right"] .diamwolf-auto-resize { left: -3px; top: 28px; bottom: 0; width: 6px; cursor: ew-resize; }
.diamwolf-auto-flyout[data-edge="bottom"] .diamwolf-auto-resize { left: 0; right: 0; top: -3px; height: 6px; cursor: ns-resize; }
.diamwolf-auto-resize:is(:hover, :focus-visible) { outline: 1px solid var(--diamwolf-gp2-brand); background: var(--diamwolf-gp2-brand); }
.diamwolf-dock-locked .diamwolf-auto-resize { pointer-events: none; }
.game-play-page .diamwolf-dock-header-actions .diamwolf-dock-panel-pin { width: 22px; padding: 0; font-size: 13px; }
@media (min-width: 921px) {
    body.new-body.diamwolf-game-play2 .game-play-page:not(.diamwolf-docking) :is(.gv-main-grid, .gv-left-panel) { gap: 4px; }
}
@media (min-width: 921px) and (max-height: 600px) {
    body.new-body.diamwolf-game-play2 .new-main:has(.diamwolf-docking) { overflow: auto; }
    body.new-body.diamwolf-game-play2 .new-main > .game-play-page.diamwolf-docking { min-height: 520px; }
}
@media (max-width: 920px) {
    .game-play-page .diamwolf-dock-toolbar,
    .game-play-page .diamwolf-dock-tools { width: 100%; }
    .game-play-page .diamwolf-dock-tools > summary { width: 100%; min-height: 36px; }
    body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-dock-settings-menu :is(button, select) { min-height: 36px; }
    .game-play-page .diamwolf-record-view { order: 2; }
}
@media (max-width: 920px) and (max-height: 500px) {
    /* 短視窗的日期列須縮緊，才不會把內容內浮動列推進固定輸入區。 */
    body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-record-view .gv-history-date-bar { padding: 2px 4px; }
    body.new-body.diamwolf-game-play2 .game-play-page .diamwolf-record-view .gv-history-date-bar select { height: 30px; min-height: 30px; }
}
