html, body, #root, .canvas { height: 100%; margin: 0; } .canvas { display: grid; grid-template-rows: minmax(0, 1fr) auto auto; } .canvas > .excalidraw { min-height: 0; } body { font: 14px system-ui, sans-serif; } .loading { display: grid; height: 100%; place-items: center; } .pi-footer { display: flex; gap: 0.5rem; align-items: center; padding: 0.25rem 0.5rem; min-width: 0; overflow-wrap: anywhere; background: Canvas; color: CanvasText; color-scheme: light; font-size: 0.85rem; } .canvas:has(.theme--dark) .pi-footer { color-scheme: dark; } .pi-icon-button, .recovery-actions button { display: inline-flex; gap: 0.5rem; align-items: center; justify-content: center; padding: 0.5rem; border: 1px solid var(--default-border-color, #ced4da); border-radius: var(--border-radius-lg, 0.5rem); background: var(--default-bg-color, #fff); color: inherit; font: inherit; cursor: pointer; } .pi-icon-button { position: relative; flex: none; min-width: 2.25rem; min-height: 2.25rem; } .pi-icon-button:hover, .recovery-actions button:hover { background: var(--button-hover-bg, #f1f0ff); } .pi-icon-button:focus-visible, .recovery-actions button:focus-visible { outline: 2px solid var(--color-primary, #6965db); outline-offset: 2px; } .notification-unread-dot { position: absolute; top: 0.1rem; right: 0.1rem; width: 0.4rem; height: 0.4rem; border-radius: 50%; background: currentColor; } .excalidraw .pi-sidebar { min-height: 0; } .excalidraw .pi-notice { box-sizing: border-box; display: flex; flex: 1; flex-direction: column; gap: 0.75rem; min-height: 0; padding: 0 1rem 0.75rem; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; } .pi-notice pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.45; } .conflict { box-sizing: border-box; padding: 0.5rem 0.75rem; border-top: 1px solid; max-height: 40vh; overflow: auto; background: Canvas; color: CanvasText; color-scheme: light; } .canvas:has(.theme--dark) .conflict { color-scheme: dark; } .conflict p { margin: 0.3rem 0; overflow-wrap: anywhere; } .recovery-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; } .recovery-confirmation { margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px solid; }