/* PRISME 2D CAD — 플롯·PDF (cadout-): the plot / page setup / PDF dialogs, the full
   plot preview and the hidden print frame. Dialog chrome and form controls come from the
   shell (cads-); colours from the core --cad-* tokens. */

/* ------------------------------------------------------------ print frame */

.cadout-print-frame {
  position: fixed;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border: 0;
  visibility: hidden;
  pointer-events: none;
}

/* ---------------------------------------------------------------- dialogs */

.cadout-form { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.cadout-cols { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
.cadout-col { display: flex; flex: 1 1 auto; flex-direction: column; gap: 8px; min-width: 0; }
.cadout-col-side { flex: 0 0 218px; }
.cadout-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.cadout-row-top { align-items: flex-start; }
.cadout-row > .cads-group { flex: none; }
.cadout-grow { flex: 1 1 auto; min-width: 0; }
.cadout-stack { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cadout-inline { display: inline-flex; align-items: center; gap: 6px; }
.cadout-group { min-width: 0; }
.cadout-field .cads-field-label { flex: 0 0 auto; }
.cadout-field .cads-select,
.cadout-field .cads-input { flex: 1 1 auto; min-width: 0; }
.cadout-dialog .cads-select.cadout-wide { width: 100%; min-width: 0; }
.cadout-dialog .cads-select.cadout-units { min-width: 72px; width: 72px; }
.cadout-dialog .cadout-num { width: 72px; flex: 0 0 auto; font-family: var(--cad-font-mono); text-align: right; }
.cadout-dialog .cadout-name { width: 100%; box-sizing: border-box; }
.cadout-dialog [hidden] { display: none; }
.cadout-unit { min-width: 26px; color: var(--cad-text-muted); }
.cadout-value { min-width: 0; overflow: hidden; color: var(--cad-text-muted); text-overflow: ellipsis; }
.cadout-strong { color: var(--cad-text); font-weight: 600; }
.cadout-info {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 3px 10px;
  min-width: 0;
  line-height: 1.45;
}
.cadout-note { min-height: 1.5em; color: var(--cad-warning); }
.cadout-summary { min-height: 1.5em; color: var(--cad-text); }

.cadout-thumb { flex: none; width: 120px; height: 112px; }
.cadout-thumb-paper { fill: #ffffff; stroke: var(--cad-text-muted); stroke-width: 1; }
.cadout-thumb-area { fill: color-mix(in srgb, var(--cad-accent) 38%, #ffffff); stroke: none; }
.cadout-thumb-cut line { stroke: var(--cad-danger); stroke-width: 2; }
.cadout-thumb-text { fill: var(--cad-text-muted); font-size: 9px; }
.cadout-orient-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; }
.cadout-orient-letter { fill: #1b2027; font-size: 15px; font-weight: 700; }

.cadout-list {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 132px;
  padding: 2px;
  border: 1px solid var(--cad-border-soft);
  border-radius: 1px;
  background: var(--cad-bg-input);
  color: var(--cad-text);
  font: inherit;
  outline: none;
}
.cadout-list:focus { border-color: var(--cad-accent); }
.cadout-list option { padding: 2px 6px; }
.cadout-dialog .cadout-side-btn { min-width: 132px; }

/* 페이지 설정 가져오기: name and location (모형 / 배치), several rows can be selected */
.cadout-pick-box { display: flex; flex-direction: column; min-width: 0; }
.cadout-pick-head,
.cadout-pick-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px;
  gap: 8px;
  padding: 2px 8px;
}
.cadout-pick-head {
  border: 1px solid var(--cad-border-soft);
  border-bottom: 0;
  background: var(--cad-bg-ribbon);
  color: var(--cad-text-muted);
}
.cadout-pick {
  height: 148px;
  overflow-y: auto;
  border: 1px solid var(--cad-border-soft);
  border-radius: 1px;
  background: var(--cad-bg-input);
  color: var(--cad-text);
  outline: none;
}
.cadout-pick:focus-visible { border-color: var(--cad-accent); }
.cadout-pick-row { cursor: default; user-select: none; }
.cadout-pick-row[aria-selected="true"] { background: color-mix(in srgb, var(--cad-accent) 34%, transparent); }
.cadout-pick:focus-visible .cadout-pick-row.is-focus { outline: 1px dotted var(--cad-text-muted); outline-offset: -1px; }
.cadout-pick-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cadout-pick-kind { color: var(--cad-text-muted); }
.cadout-question { margin: 0; line-height: 1.5; }

/* ---------------------------------------------------------------- preview */

.cadout-preview {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: var(--cad-paper-bg);
  color: var(--cad-text);
  font-family: var(--cad-font);
  font-size: 12px;
  outline: none;
}
.cadout-preview-bar {
  display: flex;
  flex: none;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-bottom: 1px solid var(--cad-border);
  background: var(--cad-bg-ribbon);
}
.cadout-preview-btn {
  margin: 0;
  font: inherit;
  cursor: default;
}
.cadout-preview-btn:focus-visible { outline: 1px solid var(--cad-accent); outline-offset: -1px; }
.cadout-preview-sep { width: 1px; height: 18px; background: var(--cad-separator); }
.cadout-preview-info {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  padding: 0 6px;
  color: var(--cad-text-muted);
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cadout-preview-note {
  flex: none;
  padding: 5px 12px;
  background: color-mix(in srgb, var(--cad-warning) 22%, var(--cad-bg-ribbon));
  color: var(--cad-text);
}
.cadout-preview-stage {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  cursor: grab;
  touch-action: none;
}
.cadout-preview-stage[data-panning="true"] { cursor: grabbing; }
.cadout-sheet {
  position: absolute;
  background: #ffffff;
  box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.45);
}
.cadout-sheet-image {
  display: block;
  width: 100%;
  height: 100%;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}
.cadout-preview-status {
  flex: none;
  padding: 4px 12px;
  border-top: 1px solid var(--cad-border);
  background: var(--cad-bg-status);
  color: var(--cad-text-muted);
}

/* ------------------------------------------------------------ PUBLISH (게시) */

.cadout-publish-dialog .cads-btn.cadout-pub-btn { flex: none; }
.cadout-pub-tools { flex-wrap: wrap; }
.cadout-pub-count { margin-left: auto; color: var(--cad-text-muted); }
.cadout-pub-list { flex: 1 1 auto; min-width: 0; }
.cadout-pub-scroll {
  height: 220px;
  overflow: auto;
  border: 1px solid var(--cad-border-soft);
  border-radius: 1px;
  background: var(--cad-bg-input);
}
.cadout-pub-table { width: 100%; border-collapse: collapse; table-layout: fixed; color: var(--cad-text); outline: none; }
.cadout-pub-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 3px 8px;
  border-bottom: 1px solid var(--cad-border-soft);
  background: var(--cad-bg-ribbon);
  color: var(--cad-text-muted);
  font-weight: 400;
  text-align: left;
}
.cadout-pub-table th:nth-child(1) { width: 42%; }
.cadout-pub-table th:nth-child(2) { width: 30%; }
.cadout-pub-table td { padding: 2px 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cadout-pub-row { cursor: default; user-select: none; }
.cadout-pub-row[aria-selected="true"] { background: color-mix(in srgb, var(--cad-accent) 34%, transparent); }
.cadout-pub-table:focus-visible .cadout-pub-row[aria-selected="true"] { outline: 1px dotted var(--cad-text-muted); outline-offset: -1px; }
.cadout-dialog .cads-select.cadout-pub-setup { width: 100%; min-width: 0; }
.cadout-pub-status { color: var(--cad-success); }
.cadout-pub-status.cadout-pub-error { color: var(--cad-danger); }
.cadout-message { margin: 0; line-height: 1.5; }
.cadout-progress { width: 100%; }

/* VIEWPLOTDETAILS (플롯 및 게시 상세 정보) */
.cadout-dialog .cadout-details {
  width: 100%;
  box-sizing: border-box;
  min-height: 280px;
  resize: vertical;
  font-family: var(--cad-font-mono);
  font-size: 12px;
  line-height: 1.45;
  white-space: pre;
}

/* 모든 배치 선택: the selected layout tabs (the tab strip belongs to the shell). */
.cads-ltab[data-cadout-selected] { background: var(--cad-bg-filetab-active); color: var(--cad-text); box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--cad-accent) 60%, transparent); }
