.saikaila-glb-viewer-wrap {
  width: 100%;
  max-width: 100%;
}

.saikaila-glb-viewer {
  position: relative;
  width: 100%;
  height: 520px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  overflow: hidden;
  box-sizing: border-box;
}

.saikaila-glb-viewer canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.saikaila-glb-viewer__message {
  position: absolute;
  inset: auto 16px 16px 16px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.88);
  color: #fff;
  font-size: 14px;
  line-height: 1.4;
  z-index: 2;
}

.saikaila-glb-viewer__message[data-type="error"],
.saikaila-glb-viewer-error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
  padding: 10px 12px;
  border-radius: 8px;
}

.saikaila-glb-viewer__retry {
  margin-top: 8px;
  border: 0;
  border-radius: 7px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  padding: 7px 10px;
}

.saikaila-glb-viewer__retry:hover {
  background: #374151;
}

.saikaila-glb-info {
  margin-top: 14px;
  padding: 16px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-sizing: border-box;
  color: #111827;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.saikaila-glb-info:empty {
  display: none;
}

.saikaila-glb-info h3,
.saikaila-glb-info h4 {
  margin: 0;
  line-height: 1.25;
}

.saikaila-glb-info h3 {
  font-size: 18px;
}

.saikaila-glb-info h4 {
  font-size: 14px;
}

.saikaila-glb-info__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 0;
}

.saikaila-glb-info__meta div {
  min-width: 0;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-glb-info__meta dt {
  margin: 0 0 3px;
  color: #64748b;
  font-size: 12px;
}

.saikaila-glb-info__meta dd {
  margin: 0;
  font-size: 14px;
  overflow-wrap: anywhere;
}

.saikaila-glb-info__section {
  margin-top: 16px;
}

.saikaila-glb-info__table-wrap {
  width: 100%;
  margin-top: 8px;
  overflow-x: auto;
}

.saikaila-glb-info__bom {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}

.saikaila-glb-info__bom th,
.saikaila-glb-info__bom td {
  padding: 7px 8px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.saikaila-glb-info__bom th {
  color: #475569;
  background: #f8fafc;
  font-weight: 600;
}

.saikaila-glb-info__bom th:nth-child(2),
.saikaila-glb-info__bom td:nth-child(2) {
  min-width: 180px;
  white-space: normal;
}

.saikaila-glb-info__bom th:nth-child(3),
.saikaila-glb-info__bom th:nth-child(5),
.saikaila-glb-info__bom th:nth-child(6),
.saikaila-glb-info__bom td:nth-child(3),
.saikaila-glb-info__bom td:nth-child(5),
.saikaila-glb-info__bom td:nth-child(6) {
  text-align: right;
}

.saikaila-glb-info__total {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
  font-size: 14px;
}

.saikaila-glb-info__total span {
  color: #475569;
}

.saikaila-glb-info__total strong {
  font-size: 18px;
}

.saikaila-glb-info ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.saikaila-glb-info li {
  margin-bottom: 4px;
}

.saikaila-glb-info__loading,
.saikaila-glb-info__error {
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 14px;
}

.saikaila-glb-info__loading {
  background: #f8fafc;
  color: #475569;
}

.saikaila-glb-info__error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}

.saikaila-glb-debug {
  margin-top: 14px;
  padding: 16px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-sizing: border-box;
  color: #111827;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.saikaila-glb-debug:empty {
  display: none;
}

.saikaila-glb-debug__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.saikaila-glb-debug__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.saikaila-project-engine-inspector {
  display: grid;
  gap: 8px;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}

.saikaila-project-engine-inspector > * {
  min-width: 0;
  max-width: 100%;
}

.saikaila-project-engine-inspector .saikaila-glb-project-draft__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: stretch;
  gap: 6px;
  margin-bottom: 0;
  min-width: 0;
  max-width: 100%;
}

