.gerber-upload-viewer { position: relative; color: #1f3348; font-family: inherit; }
.gerber-upload-viewer__input { display: none; }
.gerber-upload-viewer__dropzone { display: grid; justify-items: center; gap: .7rem; padding: 2.5rem 1rem; border: 1px dashed #aebfd0; border-radius: 1rem; background: #fbfdff; text-align: center; }
.gerber-upload-viewer__dropzone strong { font-size: 1rem; }
.gerber-upload-viewer__dropzone span { color: #68788a; font-size: .86rem; }
.gerber-upload-viewer button { cursor: pointer; }
.gerber-upload-viewer__dropzone button, .gerber-upload-viewer__replace { padding: .7rem 1rem; color: #fff; border: 0; border-radius: .55rem; background: #08b9b0; }
.gerber-upload-viewer__dropzone p { margin: 0; color: #b33445; font-size: .82rem; }
.gerber-upload-viewer__overlay { display: none; position: fixed; z-index: 1000; inset: 0; place-items: center; padding: 1rem; background: rgba(232, 244, 247, .22); backdrop-filter: blur(16px) saturate(.88); }
.gerber-upload-viewer__overlay.is-open { display: grid; }
.gerber-upload-viewer__processing { width: min(360px, calc(100% - 2rem)); padding: 1.1rem 1.15rem 1rem; color: #fff; border: 1px solid rgba(255,255,255,.56); border-radius: .85rem; background: rgba(31,76,78,.27); box-shadow: 0 14px 38px rgba(20,54,61,.16), inset 0 1px rgba(255,255,255,.24); backdrop-filter: blur(20px); text-align: center; }
.gerber-upload-viewer__processing strong { display: block; margin-bottom: .35rem; font-size: .92rem; font-weight: 800; }
.gerber-upload-viewer__processing span { display: block; margin-bottom: .75rem; color: rgba(255,255,255,.88); font-size: .78rem; font-weight: 500; line-height: 1.55; }
.gerber-upload-viewer__processing div { height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.28); }
.gerber-upload-viewer__processing i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #18b9ad, #8de5d5); transition: width .28s ease-out; }
.gerber-upload-viewer__result { display: grid; gap: 1rem; }
.static-board-preview { padding: clamp(1rem,2vw,1.8rem); border: 1px solid #e3e7ec; border-radius: 1.2rem; background: #fff; }
.static-preview-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1.3rem; }
.simple-eyebrow { margin: 0 0 .35rem; color: #5676c9; font-size: .65rem; letter-spacing: .13em; }
.static-preview-heading h2 { margin: 0; font-size: 1.15rem; }
.static-preview-heading > p { max-width: 310px; margin: 0; color: #667085; font-size: .77rem; line-height: 1.7; text-align: left; }
.board-sides-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(1rem,3vw,2.5rem); padding: .4rem 0 1rem; }
.board-side { min-width: 0; text-align: center; }
.board-side-label { margin: 0 0 .7rem; color: #465267; font-size: .72rem; }
.fixed-board-frame { display: grid; min-height: clamp(320px,42vw,520px); place-items: center; overflow: hidden; }
.fixed-board-canvas { position: relative; width: min(100%,540px); aspect-ratio: 1; isolation: isolate; }
.pcb-base { position: absolute; z-index: 0; inset: 7%; border: 2px solid #0d6431; border-radius: 8%; background: #1f7a3e; }
.pcb-layer-stack { position: absolute; z-index: 1; inset: 0; }
.static-gerber-layer { position: absolute; inset: 0; }
.static-gerber-layer svg, .tracespace-board-render svg { display: block; width: 100%; height: 100%; }
.board-side-bottom .pcb-layer-stack { transform: scaleX(-1); }
.with-tracespace-render { display: grid; place-items: center; }
.tracespace-board-render { width: 100%; height: 100%; }
.tracespace-board-render svg { filter: drop-shadow(0 7px 10px rgba(12,66,29,.16)); }
.gerber-upload-viewer__facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 0; overflow: hidden; border: 1px solid #e1e8ee; border-radius: .8rem; background: #e1e8ee; }
.gerber-upload-viewer__facts div { padding: .8rem; background: #fff; }
.gerber-upload-viewer__facts dt { color: #718096; font-size: .72rem; }
.gerber-upload-viewer__facts dd { margin: .32rem 0 0; color: #1e3d61; direction: ltr; font-weight: 700; }
.gerber-upload-viewer__replace { justify-self: start; }
#gerberViewerRoot { margin-top: 1rem; }
#gerberViewerRoot .gerber-preview-error { margin: 0; color: #b33445; font-size: .86rem; }
.admin-modal-body .gerber-upload-viewer { margin-top: 0; }
@media (max-width: 700px) {
  .static-preview-heading { align-items: flex-start; flex-direction: column; }
  .static-preview-heading > p { text-align: right; }
  .board-sides-grid, .gerber-upload-viewer__facts { grid-template-columns: 1fr; }
  .board-sides-grid { gap: .7rem; padding: .5rem 0; }
  .fixed-board-frame { min-height: 340px; }
  .fixed-board-canvas { width: min(100%,420px); }
}
