.loading-screen { gap: 20px; }
.loading-brand { display: flex; align-items: center; justify-content: center; width: min(240px, 65vw); min-height: 70px; }
.loading-brand img:not([hidden]) { display: block; max-width: 100%; max-height: 100px; width: auto; height: auto; object-fit: contain; }
.loading-progress { display: block; width: 22px; height: 22px; border: 2px solid color-mix(in srgb, var(--text-secondary) 20%, transparent); border-top-color: var(--text-secondary); border-radius: 50%; animation: workspace-loading-turn .85s linear infinite; }
@keyframes workspace-loading-turn { to { transform: rotate(360deg); } }
#content.has-workspace-watermark { position: relative; isolation: isolate; }
#content.has-workspace-watermark::before { content: ""; position: fixed; right: var(--workspace-watermark-right, 24px); bottom: 28px; width: var(--workspace-watermark-size, 320px); height: var(--workspace-watermark-size, 320px); background: var(--workspace-watermark-image) center / contain no-repeat; opacity: .04; filter: var(--app-logo-workspace-filter, none); pointer-events: none; user-select: none; z-index: -1; }
.workspace-watermark-option { display: flex; align-items: flex-start; gap: 10px; margin: 18px 0; color: var(--card-text); font-size: 14px; line-height: 1.5; }
.workspace-watermark-option input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--accent); }
.workspace-watermark-option small { display: block; color: var(--text-secondary); font-size: 12px; }
@media (max-width: 600px) { .loading-brand { width: min(180px, 65vw); } #content.has-workspace-watermark::before { bottom: 18px; } }
@media (prefers-reduced-motion: reduce) { .loading-progress { animation: none; } }
@media print { #content.has-workspace-watermark::before { display: none; } }

/* All module placeholders share the resolved workspace mark. */
.loading-mark { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 48px; flex-shrink: 0; }
.loading-mark i { display: none; }
.loading-mark::after { content: ""; width: 20px; height: 20px; border: 2px solid var(--border-default); border-top-color: var(--text-secondary); border-radius: 50%; animation: workspace-loading-turn .85s linear infinite; }
.workspace-brand-loaded .loading-mark { background: var(--workspace-loading-logo) center / contain no-repeat; }
.workspace-brand-loaded .loading-mark::after { display: none; }
.loading-screen p { color: var(--text-secondary); }
@media (prefers-reduced-motion: reduce) { .loading-mark::after { animation: none; } }
@media (forced-colors: active) { #content.has-workspace-watermark::before { display: none; } }

.loading-brand img:not([hidden]) { color-scheme: var(--workspace-color-scheme, light); background: light-dark(transparent, #fff); border-radius: 12px; padding: 8px; }
.workspace-brand-loaded .loading-mark { color-scheme: var(--control-color-scheme, light); background-color: light-dark(transparent, #fff); border-radius: 8px; padding: 4px; background-origin: content-box; }

/* The white product logo always keeps its own contrasting surface. */
.workspace-brand-boris .loading-brand img:not([hidden]),
.workspace-brand-loaded.workspace-brand-boris .loading-mark { background-color: #193d77; forced-color-adjust: none; }
