/* Shared loading screen: opaque theme surface, canonical mark and quiet motion. */
.kag-loading{display:inline-flex;align-items:center;justify-content:center;gap:5px;vertical-align:middle;margin-right:9px}
.kag-loading>i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.45;animation:kag-pulse 1.2s ease-in-out infinite}
.kag-loading>i:nth-child(2){animation-delay:.15s}.kag-loading>i:nth-child(3){animation-delay:.3s}
/* Explicitly reset the former toast geometry, including styles retained by an older page. */
#kagnode-page-loading{position:fixed;inset:0;width:auto;height:auto;min-width:0;min-height:0;max-width:none;max-height:none;margin:0;transform:none;translate:none;rotate:none;scale:none;filter:none;backdrop-filter:none;perspective:none;contain:none;z-index:1000;display:grid;place-items:center;padding:24px;border:0;border-radius:0;box-shadow:none;box-sizing:border-box;background:var(--bg,var(--page,#101010));color:var(--text,var(--ink,#f4f5f7));font:500 16px/1.5 system-ui;cursor:progress;isolation:isolate;outline:none;pointer-events:auto;animation:none;transition:none}
#kagnode-page-loading[hidden],.kag-page-loading[hidden],.kag-loading-dismiss[hidden]{display:none}
/* Share the existing navigation strip and keep it above the opaque loading screen. */
#kagnode-page-progress{position:fixed;inset:0 auto auto 0;width:0;height:2px;margin:0;border:0;border-radius:0;transform:none;box-sizing:border-box;z-index:1001;background:var(--accent,#2563eb);pointer-events:none;transition:none}
.page-loading #kagnode-page-progress{width:75%;transition:width 5s cubic-bezier(.1,.7,.1,1)}
.kag-loading-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center;max-width:100%}
.kag-page-loading .kag-loading-logo{display:block;width:76px;height:76px;flex:none;fill:#2563eb;color:#2563eb}
.kag-loading-status{display:flex;flex-direction:column;align-items:center;gap:20px}
.kag-page-loading .kag-loading{gap:8px;margin:0;color:var(--accent,#2563eb)}.kag-page-loading .kag-loading>i{width:8px;height:8px}
.kag-loading-dismiss{position:absolute;top:calc(100% + 32px);white-space:nowrap;border:1px solid var(--border,var(--line,#404040));border-radius:12px;background:transparent;color:var(--muted,#888);font:inherit;font-size:12px;min-height:44px;padding:10px 16px;cursor:pointer}
.kag-loading-dismiss:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:4px}
@keyframes kag-pulse{50%{opacity:1;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.kag-loading>i{animation:none}}
@media(prefers-reduced-motion:reduce){.page-loading #kagnode-page-progress{transition:none}}
@media(max-width:480px){.kag-page-loading .kag-loading-logo{width:64px;height:64px}.kag-loading-content{gap:24px}}
