/* 운영 안정화·관리 편의 통합 보정 */
.admin-list-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.admin-list-search{flex:1 1 240px;min-width:0;min-height:42px;padding:10px 13px;border:1px solid var(--border-color);border-radius:13px;background:var(--card-bg);color:var(--text-main);font:inherit}
.admin-list-search:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(139,92,246,.15);outline:none}
.admin-list-result{font-size:12px;font-weight:800;color:var(--text-sub);white-space:nowrap}
.admin-search-empty{padding:28px 16px;text-align:center;color:var(--text-sub);border:1px dashed var(--border-color);border-radius:16px}
.ui-global-loader{position:fixed;left:0;right:0;top:0;height:3px;z-index:9999;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,var(--primary),transparent);background-size:200% 100%;transition:opacity .15s}
.ui-global-loader.active{opacity:1;animation:danmiLoader 1s linear infinite}@keyframes danmiLoader{to{background-position:-200% 0}}
.is-busy{pointer-events:none!important;opacity:.68!important;cursor:wait!important}
.button-spinner{display:inline-block;width:13px;height:13px;margin-right:6px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:danmiSpin .65s linear infinite}@keyframes danmiSpin{to{transform:rotate(360deg)}}
.empty-song-message,.admin-empty,.route-empty-state,.notice-empty,.schedule-empty{min-height:110px;display:grid;place-items:center;text-align:center;padding:24px;border:1px dashed color-mix(in srgb,var(--primary) 25%,var(--border-color));border-radius:18px;background:color-mix(in srgb,var(--primary) 4%,transparent);color:var(--text-sub)}
.empty-song-message::before,.admin-empty::before{content:"✦";display:block;font-size:20px;color:var(--primary);margin-bottom:5px}
.admin-quick-backup{display:inline-flex;align-items:center;gap:6px}
.ui-error-boundary{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:5000;max-width:min(560px,calc(100vw - 28px));padding:13px 16px;border:1px solid rgba(220,38,38,.35);border-radius:15px;background:var(--card-bg);color:var(--text-main);box-shadow:0 16px 44px rgba(20,10,36,.2);font-weight:700}
@media(max-width:760px){.admin-list-toolbar{align-items:stretch}.admin-list-search{flex-basis:100%}.admin-list-result{text-align:right}.ui-error-boundary{bottom:88px}}

/* 관리자 검색 결과는 일치 항목만 실제로 표시 */
.admin-search-filtered-out,
.admin-song-item[hidden],
.admin-homework-item[hidden],
.admin-notice-item[hidden]{display:none!important}

/* 서버 통신 상태를 확실히 확인할 수 있는 상단 표시 */
.ui-global-loader{
  left:50%;right:auto;top:14px;height:auto;
  display:flex;align-items:center;gap:8px;
  padding:9px 13px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border-color));
  border-radius:999px;background:color-mix(in srgb,var(--card-bg) 94%,transparent);
  color:var(--text-main);font-size:13px;font-weight:800;
  box-shadow:0 10px 30px rgba(20,10,36,.18);
  transform:translate(-50%,-18px);opacity:0;visibility:hidden;
  background-size:auto;transition:opacity .18s,transform .18s,visibility .18s;
}
.ui-global-loader.active{opacity:1;visibility:visible;transform:translate(-50%,0);animation:none}
.ui-global-loader-spinner{width:14px;height:14px;border:2px solid color-mix(in srgb,var(--primary) 28%,transparent);border-top-color:var(--primary);border-radius:50%;animation:danmiSpin .65s linear infinite}
@media(max-width:760px){.ui-global-loader{top:10px;font-size:12px;padding:8px 11px}}
