/* Patch 254: shared right rail and board-scoped drawers. */
.board-control-layout {
    --board-control-rail-width:56px;
    /* The control chrome follows the resolved UI scheme, never the board paper/background. */
    --control-panel-bg:var(--ui-panel);
    --control-text:var(--ui-text);
    --control-accent:var(--ui-accent);
    --control-line:var(--ui-line);
    --control-dock-offset:0px;
    width:calc(100vw - var(--board-control-rail-width))!important;
    max-width:calc(100vw - var(--board-control-rail-width))!important;
}
html.tackora-utility-docked .board-control-layout {
    --control-dock-offset:var(--tackora-utility-dock-width,520px);
    width:calc(100vw - var(--board-control-rail-width) - var(--control-dock-offset))!important;
    max-width:calc(100vw - var(--board-control-rail-width) - var(--control-dock-offset))!important;
}
.board-control-rail {
    position:fixed;inset:0 0 0 auto;width:var(--board-control-rail-width);box-sizing:border-box;
    display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:10px 7px;
    background:var(--control-panel-bg);color:var(--control-text);border-left:1px solid var(--control-line);
    z-index:20000;box-shadow:-3px 0 14px #0002;overflow-y:auto;
}
.board-control-rail-top,.board-control-rail-zoom { display:flex;flex-direction:column;gap:8px; }
.board-control-rail button { position:relative;display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:9px;background:transparent;color:inherit;cursor:pointer;font:inherit;font-size:22px; }
.board-control-rail button:hover:not(:disabled),.board-control-rail button.active { border-color:var(--control-accent);background:color-mix(in srgb,var(--control-accent) 18%,var(--control-panel-bg)); }
.board-control-rail button:focus-visible { outline:2px solid var(--control-accent);outline-offset:-2px; }
.board-control-rail button:disabled { opacity:.4;cursor:default; }
.board-control-rail .board-control-zoom-value { font-size:11px;font-weight:700; }
.board-control-layout .control-drawer,
.board-control-layout .control-tool-stack { display:none!important; }
.board-control-layout.control-panel-board .control-board,
.board-control-layout.control-panel-board .control-hud,
.board-control-layout.control-panel-notes .control-notes,
.board-control-layout.control-panel-tools .control-hud,
.board-control-layout.control-panel-tools .control-tool-stack { display:flex!important; }
.board-control-layout .control-drawer {
    position:fixed!important;left:auto!important;bottom:auto!important;
    right:calc(var(--board-control-rail-width) + var(--control-dock-offset) + 8px)!important;
    opacity:1!important;transform:none!important;width:max-content!important;
    max-width:calc(100vw - var(--board-control-rail-width) - var(--control-dock-offset) - 24px)!important;
    box-sizing:border-box;flex-wrap:wrap;gap:8px;padding:10px!important;
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;
    border:1px solid var(--control-line)!important;border-radius:12px;box-shadow:0 8px 28px #0004;
    z-index:17010!important;animation:board-control-slide .16s ease-out;
}
.board-control-layout .control-hud { top:10px!important; }
.board-control-layout .control-board { top:72px!important; }
.board-control-layout .control-notes { top:58px!important; }
.board-control-layout .control-hud [data-control-group] { display:none; }
.board-control-layout.control-panel-board .control-hud [data-control-group="board"],
.board-control-layout.control-panel-tools .control-hud [data-control-group="tools"] { display:inline-flex; }
.board-control-layout .control-drawer button,
.board-control-layout .control-drawer .board-switcher-trigger,
.board-control-layout .control-tool-stack .board-edit-palette,
.board-control-layout .control-tool-stack .board-edit-palette button {
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;border-color:var(--control-line)!important;
}
.board-control-layout .control-drawer button:hover { background:color-mix(in srgb,var(--control-accent) 16%,var(--control-panel-bg))!important; }
.board-control-layout .board-switcher-menu { background:var(--control-panel-bg)!important;color:var(--control-text)!important;max-width:calc(100vw - 88px);right:0;left:auto; }
.board-control-layout .board-switcher-option small { color:color-mix(in srgb,var(--control-text) 75%,transparent)!important; }
.board-control-layout .control-tool-stack { top:72px!important;right:calc(var(--board-control-rail-width) + var(--control-dock-offset) + 8px)!important;max-width:calc(100vw - var(--board-control-rail-width) - var(--control-dock-offset) - 24px);z-index:17000;animation:board-control-slide .16s ease-out; }
.board-control-layout .control-tool-stack .board-edit-palette { opacity:1!important;max-height:calc(100dvh - 90px);overflow:auto; }
.board-control-layout .control-vtt-host .tt-controls { display:none; }
.board-control-layout.control-panel-vtt .control-vtt-host .tt-controls { display:flex;position:fixed;top:10px;bottom:auto;left:auto;right:calc(var(--board-control-rail-width) + var(--control-dock-offset) + 8px);width:320px;max-width:calc(100vw - var(--board-control-rail-width) - var(--control-dock-offset) - 24px);max-height:calc(100dvh - 24px);overflow:auto;background:var(--control-panel-bg);color:var(--control-text);border-color:var(--control-line);z-index:17000;animation:board-control-slide .16s ease-out; }
.board-control-layout .control-vtt-host .tt-controls button { background:var(--control-panel-bg);color:var(--control-text);border-color:var(--control-line); }
.board-control-layout .control-vtt-host .tt-fog-panel { position:static;box-sizing:border-box;width:100%;max-width:100%;background:var(--control-panel-bg);color:var(--control-text); }
.board-control-layout .control-vtt-host .tt-fog-tools { width:100%; }
/* Popup left/top/right geometry is owned by positionBoardPopups, not CSS. */
@keyframes board-control-slide { from { opacity:0;translate:20px 0; } to { opacity:1;translate:0 0; } }
@media(prefers-reduced-motion:reduce) { .board-control-layout .control-drawer,.board-control-layout .control-tool-stack,.board-control-layout.control-panel-vtt .tt-controls { animation:none; } }

