/* Shared asynchronous controls retain their state while server jobs are active. */
[data-async-control][aria-busy="true"]{background:var(--soft,#d8d8d8)!important;color:var(--muted,#555)!important;filter:grayscale(1);cursor:wait!important;opacity:.75}
[data-async-control][aria-busy="true"]::before{content:"";display:inline-block;width:.8em;height:.8em;margin-right:.5em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:edition-spin 1s linear infinite}
@keyframes edition-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){[data-async-control][aria-busy="true"]::before{animation:none}}
.edition-activity,.edition-activity p{overflow-wrap:anywhere;min-width:0}.edition-activity:empty{display:none}
#edition-status{max-width:calc(100vw - 32px);overflow-wrap:anywhere}

#edition-status[hidden]{display:none}#edition-status:not([hidden]):not(:empty){position:fixed;bottom:16px;left:16px;transform:none;z-index:1000;padding:12px 16px;border-radius:4px;background:#292b27;color:#fff;font:14px/1.5 system-ui,sans-serif;box-shadow:0 4px 16px #0003}
@media print{.edition-activity,#edition-status{display:none!important}}

#edition-status.error{border-left:5px solid var(--site-danger)}

.edition-request-status{position:fixed;right:16px;bottom:16px;z-index:999;padding:10px 14px;border:1px solid var(--line,#aaa);border-radius:4px;background:var(--panel,#f5f2eb);color:var(--ink,#222);font:14px/1.5 system-ui,sans-serif;max-width:calc(100vw - 32px);box-shadow:0 2px 8px #0002}
.edition-request-status[hidden],.reader-load-state[hidden]{display:none}
.reader-load-state{position:sticky;top:calc(var(--site-nav-height,64px) + 100px);z-index:3;padding:12px 16px;margin:0 0 18px;border:1px solid var(--line);background:var(--panel);font:15px/1.5 system-ui,sans-serif}
.reader-load-state p{margin:0 0 8px}.reader-load-state button{margin-right:12px}.reading-load-message{color:var(--muted);font:14px/1.5 system-ui,sans-serif}
@media print{.edition-request-status,.reader-load-state,.reading-load-message{display:none!important}}
