/* Navigation feedback stays out of the way and never adds a loading delay. */
body .dekan-page-loader { position: fixed; inset: 0; z-index: 20000; display: block; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 160ms ease, visibility 160ms; }
body.dekan-is-navigating .dekan-page-loader { opacity: 1; visibility: visible; pointer-events: none; }
.dekan-navigation-progress { position: absolute; top: 0; left: 0; right: 0; height: 3px; overflow: hidden; background: rgb(48 86 211 / 12%); }
.dekan-navigation-progress span { display: block; height: 100%; width: 35%; background: #3056d3; border-radius: 4px; animation: dekan-navigation-progress 1.5s cubic-bezier(.4,0,.2,1) infinite; }
body .dekan-page-loader-card { position: absolute; right: 24px; bottom: 24px; width: auto; max-width: min(420px,calc(100vw - 32px)); min-height: 76px; display: flex; align-items: center; gap: 13px; padding: 16px 20px; background: #fff; border: 1px solid #e6ebf3; border-radius: 14px; box-shadow: 0 10px 38px rgb(20 36 70 / 10%); text-align: left; opacity: 0; transform: translateY(8px); transition: opacity 200ms ease, transform 300ms cubic-bezier(.22,1,.36,1); overflow: visible; }
body.dekan-loading-notice .dekan-page-loader-card { opacity: 1; transform: translateY(0); pointer-events: auto; }
body .dekan-page-loader-card::before, body .dekan-page-loader-card::after { display: none; }
body .dekan-page-loader-logo { display: block; width: 36px; height: 36px; flex-shrink: 0; margin: 0; padding: 0; border: 0; border-radius: 10px; background: transparent; box-shadow: none; animation: none; }
body .dekan-page-loader-logo img { width: 36px; height: 36px; object-fit: contain; border-radius: 10px; }
.dekan-loader-copy { min-width: 0; }
body .dekan-page-loader-card strong { display: block; color: #17223b; font-size: 12px; line-height: 1.5; letter-spacing: 0; margin: 0; font-weight: 600; }
body .dekan-page-loader-card small { display: block; color: #65728a; font-size: 11px; line-height: 1.6; margin-top: 3px; }
.dekan-loader-dismiss { align-self: flex-start; background: transparent; color: #65728a; border: 0; padding: 5px; min-width: 28px; min-height: 28px; border-radius: 6px; }
.dekan-loader-dismiss[hidden] { display: none; }
.dekan-loader-dismiss:focus-visible { outline: 2px solid #3056d3; outline-offset: 2px; }
html[data-dekan-theme="night"] body .dekan-page-loader { background: none; }
html[data-dekan-theme="night"] body .dekan-page-loader-card { background: #151f30; border-color: #2a374d; }
html[data-dekan-theme="night"] body .dekan-page-loader-card strong { color: #edf2ff; }
html[data-dekan-theme="night"] body .dekan-page-loader-card small,
html[data-dekan-theme="night"] .dekan-loader-dismiss { color: #a4b2ca; }
@keyframes dekan-navigation-progress { from { transform: translateX(-105%); } to { transform: translateX(390%); } }
@media (max-width: 640px) { body .dekan-page-loader-card { right: 16px; bottom: max(16px,env(safe-area-inset-bottom)); padding: 14px 16px; } }
@media (prefers-reduced-motion: reduce) { .dekan-navigation-progress span { animation: none; width: 100%; opacity: .7; } body .dekan-page-loader, body .dekan-page-loader-card { transition: none; transform: none; } }