.board-control-layout .memory-game-layer .memory-game-toolbar{margin-left:0!important;margin-right:0!important;}
.board-control-layout .board-switcher-menu .board-switcher-option-text strong,.board-control-layout .board-switcher-menu .board-switcher-workspace-title{color:var(--control-text)!important;}
.board-control-layout .control-tool-stack .board-tool-side-panel,
.board-control-layout .control-tool-stack .board-object-side-panel { background:var(--control-panel-bg);color:var(--control-text);border-color:var(--control-line);max-height:calc(100dvh - 90px);overflow:auto; }
.board-control-layout .control-tool-stack .board-tool-side-panel header,
.board-control-layout .control-tool-stack .board-object-side-panel header { background:var(--control-panel-bg);color:var(--control-text); }

/* 255: theme all popup surfaces and keep both board rows aligned beside the dock. */
html.tackora-utility-docked .board-control-layout .control-drawer,
html.tackora-utility-docked .board-control-layout .control-tool-stack {
    right:calc(var(--board-control-rail-width) + var(--control-dock-offset) + 8px)!important;
}
.board-control-layout .control-board,
.board-control-layout .control-hud { width:300px!important; }
.board-control-layout .control-board { flex-direction:column;align-items:stretch;height:auto!important; }
.board-control-layout .control-board .board-switcher-select-wrap { width:100%;max-width:none;flex:none;box-sizing:border-box; }
.board-control-layout .board-management-options { display:flex;flex-wrap:wrap;gap:8px;align-items:center; }
.board-control-layout .control-notes .toolbar-postit-pad button,
.board-control-layout .control-notes .toolbar-postit-pad button:hover,
.board-control-layout .control-notes .toolbar-postit-pad button:active { background:transparent!important;box-shadow:none!important;border:0!important; }
.board-control-layout .board-management-bar.switcher-open .board-switcher-menu,
.board-control-layout .board-management-bar.switcher-open,
.board-control-layout .board-flyout,
.board-control-layout .board-flyout header,
.board-control-layout .board-flyout .hotkey-row,
.board-control-layout .board-flyout .hotkey-row kbd,
.board-control-layout .board-flyout .visibility-color-row,
.board-control-layout .board-flyout button {
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;border-color:var(--control-line)!important;
}
.board-control-layout .board-flyout .hotkey-row span,
.board-control-layout .board-flyout .hotkey-hint,
.board-control-layout .board-switcher-section-title { color:var(--control-text)!important; }
.board-control-layout .board-flyout { box-sizing:border-box;z-index:19000!important;overflow:auto; }
.board-control-layout .control-vtt-host .tt-modal,
.board-control-layout .control-vtt-host .tt-modal input,
.board-control-layout .control-vtt-host .tt-modal select,
.board-control-layout .control-vtt-host .tt-modal textarea,
.board-control-layout .control-vtt-host .tt-modal button {
    background:var(--control-panel-bg);color:var(--control-text);border-color:var(--control-line);
}
.board-control-layout .control-vtt-host .tt-modal-backdrop { z-index:30000; }
.board-control-layout .control-vtt-host .tt-modal button.primary-button {
    background:var(--control-accent);color:var(--control-panel-bg);
}