.saikaila-project-engine-inspector .saikaila-glb-debug__actions {
  width: 100%;
  flex: none;
  gap: 4px;
  justify-content: flex-start;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.saikaila-project-engine-inspector .sp-action-button {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  min-height: 30px;
  border: 0;
  border-radius: 6px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  padding: 6px 12px;
  max-width: 100%;
  white-space: normal;
}

.saikaila-project-engine-inspector .sp-action-button:hover {
  background: #374151;
}

.saikaila-project-engine-inspector .saikaila-glb-import-preview__validation-note,
.saikaila-project-engine-inspector .saikaila-glb-import-preview__summary,
.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap {
  margin-top: 0;
  margin-bottom: 0;
  max-width: 100%;
  min-width: 0;
}

.saikaila-project-engine-inspector .saikaila-glb-import-preview__summary {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.saikaila-project-engine-inspector .saikaila-glb-import-preview__validation-note {
  padding: 7px 8px;
}

.saikaila-project-engine-inspector .saikaila-glb-import-preview__validation-note span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.saikaila-project-engine-inspector__group {
  margin: 0;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 8px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-project-engine-inspector__group summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-project-engine-inspector__group p {
  margin: 8px 0 0;
}

.saikaila-project-engine-native-tree {
  background: #f8fafc;
}

.saikaila-project-engine-native-tree__summary {
  margin: 8px 0;
}

.saikaila-project-engine-native-tree__status {
  grid-template-columns: repeat(auto-fit, minmax(135px, 1fr));
  font-size: 12px;
}

.saikaila-project-engine-native-tree__warning {
  display: grid;
  gap: 2px;
  margin: 6px 0;
  padding: 6px 8px;
  border: 1px solid #facc15;
  border-radius: 6px;
  background: #fefce8;
  color: #713f12;
  font-size: 12px;
}

.saikaila-project-engine-native-tree__warning span {
  overflow-wrap: anywhere;
}

.saikaila-project-engine-native-tree__drag-status {
  min-height: 18px;
  margin: 4px 0;
  color: #64748b;
  font-size: 12px;
}

.saikaila-project-engine-native-tree__drag-status[data-type="success"] {
  color: #166534;
}

.saikaila-project-engine-native-tree__drag-status[data-type="error"] {
  color: #b91c1c;
}

.saikaila-project-engine-native-tree__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0;
  font-size: 11px;
}

.saikaila-project-engine-native-tree__legend span {
  border: 1px solid #d1d5db;
  border-radius: 999px;
  padding: 2px 7px;
  background: #fff;
}

.saikaila-project-engine-native-tree__legend .is-virtual {
  border-color: #c7d2fe;
  color: #3730a3;
}

.saikaila-project-engine-native-tree__legend .is-runtime {
  border-color: #bbf7d0;
  color: #166534;
}

.saikaila-project-engine-native-tree__legend .is-editable {
  border-color: #fde68a;
  color: #92400e;
}

.saikaila-project-engine-native-tree__legend .is-readonly {
  border-color: #e5e7eb;
  color: #4b5563;
}

.saikaila-project-engine-native-tree__body,
.saikaila-project-engine-native-tree__children {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.saikaila-project-engine-native-tree__children {
  margin-left: 16px;
  padding-left: 8px;
  border-left: 1px solid #e5e7eb;
}

.saikaila-project-engine-native-tree__branch {
  min-width: 0;
}

.saikaila-project-engine-native-tree__row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 4px 6px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.35;
}

summary.saikaila-project-engine-native-tree__row {
  cursor: pointer;
}

.saikaila-project-engine-native-tree__row.is-runtime {
  background: #fff;
}

.saikaila-project-engine-native-tree__row.is-runtime:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.saikaila-project-engine-native-tree__row.is-virtual {
  color: #4b5563;
  font-weight: 700;
}

.saikaila-project-engine-native-tree__row.is-readonly {
  opacity: 0.82;
}

.saikaila-project-engine-native-tree__row.is-selected {
  border-color: #2563eb;
  background: #dbeafe;
}

.saikaila-project-engine-native-tree__row.is-draggable {
  cursor: grab;
}

.saikaila-project-engine-native-tree__row.is-dragging {
  opacity: 0.55;
  border-color: #64748b;
  background: #f1f5f9;
}

.saikaila-project-engine-native-tree__row.is-drop-target {
  border-color: #16a34a;
  background: #dcfce7;
}

.saikaila-project-engine-native-tree__row.is-drop-invalid {
  border-color: #ef4444;
  background: #fee2e2;
}

.saikaila-project-engine-native-tree__type {
  flex: 0 0 auto;
  min-width: 72px;
  border-radius: 999px;
  padding: 1px 6px;
  background: #e5e7eb;
  color: #374151;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  opacity: 0.78;
}

.saikaila-project-engine-native-tree__marker {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #f3f4f6;
  color: #374151;
  font-size: 10px;
  font-weight: 700;
}

.saikaila-project-engine-native-tree__row.is-runtime .saikaila-project-engine-native-tree__type {
  background: #dcfce7;
  color: #166534;
}

.saikaila-project-engine-native-tree__row.is-runtime .saikaila-project-engine-native-tree__marker {
  background: #bbf7d0;
  color: #14532d;
}

.saikaila-project-engine-native-tree__row.is-selected .saikaila-project-engine-native-tree__marker {
  background: #2563eb;
  color: #fff;
}

.saikaila-project-engine-native-tree__row.is-editable .saikaila-project-engine-native-tree__type {
  box-shadow: inset 0 0 0 1px #f59e0b;
}

.saikaila-project-engine-native-tree__label {
  min-width: 0;
  overflow-wrap: anywhere;
}

.saikaila-project-engine-native-tree__node-id,
.saikaila-project-engine-native-tree__meta {
  min-width: 0;
  color: #6b7280;
  font-size: 11px;
  overflow-wrap: anywhere;
}

.saikaila-project-engine-native-tree__meta {
  margin-left: auto;
}

.saikaila-project-engine-command-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}

.saikaila-project-engine-command-toolbar-button.is-active {
  border-color: #2563eb;
  background: #dbeafe;
  color: #1d4ed8;
}

.saikaila-project-engine-command-toolbar-button.is-danger {
  border-color: #fecaca;
  color: #b91c1c;
}

.saikaila-project-engine-command-toolbar-button.is-danger:not(:disabled):hover {
  border-color: #ef4444;
  background: #fee2e2;
}

.saikaila-project-engine-command-status {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 6px;
  margin: 8px 0;
  font-size: 12px;
}

.saikaila-project-engine-command-status div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
}

.saikaila-project-engine-command-status strong {
  color: #64748b;
  font-size: 10px;
  text-transform: uppercase;
}

.saikaila-project-engine-command-status span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.saikaila-project-engine-command-status[data-type="ok"] div {
  border-color: #bbf7d0;
}

.saikaila-project-engine-command-status[data-type="error"] div {
  border-color: #fecaca;
}

.saikaila-project-engine-command-status[data-type="noOp"] div {
  border-color: #fde68a;
}

