#ak-project-loader {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 950;
  background: rgba(32, 32, 32, 0.817);
  backdrop-filter: blur(2px);
}

#ak-project-loader[data-open="0"] {
  display: none;
}

#ak-project-loader[data-open="1"] {
  display: flex;
  opacity: 0;
  animation: akLoaderReveal 0s 160ms forwards;
}

/* Keep the shared spinner above the plan dialog during reads and handoffs. */
#ak-project-loader[data-open="1"][data-plan-loading="1"] {
  z-index: 100001;
  animation: none;
  opacity: 1;
}

.ak-loader__spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #ffffff;
  animation: wave 2s ease-in infinite;
}

@keyframes wave {
  0% {
    box-shadow:
      0 0 0 0px rgba(255, 255, 255, 1),
      0 0 0 20px rgba(255, 255, 255, 0.2),
      0 0 0 40px rgba(255, 255, 255, 0.6),
      0 0 0 60px rgba(255, 255, 255, 0.4),
      0 0 0 80px rgba(255, 255, 255, 0.2);
  }
  100% {
    box-shadow:
      0 0 0 80px rgb(255, 255, 255),
      0 0 0 60px rgba(255, 255, 255, 0.2),
      0 0 0 40px rgba(255, 255, 255, 0.4),
      0 0 0 20px rgba(255, 255, 255, 0.6),
      0 0 0 0px rgba(255, 255, 255, 1);
  }
}
    

@keyframes akspin {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes akLoaderReveal {
  to { opacity: 1; }
}

/* DXF controls belong to the loader UI, outside its zoomable drawing stage. */
#pdf-import-camera-controls {
  left: var(--s20-p-);
  bottom: var(--s20-p-);
  background: var(--ak-white-sec);
}
#pdf-import-camera-controls button:disabled { opacity: .4; cursor: default; }
#pdf-import-viewport[data-navigation-tool="pan"] { cursor: grab !important; }
#pdf-import-viewport[data-navigation-tool="pan"][data-navigation-dragging] { cursor: grabbing !important; }
#pdf-import-viewport[data-navigation-tool="zoom-area"] { cursor: crosshair !important; }
#pdf-import-viewport > .canvas-zoom-area {
  border-color: var(--ak-white);
  background: rgba(255,255,255,.12);
}
#pdf-import-wrap.is-dxf #pdf-import-sidebar {
  width: 300px !important;
  flex: 0 0 300px;
  padding: var(--s18-p-) !important;
}
#dxf-controls {
  display: flex;
  flex-direction: column;
  gap: var(--s12-p-);
  color: var(--ak-white-sec);
  font-family: var(--font-family);
  font-size: var(--app_font_small-size-ui);
  line-height: 1.4;
}
#dxf-controls p { margin: 0; }
#dxf-controls p:empty, #dxf-connection-controls:not(:has(button:not([hidden]))) { display: none; }
#dxf-controls .dxf-filename { color: var(--ak-white); overflow-wrap: anywhere; }
#dxf-controls .dxf-unit-label { display: flex; align-items: center; justify-content: space-between; gap: var(--s12-p-); }
#dxf-controls select {
  min-width: 110px;
  max-width: 60%;
  min-height: var(--s32-p-);
  padding: 0 var(--s12-p-);
  border: 1px solid var(--ak-white-sec);
  border-radius: var(--ak-radius-pill);
  background: var(--ak-vertex-fill);
  color: var(--ak-white);
  font: inherit;
}
#dxf-controls option { background: var(--ak-dark); color: var(--ak-white); }
#dxf-controls .pdf-import-btn { padding: var(--s8-p-) var(--s14-p-) !important; line-height: 1.3 !important; }
#dxf-connection-controls { display: flex; flex-wrap: wrap; gap: var(--s8-p-); }
#dxf-controls .pdf-import-selection-overlay {
  position: static !important;
  min-width: 0 !important;
  max-width: none !important;
  box-shadow: none !important;
  margin: 0;
}
#dxf-controls .pdf-import-sel-overlay-note { font-size: var(--app_font_mid-size-ui) !important; line-height: 1.4 !important; }
#dxf-layer-options summary { cursor: pointer; color: var(--ak-white); }
#dxf-layers { display: grid; gap: var(--s8-p-); max-height: 180px; overflow: auto; margin: var(--s12-p-) 0; }
#dxf-layer-options label { display: flex; align-items: flex-start; gap: var(--s8-p-); overflow-wrap: anywhere; }
#dxf-layer-options input { flex: 0 0 auto; margin-top: 3px; accent-color: var(--ak-feedbackbg); }
#dxf-status { color: var(--ak-white); }
#dxf-status.is-loading::before {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: var(--s8-p-);
  border: 2px solid var(--ak-white-sec);
  border-top-color: transparent;
  border-radius: 50%;
  animation: dxfLoaderSpin 1s linear infinite;
}
@keyframes dxfLoaderSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #dxf-status.is-loading::before { animation: none; } }
@media (max-width: 600px) {
  #pdf-import-wrap.is-dxf #pdf-import-bar { flex-wrap: wrap !important; gap: var(--s8-p-) !important; }
  #pdf-import-wrap.is-dxf .pdf-import-bar-group--left { order: 0; }
  #pdf-import-wrap.is-dxf .pdf-import-bar-group--right { order: 1; flex: 0 0 auto !important; }
  #pdf-import-wrap.is-dxf .pdf-import-bar-group--center { order: 2; flex: 1 0 100% !important; gap: var(--s8-p-) !important; }
  #pdf-import-wrap.is-dxf .pdf-import-bar-group--center .pdf-import-btn { flex: 1; padding: var(--s8-p-) !important; }
  #pdf-import-wrap.is-dxf .pdf-import-btn-label { white-space: normal !important; }
  #pdf-import-wrap.is-dxf #pdf-import-body { flex-direction: column; }
  #pdf-import-wrap.is-dxf #pdf-import-sidebar {
    width: 100% !important;
    flex: 0 1 auto;
    max-height: 38vh;
    padding: var(--s12-p-) !important;
  }
  #dxf-controls { gap: var(--s8-p-); }
}