/* 256: horizontal options row, themed hover and monochrome sharing marker. */
.board-control-layout .control-board .board-management-options {
    display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;
    justify-content:flex-start;align-items:center;gap:8px;width:100%;min-width:0;
    overflow-x:auto;box-sizing:border-box;
}
.board-control-layout .control-board .board-management-options > button {
    flex:0 0 32px!important;width:32px!important;height:32px!important;margin:0;
}
.board-control-layout .control-board .board-switcher-menu .board-switcher-option:hover:not(:disabled),
.board-control-layout .control-board .board-switcher-menu .board-switcher-option:focus-visible {
    background:color-mix(in srgb,var(--control-panel-bg) 82%,var(--control-text) 18%)!important;
    color:var(--control-text)!important;transform:none;
    box-shadow:inset 3px 0 0 var(--control-accent);
}
.board-control-layout .board-switcher-shared-icon {
    display:inline-flex;align-items:center;justify-content:center;color:var(--control-text);opacity:1;
}
.board-control-layout .board-switcher-shared-icon .tackora-tool-icon { width:12px;height:12px; }

/* tackora-board-controls-257: verified redelivery with global chat fallback. */
.board-control-layout .control-hud { justify-content:flex-end!important; }
.board-control-layout .control-board .board-management-options { justify-content:flex-end!important; }
.board-control-layout .board-widget-modal,
.board-control-layout .board-widget-modal > header,
.board-control-layout .board-widget-modal > footer,
.board-control-layout .board-widget-modal .tool-catalog-card,
.board-control-layout .board-widget-modal .tool-catalog-main,
.board-control-layout .board-widget-modal .tool-catalog-icon,
.board-control-layout .board-widget-modal button {
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;border-color:var(--control-line)!important;
}
.board-control-layout .board-widget-modal strong,
.board-control-layout .board-widget-modal small,
.board-control-layout .board-widget-modal .empty-state { color:var(--control-text)!important; }
.board-control-layout .board-widget-modal .tool-catalog-main:hover {
    background:color-mix(in srgb,var(--control-panel-bg) 82%,var(--control-text) 18%)!important;
}
.board-control-layout .board-widget-modal .primary-button { background:var(--control-accent)!important;color:var(--control-panel-bg)!important; }
.board-control-layout .board-admin-flyout a,
.board-control-layout .board-admin-flyout .presence-invisible-toggle,
.board-control-layout .board-admin-flyout .presence-invisible-checkbox,
.board-control-layout .board-admin-flyout .board-account-workspace-info {
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;border-color:var(--control-line)!important;
}
.board-control-layout .board-admin-flyout .presence-invisible-toggle strong,
.board-control-layout .board-admin-flyout .presence-invisible-toggle small,
.board-control-layout .board-admin-flyout .board-account-workspace-info strong,
.board-control-layout .board-admin-flyout .board-account-workspace-info small,
.board-control-layout .board-admin-flyout .flyout-section-label { color:var(--control-text)!important; }
.board-control-layout .board-admin-flyout a:hover,
.board-control-layout .board-admin-flyout .presence-invisible-toggle:hover {
    background:color-mix(in srgb,var(--control-panel-bg) 82%,var(--control-text) 18%)!important;
}
.board-control-layout .board-admin-flyout .presence-invisible-checkbox:checked { background:var(--control-accent)!important;border-color:var(--control-accent)!important; }
.board-control-layout .board-admin-flyout .presence-invisible-checkbox:checked::after { color:var(--control-panel-bg); }
/* Specific sizes here also protect against a stale scoped CSS bundle. */
.board-control-layout .board-utilities-panel .chat-message-header strong,
.board-control-layout .board-utilities-panel .chat-message-body,
.board-control-layout .board-utilities-panel .chat-compose textarea,
.board-control-layout .board-utilities-panel .chat-quote strong,
.board-control-layout .board-utilities-panel .chat-quote span,
.board-control-layout .board-utilities-panel .chat-reply-preview { font-size:11px!important;line-height:1.4; }

