/* Global, nonmodal tools. Only the visible window intercepts pointer events. */
:root{--dock-height:108px;--dock-edge:18px;--dock-width:370px}
body{padding-bottom:var(--dock-height)}
.sheet-dock{inset:auto max(var(--dock-edge),env(safe-area-inset-right)) max(var(--dock-edge),env(safe-area-inset-bottom)) auto;display:block;width:var(--dock-width);max-width:calc(100vw - 24px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;z-index:3600;pointer-events:none}
.dock-toolbar,.workspace-panel{pointer-events:auto;border:1px solid var(--stroke);border-top:2px solid var(--accent);background:var(--white,#fff);box-shadow:0 8px 32px #1010182e;border-radius:0}
.dock-toolbar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 10px;border-bottom:1px solid var(--stroke);color:var(--quiet);font-size:10px;font-weight:600;letter-spacing:.3px}
.sheet-dock #dockCollapse{display:flex;align-items:center;justify-content:space-between;gap:12px;width:auto;min-height:28px;padding:3px 5px;margin:0;border:0;background:transparent;color:var(--ink);font-size:10px;text-transform:none;letter-spacing:0;box-shadow:none}
.dock-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:5px;gap:3px}
.sheet-dock .dock-tool{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0;min-height:60px;padding:6px 2px;border:1px solid transparent;border-radius:0;background:transparent;color:var(--ink);font-size:10px;text-transform:none;letter-spacing:0;box-shadow:none}
.dock-tool svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;color:var(--accent)}
.dock-tool>span{white-space:nowrap}.dock-count{font:9px/1 ui-monospace,monospace;color:var(--quiet)}
.sheet-dock .dock-tool[aria-expanded=true]{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.sheet-dock button:hover,.sheet-dock button:focus-visible{transform:none!important;background:var(--soft)!important;color:var(--accent);box-shadow:none}
.sheet-dock button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.dock-tool>.unread-badge{position:absolute;top:2px;right:4px;margin:0;min-width:16px;height:16px;font-size:10px}
.sheet-dock.is-collapsed{width:155px}.is-collapsed .dock-toolbar-head{padding:5px 8px;border:0}.is-collapsed .dock-toolbar-head>span{display:none}.is-collapsed #dockCollapse{width:100%;min-height:30px}
.dock-toolbar-head>.unread-badge{margin-left:0}.is-collapsed #dockCollapse .unread-badge{margin-left:auto}
.workspace-panel{position:absolute;bottom:calc(100% + 8px);right:0;width:420px;max-width:calc(100vw - 24px);display:flex;flex-direction:column;max-height:min(620px,calc(100dvh - var(--dock-height) - 95px));overflow:hidden}
.workspace-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none;padding:10px 14px;background:var(--soft);border-bottom:1px solid var(--stroke)}
.workspace-panel-head h2{margin:0;font-size:14px;letter-spacing:.1px;text-transform:none}
.sheet-dock .workspace-close{width:32px;min-width:32px;min-height:30px;padding:0;border:1px solid var(--stroke);background:var(--white,#fff);color:var(--ink);font-size:20px;line-height:1}
.workspace-panel-body{overflow:auto;overscroll-behavior:contain;min-height:0;padding:14px;scrollbar-gutter:stable}
.dock-pane{min-width:0}.dock-pane>.hint{font-size:11px;line-height:1.6;margin:0 0 14px}
#panel-diary .card{border:0;padding:0;margin:0;background:transparent;box-shadow:none}
#panel-diary .card>.title-row h2{display:none}#panel-diary .card>.title-row{justify-content:flex-end;margin:0 0 8px}
#panel-diary .hint{font-size:11px;line-height:1.65;margin:0 0 12px}
#panel-diary textarea{min-height:125px;font-size:13px;line-height:1.65}
#panel-diary .slot-list{gap:12px}#panel-diary .counter-row{margin-bottom:10px}
.workspace-panel .journal-row{grid-template-columns:40px minmax(0,1fr);padding:12px;gap:10px;background:var(--white,#fff);border-radius:0}
.workspace-panel .journal-time{font-size:10px}.workspace-panel .journal-row .roll-history-top{font-size:11px}
.workspace-panel .empty-state{padding:24px 12px}.workspace-panel .empty-state h2{font-size:17px}.workspace-panel .empty-state p{font-size:11px}
#rollModal{position:fixed;inset:auto max(var(--dock-edge),env(safe-area-inset-right)) calc(var(--dock-height) + max(var(--dock-edge),env(safe-area-inset-bottom)) + 8px) auto;width:370px;max-width:calc(100vw - 24px);max-height:calc(100dvh - var(--dock-height) - 95px);padding:0;z-index:3601;background:transparent;backdrop-filter:none;overflow:visible;pointer-events:none}
#rollModal.open{display:block}
#rollModal .roll-panel{width:100%;max-height:min(570px,calc(100dvh - var(--dock-height) - 95px));margin:0;padding:14px;border:1px solid var(--stroke);border-top:2px solid var(--accent);border-radius:0;background:var(--white,#fff);box-shadow:0 8px 32px #1010182e;overflow:auto;overscroll-behavior:contain;pointer-events:auto;transform:none}
#rollModal .roll-panel::before{display:none}#rollModal .roll-panel:hover{box-shadow:0 8px 32px #1010182e}
#rollModal .title-row{margin:0 0 12px;gap:10px;align-items:center}#rollModal h2{font-size:14px;line-height:1.35}#rollModal h3{font-size:11px;margin:0 0 10px}
#rollModal .title-row>.secondary{padding:5px 9px;min-height:30px;font-size:10px}
#rollModal .roll-subsection{padding:12px;margin:12px 0;border-radius:0;background:var(--soft)}
#rollModal .roll-subsection>h3{display:none}#rollModal .grid-2{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
#rollModal label{font-size:10px;line-height:1.4;margin-bottom:5px}#rollModal input,#rollModal select{font-size:12px;min-height:36px;padding:7px;width:100%;min-width:0}
#rollModal .toggle-button{font-size:10px;min-height:36px;padding:6px}
.roll-mode-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--stroke);gap:6px}
.roll-mode-tabs button{padding:9px;min-height:36px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--quiet);font-size:11px;text-transform:none;letter-spacing:0}
.roll-mode-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent);background:var(--soft)}
#rollModal .simple-dice-row{display:flex;justify-content:space-between;align-items:center;gap:6px;margin:2px 0 15px}
#rollModal .die-shape-button{width:48px;height:48px;min-width:0;min-height:0;font-size:11px;margin:0;padding:0;flex:0 1 48px}
#rollModal .die-d10{height:34px}#rollModal .roll-history-entry{padding:10px;margin:0;font-size:11px}
#rollModal .roll-history-top{font-size:11px}#rollModal .roll-detail,#rollModal .hint{font-size:11px;line-height:1.5}
.roll-latest-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}.roll-latest-heading h3{margin:0!important}
#rollModal .roll-latest-heading .site-action{font-size:10px;min-height:28px;padding:5px 7px}
#rollModal #cloudRollControls:empty{display:none}#rollModal .cloud-roll-controls{gap:8px;font-size:11px;flex-wrap:wrap;margin:8px 0}
#rollModal #cloudRollControls .hint{font-size:10px}#rollModal .server-roll-output{margin:8px 0;padding:8px;font-size:10px}
/* Compact chat keeps message scrolling separate from its composer. */
.workspace-panel:has([data-dock-pane=chat]:not([hidden])) .workspace-panel-body{padding:10px}
.workspace-panel .social-controls{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:0}
.workspace-panel .social-controls>label{flex:1 1 130px;min-width:0;max-width:none;font-size:10px}
.workspace-panel .social-controls select{min-height:34px;font-size:12px;padding:6px}
.workspace-panel .social-controls>.site-action{min-height:28px;padding:4px 7px;font-size:10px}
.workspace-panel .chat-panel{border:0}.workspace-panel .chat-messages{min-height:140px;max-height:230px;padding:0 8px 8px;overscroll-behavior:contain}
.workspace-panel .social-message{gap:8px;padding:12px 0}.workspace-panel .social-avatar{width:28px;height:28px}
.workspace-panel .message-main header{gap:6px;font-size:11px}.workspace-panel .message-main time{font-size:9px}
.workspace-panel .formatted-text{font-size:12px;line-height:1.65}.workspace-panel .social-record-actions{gap:6px}
.workspace-panel .social-record-actions .site-action{font-size:9px;min-height:26px;padding:3px 6px}
.workspace-panel .social-composer{padding:10px 0 0}.workspace-panel .composer-top{gap:8px;margin-bottom:8px}
.workspace-panel .chat-author-choice{max-width:100%;gap:8px}.workspace-panel .chat-author-choice select{font-size:12px;min-height:32px;padding:5px}
.workspace-panel .social-composer textarea{min-height:76px;font-size:13px;resize:vertical}
.workspace-panel .format-toolbar{gap:4px}.workspace-panel .format-toolbar button{font-size:10px;min-height:26px;padding:4px 6px}
.workspace-panel .composer-bottom{gap:8px}.workspace-panel .composer-bottom .site-action{font-size:10px;min-height:30px;padding:5px 8px}
.workspace-panel .upload-limit{font-size:9px;flex-basis:100%}.workspace-panel .composer-state{font-size:9px}
.workspace-panel .social-gallery-slide img,.workspace-panel .social-gallery-slide video{height:180px}.workspace-panel .social-gallery{margin:10px 0}
.workspace-panel .chat-sheet-card{padding:10px}.workspace-panel .chat-sheet-card h3{font-size:14px}
@media(max-width:760px){
 :root{--dock-edge:12px;--dock-width:340px}
 .workspace-panel{width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - var(--dock-height) - 82px)}
 #rollModal .roll-panel{max-height:calc(100dvh - var(--dock-height) - 82px)}
 #rollModal input,#rollModal select,.workspace-panel input,.workspace-panel select,.workspace-panel textarea{font-size:16px}
 .sheet-dock .dock-tool{font-size:9px;min-height:60px}.dock-count{font-size:8px}
 .workspace-panel .chat-messages{max-height:190px}.workspace-panel-body{padding:10px}
}
@media(max-height:620px){.workspace-panel,#rollModal .roll-panel{max-height:calc(100dvh - var(--dock-height) - 35px)}}
@media print{#sheetDock,#rollModal{display:none!important}body{padding-bottom:0}}