.saikaila-project-engine-command-details {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.saikaila-project-engine-rename-node,
.saikaila-project-engine-move-node {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: end;
}

.saikaila-project-engine-rename-node label,
.saikaila-project-engine-move-node label {
  display: grid;
  gap: 3px;
  min-width: 0;
  font-size: 12px;
  color: #374151;
}

.saikaila-project-engine-rename-node input,
.saikaila-project-engine-move-node select {
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 13px;
}

.saikaila-project-engine-rename-message,
.saikaila-project-engine-duplicate-message,
.saikaila-project-engine-delete-message,
.saikaila-project-engine-move-message {
  grid-column: 1 / -1;
  min-height: 16px;
  font-size: 12px;
}

.saikaila-project-engine-rename-message[data-type="error"],
.saikaila-project-engine-duplicate-message[data-type="error"],
.saikaila-project-engine-delete-message[data-type="error"],
.saikaila-project-engine-move-message[data-type="error"] {
  color: #b91c1c;
}

.saikaila-project-engine-rename-message[data-type="success"],
.saikaila-project-engine-duplicate-message[data-type="success"],
.saikaila-project-engine-delete-message[data-type="success"],
.saikaila-project-engine-move-message[data-type="success"] {
  color: #166534;
}

.saikaila-project-engine-runtime-summary {
  display: grid;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  padding: 8px;
  background: #f8fafc;
  border: 1px solid #dbeafe;
  border-radius: 8px;
}

.saikaila-project-engine-runtime-summary h3 {
  margin: 0;
  font-size: 15px;
}

.saikaila-project-engine-runtime-summary .saikaila-glb-project-draft__header {
  margin: 0;
}

.saikaila-project-engine-updated-package-export {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.saikaila-project-engine-updated-package-json {
  width: 100%;
  min-height: 180px;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
}

.saikaila-project-engine-updated-package-message {
  font-size: 12px;
}

.saikaila-project-engine-runtime-diff {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.saikaila-project-engine-runtime-diff-result:empty {
  display: none;
}

.saikaila-project-engine-runtime-diff-summary {
  margin: 0;
}

.saikaila-project-engine-runtime-diff-table td:nth-child(5) {
  font-weight: 700;
}

.saikaila-project-engine-runtime-diff-row--modified td {
  background: #fffbeb;
}

.saikaila-project-engine-runtime-diff-row--added td {
  background: #f0fdf4;
}

.saikaila-project-engine-runtime-diff-row--removed td {
  background: #fef2f2;
}

.saikaila-project-engine-commits {
  background: #f8fafc;
}

.saikaila-project-engine-commit-summary {
  margin: 8px 0;
}

.saikaila-project-engine-visual-map {
  background: #f8fafc;
}

.saikaila-project-engine-rule-diagnostics {
  display: grid;
  gap: 8px;
  margin: 12px 0;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #dbeafe;
  border-radius: 8px;
}

.saikaila-project-engine-rule-diagnostics__empty {
  margin: 0;
  font-size: 12px;
  color: #475569;
}

.saikaila-project-engine-rule-diagnostics__table details {
  margin-top: 4px;
}

.saikaila-project-engine-rule-diagnostics__table summary {
  cursor: pointer;
  color: #2563eb;
}

.saikaila-project-engine-visual-selection {
  margin-bottom: 8px;
  padding: 8px;
  border: 1px solid #dbeafe;
  border-radius: 6px;
  background: #fff;
}

.saikaila-project-engine-visual-map__toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 4px 0 8px;
  font-size: 12px;
}

.saikaila-project-engine-visual-map-table code {
  white-space: nowrap;
}

.saikaila-project-engine-visual-map-row--artifact td {
  background: #f8fafc;
  color: #64748b;
}

.saikaila-project-engine-visual-map-row--selected td {
  background: #ecfdf5;
  box-shadow: inset 3px 0 0 #16a34a;
}

.saikaila-project-engine-selected-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-top: 8px;
  font-size: 12px;
}

.saikaila-project-engine-selected-list span {
  padding: 3px 5px;
  border: 1px solid #dbeafe;
  border-radius: 4px;
  background: #f8fafc;
}

.saikaila-project-engine-node-row--focused td {
  background: #eff6ff;
  box-shadow: inset 3px 0 0 #2563eb;
}

.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap th,
.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap td {
  padding: 5px 7px;
}

.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap {
  overflow-x: auto;
}

.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap table {
  max-width: none;
}

.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap code,
.saikaila-project-engine-inspector .saikaila-glb-project-draft__table-wrap small {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.saikaila-project-engine-inspector input[type="text"],
.saikaila-project-engine-inspector input[type="search"] {
  min-height: 28px;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 4px 6px;
  font: inherit;
  font-size: 12px;
}

.saikaila-project-engine-runtime-json {
  width: 100%;
  min-height: 160px;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  padding: 8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
}

.saikaila-project-engine-runtime-message {
  margin-top: 6px;
  font-size: 12px;
}

.saikaila-project-engine-project-picker {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}

.saikaila-project-engine-project-picker__list {
  display: grid;
  gap: 8px;
}

.saikaila-project-engine-project-picker__item {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}

.saikaila-project-engine-project-picker__item > div:first-child {
  display: grid;
  gap: 2px;
}

.saikaila-project-engine-project-picker__item > div:first-child span {
  color: #6b7280;
  font-size: 12px;
}

.saikaila-project-engine-versions__item[data-latest="1"] {
  border-color: #93c5fd;
  background: #eff6ff;
}

.saikaila-project-engine-source-binding-status {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}

.saikaila-project-engine-source-binding-status__warnings {
  display: grid;
  gap: 4px;
  font-size: 12px;
}

.saikaila-project-engine-source-binding-status__warnings > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  color: #92400e;
}

.saikaila-project-engine-glb-focus-policy {
  margin: 8px 0 12px;
}

.saikaila-project-engine-native-tree__source-marker {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  padding: 1px 5px;
  border: 1px solid #d1d5db;
  border-radius: 999px;
  color: #4b5563;
  font-size: 11px;
  line-height: 1;
}

.saikaila-project-engine-native-tree__row.has-source-native_unbound .saikaila-project-engine-native-tree__source-marker {
  border-color: #bbf7d0;
  color: #166534;
}

.saikaila-project-engine-native-tree__row.has-source-source_missing .saikaila-project-engine-native-tree__source-marker,
.saikaila-project-engine-native-tree__row.has-source-imported_stale .saikaila-project-engine-native-tree__source-marker,
.saikaila-project-engine-native-tree__row.has-source-source_hash_mismatch .saikaila-project-engine-native-tree__source-marker,
.saikaila-project-engine-native-tree__row.has-source-source_model_changed .saikaila-project-engine-native-tree__source-marker,
.saikaila-project-engine-native-tree__row.has-source-source_ref_invalid .saikaila-project-engine-native-tree__source-marker {
  border-color: #fcd34d;
  color: #92400e;
}

.saikaila-glb-suggestion__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
  padding: 10px;
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  border-radius: 8px;
  font-size: 13px;
}

