:root { color-scheme: light; }
body.auth-pending { visibility: hidden; }
body.auth-ready { visibility: visible; }
body { background: #eef3f5; color: #172b3a; }
.grid-paper {
  background-image: linear-gradient(rgba(20, 37, 54, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 37, 54, .035) 1px, transparent 1px);
  background-size: 24px 24px;
}
.panel {
  background: rgba(255, 255, 255, .96);
  border: 1px solid #d9e2e7;
  box-shadow: 0 8px 22px rgba(25, 51, 67, .055);
}
.tab-active { color: #075b82; border-bottom: 3px solid #0b6e99; background: #f7fbfc; }
.dropzone { border: 1px dashed #a7bac5; transition: .2s ease; }
.dropzone:hover, .dropzone.is-dragging { border-color: #0b6e99; background: #f4fafc; }
.pulse { animation: pulse 2s infinite; }
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(115, 181, 48, .35); }
  50% { box-shadow: 0 0 0 5px rgba(115, 181, 48, 0); }
}
.table-scroll { scrollbar-color: #94aab6 #eef3f5; }
.table-scroll::-webkit-scrollbar { height: 9px; width: 9px; }
.table-scroll::-webkit-scrollbar-thumb { background: #94aab6; border-radius: 8px; }
.modal-backdrop { background: rgba(11, 27, 39, .62); backdrop-filter: blur(3px); }
.tooltip { position: relative; }
.tooltip:hover::after {
  content: attr(data-tip);
  position: absolute;
  z-index: 20;
  left: 0;
  top: calc(100% + 8px);
  width: 220px;
  padding: 8px 10px;
  background: #142536;
  color: #fff;
  font-size: 11px;
  border-radius: 4px;
  line-height: 1.35;
}
button:disabled { cursor: wait; opacity: .65; }