/* ページ遷移を伴う操作の共通ローディング表示 */
.site-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    background: rgba(15, 23, 42, .34);
    backdrop-filter: blur(2px);
}

.site-loading-overlay[hidden] { display: none; }

.site-loading-dialog {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 150px;
    justify-content: center;
    padding: 15px 22px;
    border: 1px solid rgba(148, 163, 184, .4);
    border-radius: 12px;
    color: #172033;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .2);
    font-size: 14px;
    font-weight: 700;
}

.site-loading-spinner {
    width: 18px;
    height: 18px;
    border: 3px solid #dbe5ef;
    border-top-color: #2372c5;
    border-radius: 50%;
    animation: site-loading-spin .8s linear infinite;
}

@keyframes site-loading-spin { to { transform: rotate(360deg); } }

.is-site-loading { cursor: wait; overflow: hidden; }
.is-site-loading a, .is-site-loading button { cursor: wait; }
a.is-loading, button.is-loading { pointer-events: none; }

@media (prefers-color-scheme: dark) {
    .site-loading-dialog { color: #e6edf7; background: #16243a; border-color: #30445f; }
    .site-loading-spinner { border-color: #334b68; border-top-color: #6cb6ff; }
}