.saikaila-glb-viewer-wrap .sp-project-storage {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.saikaila-glb-viewer-wrap .sp-project-storage .sp-report-btn {
  width: auto;
  min-height: 30px;
  border: 0;
  border-radius: 6px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  line-height: 1;
  padding: 6px 12px;
}

.saikaila-glb-viewer-wrap .sp-project-storage .sp-report-btn:hover {
  background: #374151;
}

.saikaila-glb-viewer-wrap .sp-project-storage .sp-report-btn:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.saikaila-glb-viewer-wrap .sp-project-storage-link {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.saikaila-glb-viewer-wrap .sp-project-storage-link[hidden] {
  display: none;
}

.saikaila-glb-viewer-wrap .sp-project-link-input {
  flex: 1 1 280px;
  min-width: 0;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 6px 8px;
  font: inherit;
  font-size: 12px;
}

.saikaila-glb-viewer-wrap .sp-project-storage-message {
  font-size: 12px;
}

.saikaila-glb-debug__header h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
}

.saikaila-glb-debug__copy,
.saikaila-glb-debug__download,
.saikaila-glb-mapping__copy,
.saikaila-glb-mapping__download,
.saikaila-glb-draft__download,
.saikaila-glb-draft__load,
.saikaila-glb-import-preview__build,
.saikaila-glb-import-preview__copy,
.saikaila-glb-import-preview__download,
.saikaila-glb-project-draft__generate,
.saikaila-glb-project-draft__copy,
.saikaila-glb-project-draft__download,
.saikaila-glb-project-draft__load,
.saikaila-glb-bom-candidates__copy,
.saikaila-glb-bom-candidates__download,
.saikaila-glb-quantity-extraction__copy,
.saikaila-glb-quantity-extraction__download,
.saikaila-glb-material-rules__copy,
.saikaila-glb-material-rules__download,
.saikaila-glb-material-aggregation__copy,
.saikaila-glb-material-aggregation__download,
.saikaila-glb-pricing__copy-estimate,
.saikaila-glb-pricing__download-estimate,
.saikaila-glb-pricing__load-default,
.saikaila-glb-pricing__apply,
.saikaila-glb-pricing__copy-list,
.saikaila-glb-pricing__download-list,
.saikaila-glb-build-steps__copy,
.saikaila-glb-build-steps__download,
.saikaila-glb-construction-package__generate,
.saikaila-glb-construction-package__recalculate,
.saikaila-glb-construction-package__copy,
.saikaila-glb-construction-package__download,
.saikaila-glb-construction-package__load,
.saikaila-glb-suggestion__apply-selected,
.saikaila-glb-suggestion__apply-visible,
.saikaila-glb-suggestion__apply-all {
  border: 0;
  border-radius: 8px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  padding: 8px 11px;
  white-space: nowrap;
}

.saikaila-glb-debug__copy:hover,
.saikaila-glb-debug__download:hover,
.saikaila-glb-mapping__copy:hover,
.saikaila-glb-mapping__download:hover,
.saikaila-glb-draft__download:hover,
.saikaila-glb-draft__load:hover,
.saikaila-glb-import-preview__build:hover,
.saikaila-glb-import-preview__copy:hover,
.saikaila-glb-import-preview__download:hover,
.saikaila-glb-project-draft__generate:hover,
.saikaila-glb-project-draft__copy:hover,
.saikaila-glb-project-draft__download:hover,
.saikaila-glb-project-draft__load:hover,
.saikaila-glb-bom-candidates__copy:hover,
.saikaila-glb-bom-candidates__download:hover,
.saikaila-glb-quantity-extraction__copy:hover,
.saikaila-glb-quantity-extraction__download:hover,
.saikaila-glb-material-rules__copy:hover,
.saikaila-glb-material-rules__download:hover,
.saikaila-glb-material-aggregation__copy:hover,
.saikaila-glb-material-aggregation__download:hover,
.saikaila-glb-pricing__copy-estimate:hover,
.saikaila-glb-pricing__download-estimate:hover,
.saikaila-glb-pricing__load-default:hover,
.saikaila-glb-pricing__apply:hover,
.saikaila-glb-pricing__copy-list:hover,
.saikaila-glb-pricing__download-list:hover,
.saikaila-glb-build-steps__copy:hover,
.saikaila-glb-build-steps__download:hover,
.saikaila-glb-construction-package__generate:hover,
.saikaila-glb-construction-package__recalculate:hover,
.saikaila-glb-construction-package__copy:hover,
.saikaila-glb-construction-package__download:hover,
.saikaila-glb-construction-package__load:hover,
.saikaila-glb-suggestion__apply-selected:hover,
.saikaila-glb-suggestion__apply-visible:hover,
.saikaila-glb-suggestion__apply-all:hover {
  background: #374151;
}

.saikaila-glb-draft__load input,
.saikaila-glb-project-draft__load input,
.saikaila-glb-construction-package__load input {
  display: none;
}

.saikaila-glb-draft-load-result {
  margin: 0 0 14px;
  padding: 10px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  font-size: 13px;
}

.saikaila-glb-draft-load-result[hidden] {
  display: none;
}

.saikaila-glb-draft-load-result__summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin: 8px 0 0;
}

