.sambak-loading, .sambak-loading * { box-sizing: border-box; }
.sambak-loading {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(241, 245, 249, .78);
    backdrop-filter: blur(3px);
    pointer-events: none;
}
.sambak-loading-shell {
    width: min(100%, 680px);
    padding: 22px;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 20px 54px rgba(15, 23, 42, .16);
    font-family: Inter, system-ui, sans-serif;
}
.sambak-loading-head { display: flex; align-items: center; gap: 14px; }
.sambak-loading-spinner { width: 30px; height: 30px; border: 3px solid #fbe2e4; border-top-color: #d91f35; border-radius: 50%; animation: sambak-spin .8s linear infinite; }
.sambak-loading-title { color: #263650; font-size: 15px; font-weight: 700; }
.sambak-loading-note { color: #758399; font-size: 12px; margin-top: 4px; }
.sambak-loading-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 20px; }
.sambak-loading-card { border: 1px solid #e8edf4; border-radius: 12px; padding: 12px; }
.sambak-loading-card:last-child { grid-column: 1 / -1; }
.sambak-loading-line { position: relative; overflow: hidden; height: 8px; margin-top: 10px; background: #e8edf4; border-radius: 6px; }
.sambak-loading-line:first-child { width: 45%; margin-top: 0; }
.sambak-loading-line:nth-child(2) { width: 80%; height: 24px; }
.sambak-loading-line::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,.9), transparent); transform: translateX(-100%); animation: sambak-shimmer 1.2s infinite; }
@keyframes sambak-spin { to { transform: rotate(360deg); } }
@keyframes sambak-shimmer { to { transform: translateX(100%); } }
@media (max-width: 480px) { .sambak-loading-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .sambak-loading-spinner, .sambak-loading-line::after { animation: none; } }