/* tackora-board-controls-260: compact themed context menus and anchored Tools. */
.board-control-layout .context-menu {
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;
    border-color:var(--control-line)!important;
}
.board-control-layout .board-context-menu {
    width:220px!important;min-width:0!important;max-width:calc(100vw - 20px)!important;
    box-sizing:border-box;padding:5px!important;
}
.board-control-layout .context-menu > button {
    background:transparent!important;color:inherit!important;border-color:var(--control-line)!important;
}
.board-control-layout .board-context-menu > button {
    display:flex;align-items:center;gap:8px;width:100%;min-width:0;box-sizing:border-box;
    white-space:normal;text-align:left;font-size:11px;padding:7px 8px;
}
.board-control-layout .context-menu > button:hover:not(:disabled),
.board-control-layout .context-menu > button:focus-visible {
    background:color-mix(in srgb,var(--control-panel-bg) 82%,var(--control-text))!important;
}
.board-control-layout .context-menu .context-label { color:var(--control-text);opacity:.7; }
.board-control-layout .context-menu .context-separator { border-color:var(--control-line);background:var(--control-line); }
.board-control-layout.control-panel-tools .control-tool-stack,
html.tackora-utility-docked .board-control-layout.control-panel-tools .control-tool-stack {
    top:var(--control-tools-top,116px)!important;
    right:calc(var(--board-control-rail-width) + var(--control-dock-offset) + 8px + var(--control-tools-offset,204px))!important;
    max-width:var(--control-tools-width,260px);
}
.board-control-layout.control-panel-tools .control-hud { top:var(--control-tools-hud-top,106px)!important;width:max-content!important;flex-wrap:nowrap; }
.board-control-layout.control-panel-tools .control-tool-stack .board-edit-palette {
    width:min(260px,var(--control-tools-width,260px));box-sizing:border-box;
    max-height:calc(100dvh - var(--control-tools-top,116px) - 10px);
}