.saikaila-glb-draft-load-result__summary div {
  padding: 8px;
  background: #fff;
  border: 1px solid #dcfce7;
  border-radius: 7px;
}

.saikaila-glb-draft-load-result__summary dt {
  color: #64748b;
  font-size: 11px;
}

.saikaila-glb-draft-load-result__summary dd {
  margin: 2px 0 0;
  font-weight: 700;
}

.saikaila-glb-debug__summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.saikaila-glb-debug__summary div {
  min-width: 0;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-glb-debug__summary dt {
  margin: 0 0 3px;
  color: #64748b;
  font-size: 12px;
}

.saikaila-glb-debug__summary dd {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
}

.saikaila-glb-mapping__group-panel {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 13px;
}

.saikaila-glb-pick-mode {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  padding: 10px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  font-size: 13px;
}

.saikaila-glb-pick-mode label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  background: #fff;
  border: 1px solid #fdba74;
  border-radius: 999px;
}

.saikaila-glb-pick-diagnostics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
  padding: 8px 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  color: #334155;
  font-size: 12px;
}

.saikaila-glb-pick-diagnostics[hidden] {
  display: none;
}

.saikaila-glb-pick-diagnostics span {
  overflow-wrap: anywhere;
}

.saikaila-glb-mapping__groups {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.saikaila-glb-mapping__groups label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 7px;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 999px;
}

.saikaila-glb-mapping__groups-empty {
  color: #64748b;
}

.saikaila-glb-group-manager {
  margin: 0 0 14px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #dbeafe;
  border-radius: 8px;
}

.saikaila-glb-group-manager h3 {
  margin: 0 0 10px;
  font-size: 16px;
}

.saikaila-glb-group-manager__selected {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
  padding: 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 12px;
}

.saikaila-glb-group-manager__selected p {
  margin: 2px 0 0;
  color: #334155;
}

.saikaila-glb-group-manager__selected span {
  color: #64748b;
}

.saikaila-glb-collapse {
  margin-top: 6px;
}

.saikaila-glb-collapse__toggle {
  border: 0;
  border-radius: 7px;
  background: #e2e8f0;
  color: #0f172a;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 9px;
}

.saikaila-glb-collapse__toggle:hover {
  background: #cbd5e1;
}

.saikaila-glb-validation__issues {
  margin-top: 10px;
}

.saikaila-glb-group-manager__form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  align-items: end;
}

.saikaila-glb-group-manager__form label {
  display: grid;
  gap: 4px;
  font-size: 12px;
}

.saikaila-glb-group-manager__form input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 6px 7px;
  font: inherit;
}

.saikaila-glb-group-manager__apply,
.saikaila-glb-group-manager__group button {
  border: 0;
  border-radius: 7px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  padding: 7px 10px;
}

.saikaila-glb-group-manager__groups {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}

.saikaila-glb-group-manager__group {
  display: grid;
  grid-template-columns: minmax(140px, 1fr) auto auto auto auto auto auto;
  gap: 8px;
  align-items: center;
  padding: 8px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font-size: 12px;
}

.saikaila-glb-group-manager__group small {
  color: #64748b;
  overflow-wrap: anywhere;
}

.saikaila-glb-hierarchy {
  margin: 0 0 14px;
  padding: 12px;
  background: #f8fafc;
  border: 1px solid #c7d2fe;
  border-radius: 8px;
  font-size: 12px;
}

.saikaila-glb-hierarchy h3 {
  margin: 0 0 10px;
  font-size: 16px;
}

.saikaila-glb-hierarchy__forms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.saikaila-glb-hierarchy__form {
  display: grid;
  gap: 7px;
  padding: 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-glb-hierarchy__form input[type="text"],
.saikaila-glb-hierarchy__form select {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 6px 7px;
  font: inherit;
}

.saikaila-glb-hierarchy__form button,
.saikaila-glb-hierarchy__tree button {
  border: 0;
  border-radius: 7px;
  background: #312e81;
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  padding: 6px 9px;
}

.saikaila-glb-hierarchy__tree {
  display: grid;
  gap: 7px;
  padding: 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-glb-hierarchy__node {
  margin-left: 10px;
  padding: 6px;
  border-left: 2px solid #c7d2fe;
}

.saikaila-glb-hierarchy__node summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  cursor: pointer;
}

.saikaila-glb-hierarchy__group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 6px 0 0 18px;
  padding: 6px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
}

