/* AccSota CRM — Initial Loader */
#rmInitialLoader{
  position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#0d1b35 0%,#0f2557 50%,#1a3a8f 100%);
  flex-direction:column;gap:18px;z-index:999999;transition:opacity .4s ease;
}
#rmInitialLoader .rm-spin{
  width:48px;height:48px;border:4px solid rgba(255,255,255,.15);
  border-top-color:#10b981;border-radius:50%;
  animation:rmSpinAnim .75s linear infinite;
}
@keyframes rmSpinAnim{to{transform:rotate(360deg)}}
#rmInitialLoader .rm-logo{
  width:64px;height:64px;border-radius:20px;
  background:linear-gradient(135deg,#10b981,#059669);
  display:flex;align-items:center;justify-content:center;
  font-size:26px;font-weight:800;color:#fff;font-family:'Inter',Arial,sans-serif;
  box-shadow:0 12px 40px rgba(16,185,129,.35);
}
#rmInitialLoader .rm-label{
  color:rgba(255,255,255,.75);font-size:14px;font-weight:600;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
#rmInitialLoader .rm-sub{
  color:rgba(255,255,255,.35);font-size:12px;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* Server-First loading bar */
.sf-bar{
  position:fixed;top:0;left:0;height:3px;z-index:999999;
  background:linear-gradient(90deg,#10b981,#2563eb);
  width:0;opacity:0;transition:width .3s ease,opacity .2s;
  pointer-events:none;
}
.sf-bar.on{
  opacity:1;
  animation:sfBarAnim 2s ease-in-out infinite;
}
@keyframes sfBarAnim{
  0%{width:0}
  50%{width:70%}
  100%{width:95%}
}
.sf-bar.done{
  width:100%;opacity:0;transition:width .1s,opacity .3s .1s;
}

/* Connection banner */
.connection-banner{
  position:fixed;top:0;left:0;right:0;z-index:999999;
  background:#ef4444;color:#fff;text-align:center;
  padding:8px 16px;font-size:13px;font-weight:600;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  animation:slideDown .3s ease;
}
@keyframes slideDown{from{transform:translateY(-100%)}to{transform:translateY(0)}}

/* Skeleton loading */
@keyframes skeletonPulse{
  0%{opacity:.6}50%{opacity:.3}100%{opacity:.6}
}
.skeleton{
  background:var(--border);border-radius:8px;
  animation:skeletonPulse 1.5s ease-in-out infinite;
}

/* Print area */
.print-area{display:none}
@media print{
  body > *:not(.print-area){display:none !important}
  .print-area{display:block !important}
  .no-print{display:none !important}
}