/* A stack of sheets, bound to the same paper/texture/radius as board Notes. */
.board-control-layout .board-element-tack { background:transparent!important;border:0!important;overflow:visible; }
.board-control-layout .tack-pad { position:relative;width:100%;height:100%;background:transparent!important; }
.board-control-layout .tack-pad-sheet {
    position:absolute;display:block;box-sizing:border-box;margin:0;
    background:var(--postit-paper);color:inherit;border:1px solid color-mix(in srgb,var(--postit-paper) 70%,currentColor);
    border-radius:var(--theme-postit-radius,2px);box-shadow:var(--theme-postit-shadow,0 7px 16px #0003);
}
.board-control-layout .tack-pad .sheet-back { inset:8px 0 0 8px; }
.board-control-layout .tack-pad .sheet-middle { inset:4px 4px 4px 4px; }
.board-control-layout .tack-pad .tack-pad-front {
    inset:0 8px 8px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:6px;padding:12px;font:inherit;cursor:pointer;overflow:hidden;
}
.board-control-layout .tack-pad-front > :not(.note-texture-veil) { position:relative;z-index:1; }
.board-control-layout .tack-pad-front strong { font-size:22px;font-weight:800; }
.board-control-layout .tack-pad-front small { font-size:10px; }
.board-control-layout .tack-pad-front .tool-icon { width:24px;height:24px; }
.board-control-layout .tack-pad-front:hover:not(:disabled) { filter:brightness(1.04); }
.board-control-layout .tack-pad-front:focus-visible { outline:2px solid var(--control-accent);outline-offset:2px; }
.board-control-layout .tack-pad-front:disabled { cursor:default; }

/* tackora-board-controls-272: theme-driven controls and movable/peelable widgets. */
.board-control-layout .control-hud .board-hud-button.active,
.board-control-layout .control-hud .board-hud-button:active,
.board-control-layout .control-tool-stack .board-edit-palette button.active,
.board-control-layout .control-tool-stack .board-edit-palette button:active {
    background:color-mix(in srgb,var(--control-accent) 18%,var(--control-panel-bg))!important;
    color:var(--control-text)!important;border-color:var(--control-accent)!important;
}
.board-control-layout .board-element .widget-move-handle {
    opacity:0;background:var(--control-panel-bg);color:var(--control-text);
    border:1px solid var(--control-line);transition:opacity .12s ease;touch-action:none;
}
.board-control-layout .board-element:hover .widget-move-handle,
.board-control-layout .board-element:focus-within .widget-move-handle { opacity:1; }
@media(hover:none) { .board-control-layout .board-element .widget-move-handle { opacity:1; } }
.board-control-layout .js-tack-pad-front { touch-action:none;user-select:none;-webkit-user-select:none; }
.board-control-layout .js-tack-pad-front.is-peeling { opacity:.65; }
.note-peel-ghost {
    width:140px!important;height:120px!important;padding:14px;pointer-events:none!important;
    z-index:35050!important;box-shadow:0 10px 22px #0005;transform:rotate(-4deg);
    display:flex!important;align-items:flex-start;justify-content:flex-start;overflow:hidden;
}
.note-peel-ghost strong { position:relative;z-index:1;font-size:12px;font-weight:600; }
@media(prefers-reduced-motion:reduce) { .board-control-layout .widget-move-handle { transition:none; } }

/* Account status: explicit selection, same status colors as the account indicator. */
.board-control-layout .board-account-presence-settings .presence-status-buttons button {
    display:flex;align-items:center;gap:7px;min-height:30px;
    background:var(--control-panel-bg)!important;color:var(--control-text)!important;border:1px solid var(--control-line);
}
.board-control-layout .board-account-presence-settings .presence-status-buttons button:hover {
    background:color-mix(in srgb,var(--control-text) 9%,var(--control-panel-bg))!important;
}
.board-control-layout .board-account-presence-settings .presence-status-buttons button.active {
    background:color-mix(in srgb,var(--control-accent) 22%,var(--control-panel-bg))!important;
    border-color:var(--control-accent)!important;color:var(--control-text)!important;font-weight:700;
    box-shadow:inset 0 0 0 1px var(--control-accent);
}
.presence-status-buttons .account-presence-dot {
    position:static;flex:0 0 8px;width:8px;height:8px;border:0;box-sizing:border-box;
}
.presence-selected-check { margin-left:auto;visibility:hidden; }
.presence-status-buttons button.active .presence-selected-check { visibility:visible; }