.saikaila-glb-debug__table-wrap {
  width: 100%;
  overflow-x: auto;
}

.saikaila-glb-debug__table {
  width: 100%;
  min-width: 2480px;
  border-collapse: collapse;
  font-size: 12px;
}

.saikaila-glb-debug__table th,
.saikaila-glb-debug__table td {
  padding: 7px 8px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.saikaila-glb-debug__table th {
  color: #475569;
  background: #f8fafc;
  font-weight: 600;
}

.saikaila-glb-debug__table tr[data-map-index] {
  cursor: pointer;
}

.saikaila-glb-debug__table tr[data-map-index]:hover td {
  background: #f8fafc;
}

.saikaila-glb-debug__table tr.saikaila-glb-debug__row--selected td {
  background: #ecfdf5;
  box-shadow: inset 0 1px 0 #bbf7d0, inset 0 -1px 0 #bbf7d0;
}

.saikaila-glb-debug__name,
.saikaila-glb-debug__table td:nth-child(5),
.saikaila-glb-debug__table td:nth-child(6) {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.saikaila-glb-debug__name span {
  display: inline-block;
}

.saikaila-glb-mapping__field input {
  width: 130px;
  box-sizing: border-box;
  border: 1px solid #d1d5db;
  border-radius: 6px;
  padding: 5px 6px;
  font: inherit;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.saikaila-glb-mapping__field input:focus {
  border-color: #2563eb;
  outline: 2px solid rgba(37, 99, 235, 0.16);
}

.saikaila-glb-mapping__check {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 28px;
}

.saikaila-glb-mapping__check input {
  width: 16px;
  height: 16px;
}

.saikaila-glb-suggestion__cell,
.saikaila-glb-suggestion__reason {
  background: #f8fafc;
  color: #334155;
}

.saikaila-glb-suggestion__reason {
  max-width: 260px;
  white-space: normal !important;
}

.saikaila-glb-debug__json,
.saikaila-glb-mapping__json,
.saikaila-glb-import-preview__json,
.saikaila-glb-project-draft__json,
.saikaila-glb-bom-candidates__json,
.saikaila-glb-quantity-extraction__json,
.saikaila-glb-material-rules__json,
.saikaila-glb-material-aggregation__json,
.saikaila-glb-pricing__estimate-json,
.saikaila-glb-build-steps__json,
.saikaila-glb-construction-package__json,
.saikaila-glb-auto-bom__json {
  width: 100%;
  min-height: 180px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
}

.saikaila-glb-import-preview,
.saikaila-glb-project-draft {
  margin-top: 16px;
  padding: 14px;
  background: #ffffff;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
}

.saikaila-glb-import-preview[hidden],
.saikaila-glb-project-draft[hidden] {
  display: none;
}

.saikaila-glb-import-preview__header,
.saikaila-glb-project-draft__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.saikaila-glb-import-preview__header h3,
.saikaila-glb-project-draft__header h3,
.saikaila-glb-import-preview__table-wrap h4,
.saikaila-glb-import-preview__section h4 {
  margin: 0;
}

.saikaila-glb-project-draft {
  background: #f8fafc;
  border-color: #a7f3d0;
}

.saikaila-glb-project-draft__tree {
  display: grid;
  gap: 8px;
  padding: 12px;
  background: #fff;
  border: 1px solid #d1fae5;
  border-radius: 8px;
  font-size: 13px;
}

.saikaila-glb-project-draft__tree details {
  margin-left: 14px;
  padding-left: 10px;
  border-left: 2px solid #a7f3d0;
}

.saikaila-glb-project-draft__tree summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-glb-project-draft__group {
  margin: 5px 0 5px 18px;
  padding: 6px 8px;
  background: #ecfdf5;
  border: 1px solid #d1fae5;
  border-radius: 7px;
}

.saikaila-glb-project-draft__group span {
  color: #64748b;
}

.saikaila-glb-project-draft__panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.saikaila-glb-project-draft__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 8px 0 0;
}

.saikaila-glb-project-draft__stats div {
  min-width: 0;
  padding: 8px;
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
}

.saikaila-glb-project-draft__stats dt {
  margin: 0 0 3px;
  color: #64748b;
  font-size: 12px;
}

.saikaila-glb-project-draft__stats dd {
  margin: 0;
  font-weight: 700;
}

.saikaila-glb-project-draft__table-wrap {
  width: 100%;
  overflow-x: auto;
  margin-top: 8px;
}

.saikaila-glb-project-draft__table-wrap table {
  width: 100%;
  min-width: 420px;
  border-collapse: collapse;
  font-size: 12px;
}

.saikaila-glb-project-draft__table-wrap th,
.saikaila-glb-project-draft__table-wrap td {
  padding: 7px 8px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
}

.saikaila-glb-project-draft__issues {
  margin-top: 8px;
}

.saikaila-glb-project-draft__issues summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-glb-project-draft__issues ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.saikaila-glb-bom-candidates {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #bae6fd;
  border-radius: 8px;
}

.saikaila-glb-bom-candidates__summary {
  margin-bottom: 12px;
}

.saikaila-glb-quantity-extraction {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #c4b5fd;
  border-radius: 8px;
}

.saikaila-glb-quantity-extraction__summary {
  margin-bottom: 12px;
}

.saikaila-glb-quantity-extraction__details summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-glb-material-rules {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #fed7aa;
  border-radius: 8px;
}

.saikaila-glb-material-rules__summary {
  margin-bottom: 12px;
}

.saikaila-glb-material-rules__details summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-glb-material-aggregation {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #99f6e4;
  border-radius: 8px;
}

.saikaila-glb-material-aggregation__summary {
  margin-bottom: 12px;
}

.saikaila-glb-material-aggregation__details summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-glb-pricing {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #f9a8d4;
  border-radius: 8px;
}

.saikaila-glb-pricing__summary {
  margin-bottom: 12px;
}

.saikaila-glb-pricing__price-list {
  margin: 12px 0;
  padding: 10px;
  background: #fdf2f8;
  border: 1px solid #fbcfe8;
  border-radius: 8px;
}

.saikaila-glb-pricing__price-list h4 {
  margin: 0;
}

.saikaila-glb-pricing__price-list-json {
  width: 100%;
  min-height: 220px;
  margin-top: 8px;
  padding: 10px;
  border: 1px solid #f9a8d4;
  border-radius: 8px;
  box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
}

.saikaila-glb-pricing__error {
  margin-top: 8px;
  padding: 8px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 7px;
  color: #991b1b;
  font-size: 13px;
}

.saikaila-glb-pricing__legend {
  margin: 8px 0;
  padding: 8px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 7px;
  color: #7c2d12;
  font-size: 12px;
}

.saikaila-glb-pricing__row--exact_match td {
  background: #f0fdf4;
}

.saikaila-glb-pricing__row--bom_fallback td,
.saikaila-glb-pricing__row--profile_fallback td,
.saikaila-glb-pricing__row--material_rule_fallback td {
  background: #fffbeb;
}

.saikaila-glb-pricing__row--missing_price td,
.saikaila-glb-pricing__row--skipped td {
  background: #fef2f2;
}

.saikaila-glb-pricing__row--profile-review td {
  box-shadow: inset 3px 0 0 #f97316;
}

.saikaila-glb-build-steps {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #a5b4fc;
  border-radius: 8px;
}

.saikaila-glb-build-steps__summary {
  margin-bottom: 12px;
}

.saikaila-glb-build-steps__details summary {
  cursor: pointer;
  font-weight: 700;
}

.saikaila-glb-build-steps__status {
  display: inline-block;
  margin: 4px 0 8px;
  padding: 6px 8px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 7px;
  color: #166534;
  font-size: 12px;
  font-weight: 700;
}

.saikaila-glb-construction-package {
  margin-top: 14px;
  padding: 12px;
  background: #ffffff;
  border: 1px solid #86efac;
  border-radius: 8px;
}

.saikaila-glb-construction-package__cards {
  margin-bottom: 12px;
}

.saikaila-glb-construction-package__editable {
  margin: 12px 0;
  padding: 10px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
}

.saikaila-glb-construction-package__editable h4 {
  margin: 0 0 6px;
}

.saikaila-glb-construction-package__editable p {
  margin: 0 0 8px;
  color: #166534;
  font-size: 12px;
}

.saikaila-glb-construction-package__editable input {
  width: 120px;
  box-sizing: border-box;
  border: 1px solid #86efac;
  border-radius: 6px;
  padding: 5px 6px;
  font: inherit;
  font-size: 12px;
}

.saikaila-glb-construction-package__inspector {
  min-width: 260px;
}

.saikaila-glb-construction-package__inspector summary {
  cursor: pointer;
  color: #14532d;
  font-weight: 700;
}

.saikaila-glb-construction-package__inspector-body {
  margin-top: 8px;
  padding: 8px;
  background: #ffffff;
  border: 1px solid #bbf7d0;
  border-radius: 7px;
}

.saikaila-glb-construction-package__quantity-explanation {
  margin: 0 0 8px;
  padding: 7px 8px;
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  border-radius: 7px;
  color: #14532d;
  font-size: 12px;
}

.saikaila-glb-construction-package__length-buckets,
.saikaila-glb-construction-package__warnings {
  margin-top: 8px;
  padding: 8px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  font-size: 12px;
}

.saikaila-glb-construction-package__warnings {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

.saikaila-glb-construction-package__length-buckets strong,
.saikaila-glb-construction-package__warnings strong {
  display: block;
  margin-bottom: 4px;
}

.saikaila-glb-construction-package__length-buckets ul,
.saikaila-glb-construction-package__warnings ul {
  margin: 0;
  padding-left: 18px;
}

.saikaila-glb-construction-package__length-buckets p {
  margin: 0;
}

.saikaila-glb-construction-package__edit-error {
  margin-top: 8px;
  padding: 8px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 7px;
  color: #991b1b;
  font-size: 13px;
}

.saikaila-glb-import-preview__summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 12px;
}

.saikaila-glb-import-preview__summary div {
  min-width: 0;
  padding: 9px;
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 8px;
}

.saikaila-glb-import-preview__summary dt {
  margin: 0 0 3px;
  color: #475569;
  font-size: 12px;
}

.saikaila-glb-import-preview__summary dd {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
}

.saikaila-glb-import-preview__counts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.saikaila-glb-import-preview__section {
  min-width: 0;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-glb-import-preview__section ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.saikaila-glb-import-preview__table-wrap {
  width: 100%;
  margin-top: 14px;
  overflow-x: auto;
}

.saikaila-glb-import-preview__table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  font-size: 12px;
}

.saikaila-glb-import-preview__table th,
.saikaila-glb-import-preview__table td {
  padding: 7px 8px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.saikaila-glb-import-preview__table th {
  background: #eff6ff;
  color: #334155;
  font-weight: 600;
}

.saikaila-glb-import-preview__table td:last-child {
  white-space: normal;
}

.saikaila-glb-validation,
.saikaila-glb-hierarchy-validation {
  margin: 0 0 14px;
  padding: 12px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
}

.saikaila-glb-validation:empty,
.saikaila-glb-hierarchy-validation:empty {
  display: none;
}

.saikaila-glb-validation__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.saikaila-glb-validation__header h3 {
  margin: 0;
  font-size: 16px;
}

.saikaila-glb-validation__revalidate,
.saikaila-glb-hierarchy-validation__revalidate,
.saikaila-glb-validation__filters button {
  border: 0;
  border-radius: 7px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 12px;
  padding: 7px 10px;
}

.saikaila-glb-validation__summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 10px;
}

.saikaila-glb-validation__summary div {
  padding: 8px;
  background: #fff;
  border: 1px solid #fed7aa;
  border-radius: 7px;
}

.saikaila-glb-validation__summary dt {
  margin: 0 0 3px;
  color: #9a3412;
  font-size: 12px;
}

.saikaila-glb-validation__summary dd {
  margin: 0;
  font-weight: 700;
}

.saikaila-glb-validation__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
}

.saikaila-glb-validation__filters button.is-active {
  background: #ea580c;
}

.saikaila-glb-validation__issues ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.saikaila-glb-validation__issues button {
  width: 100%;
  border: 1px solid #fed7aa;
  border-radius: 7px;
  background: #fff;
  color: #111827;
  cursor: pointer;
  padding: 8px;
  text-align: left;
}

.saikaila-glb-validation__issues strong {
  display: inline-block;
  min-width: 58px;
  color: #9a3412;
  text-transform: uppercase;
}

.saikaila-glb-validation__issues code {
  margin-right: 8px;
}

.saikaila-glb-validation__issues span,
.saikaila-glb-validation__issues em {
  display: block;
  margin-top: 3px;
}

.saikaila-glb-validation__issues em {
  color: #64748b;
}

.saikaila-glb-import-preview__validation-note {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin: 0 0 12px;
  padding: 9px 10px;
  background: #f8fafc;
  border: 1px solid #dbeafe;
  border-radius: 8px;
}

.saikaila-glb-auto-bom {
  margin-top: 14px;
  padding: 16px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-sizing: border-box;
  color: #111827;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.saikaila-glb-auto-bom:empty {
  display: none;
}

.saikaila-glb-auto-bom__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.saikaila-glb-auto-bom__header h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
}

.saikaila-glb-auto-bom__copy {
  border: 0;
  border-radius: 8px;
  background: #111827;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
  padding: 8px 11px;
  white-space: nowrap;
}

.saikaila-glb-auto-bom__copy:hover {
  background: #374151;
}

.saikaila-glb-auto-bom__summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.saikaila-glb-auto-bom__summary div {
  min-width: 0;
  padding: 10px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.saikaila-glb-auto-bom__summary dt {
  margin: 0 0 3px;
  color: #64748b;
  font-size: 12px;
}

.saikaila-glb-auto-bom__summary dd {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
}

.saikaila-glb-auto-bom__table-wrap {
  width: 100%;
  overflow-x: auto;
}

.saikaila-glb-auto-bom__table {
  width: 100%;
  min-width: 1080px;
  border-collapse: collapse;
  font-size: 12px;
}

.saikaila-glb-auto-bom__table th,
.saikaila-glb-auto-bom__table td {
  padding: 7px 8px;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}

.saikaila-glb-auto-bom__table th {
  color: #475569;
  background: #f8fafc;
  font-weight: 600;
}

.saikaila-glb-auto-bom__code,
.saikaila-glb-auto-bom__skipped code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.saikaila-glb-auto-bom__table th:nth-child(6),
.saikaila-glb-auto-bom__table th:nth-child(8),
.saikaila-glb-auto-bom__table th:nth-child(9),
.saikaila-glb-auto-bom__table td:nth-child(6),
.saikaila-glb-auto-bom__table td:nth-child(8),
.saikaila-glb-auto-bom__table td:nth-child(9) {
  text-align: right;
}

.saikaila-glb-auto-bom__skipped {
  margin-top: 14px;
  padding: 10px 12px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 8px;
}

.saikaila-glb-auto-bom__skipped summary {
  cursor: pointer;
  font-weight: 600;
}

.saikaila-glb-auto-bom__skipped ul {
  margin: 10px 0 0;
  padding-left: 18px;
}

.saikaila-glb-auto-bom__skipped li {
  margin-bottom: 4px;
}

.saikaila-glb-auto-bom__json {
  width: 100%;
  min-height: 180px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 12px;
}

@media (max-width: 640px) {
  .saikaila-glb-viewer {
    height: 360px;
  }

  .saikaila-glb-info__meta {
    grid-template-columns: 1fr;
  }

  .saikaila-glb-debug__header {
    align-items: stretch;
    flex-direction: column;
  }

  .saikaila-glb-debug__summary {
    grid-template-columns: 1fr 1fr;
  }

  .saikaila-glb-auto-bom__header {
    align-items: stretch;
    flex-direction: column;
  }

  .saikaila-glb-auto-bom__summary {
    grid-template-columns: 1fr;
  }

  .saikaila-glb-project-draft__panels,
  .saikaila-glb-project-draft__stats {
    grid-template-columns: 1fr;
  }
}
