.sd-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.sd-form-group { display: grid; gap: 6px; border: 1px solid var(--line); border-radius: 8px; padding: 9px; min-width: 0; }
.sd-form-compact .sd-form-group { border: 0; padding: 0; }
.sd-summary-compact { padding-top: 6px; border-top: 1px solid var(--line); }
.sd-subgroup { display: grid; gap: 6px; }
.sd-subgroup + .sd-subgroup { margin-top: 4px; padding-top: 8px; border-top: 1px solid var(--line); }
.sd-form-group, .sd-summary-group { grid-column: 1; }
.sd-form-group h5 { margin: 0; font-size: 14px; }
.sd-field { display: grid; gap: 4px; min-width: 0; font-size: 12px; }
.sd-field input, .sd-field select { width: 100%; min-width: 0; box-sizing: border-box; }
.sd-size-grid, .sd-material-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sd-material-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.sd-drawer-rows { display: grid; gap: 6px; }
.sd-drawer-row { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 8px; }
.sd-drawer-row.sd-drawer-row-with-label { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.sd-size-grid > .sd-field, .sd-drawer-row > .sd-field { height: auto; overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.sd-field.sd-check { display: flex; align-items: center; gap: 6px; }
.sd-field.sd-check input { width: auto; }
.sd-choice-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px; align-items: center; }
.sd-diagram { stroke: currentColor; stroke-width: 1.5; fill: none; opacity: .75; }
.sd-diagram .sd-diagram-fill { fill: currentColor; fill-opacity: .25; }
.sd-drawer-actions { display: flex; align-items: center; gap: 8px; }
.sd-printer-row, .sd-printer-edit { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sd-summary { color: var(--ink); font-size: 12px; line-height: 1.4; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 8px; }
.sd-summary .sd-fit-verdict, .sd-summary-warning, .sd-summary .sd-summary-line:last-child { grid-column: 1 / -1; }
.sd-navigator { position: absolute; z-index: 5; top: 16px; right: 16px; width: clamp(156px, 18vw, 196px); max-height: calc(100% - 32px); display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel, white); box-shadow: 0 4px 16px #0002; }
.sd-navigator h3 { margin: 0; font-size: 13px; }
.sd-drawer-delete { min-height: 36px; font-size: 11px; }
@media (max-width: 700px) {
  .sd-navigator { top: auto; right: 10px; bottom: 56px; width: 156px; max-height: 42%; }
  .sd-size-grid, .sd-material-three, .sd-material-two, .sd-summary, .sd-drawer-row { grid-template-columns: 1fr; }
}
.sd-workspace-host { position: absolute; z-index: 5; top: 16px; right: 16px; width: clamp(156px, 18vw, 196px); max-height: calc(100% - 32px); display: flex; flex-direction: column; gap: 8px; overflow-y: auto; }
.sd-workspace-host[hidden] { display: none; }
.sd-workspace-host .sd-navigator { position: static; width: auto; max-height: none; top: auto; right: auto; }
@media (max-width: 700px) {
  .sd-workspace-host { top: auto; right: 10px; bottom: 56px; width: 156px; max-height: 42%; }
}

/* Fix 086: help text, structured summary, recovery, printer dialog and guide */
.sd-help { display: block; color: var(--ink); opacity: .78; font-size: 12px; line-height: 1.35; }
.sd-field-error { display: block; color: var(--danger, #b3261e); font-size: 12px; font-weight: 600; }
.sd-field input[aria-invalid] { border-color: var(--danger, #b3261e); }
.sd-summary-line { margin: 2px 0; }
.sd-summary-label { font-weight: 600; }
.sd-summary-warning { margin: 2px 0; color: var(--warn, #8a5a00); }
.sd-fit-verdict { margin: 0 0 4px; font-weight: 700; }
.sd-fit-verdict.ok { color: var(--teal, #168a89); }
.sd-fit-verdict.bad, .sd-fit-warning { color: var(--danger, #b3261e); }
.sd-recovery { display: grid; gap: 8px; padding: 10px; border: 1px solid var(--danger, #b3261e); border-radius: 10px; background: var(--panel, white); box-shadow: 0 4px 16px #0002; }
.sd-recovery h3, .sd-recovery p { margin: 0; }
.sd-recovery-message { font-weight: 600; }
.welcome-dialog.storage-drawers-config { width: min(var(--sidebar-width, 40vw), calc(100vw - 32px)); min-width: min(420px, calc(100vw - 32px)); }
.printer-settings-dialog { max-width: min(420px, calc(100vw - 24px)); }
.printer-settings-dialog .welcome-header { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.printer-profile-warning { display: grid; gap: 6px; padding: 8px; border: 1px solid var(--danger, #b3261e); border-radius: 8px; font-size: 12px; }
.sd-guide { max-width: 760px; margin: 0 auto; padding: 16px; line-height: 1.5; }
.sd-guide h1 { font-size: 22px; }
.sd-guide h2 { font-size: 17px; margin-top: 20px; }
.sd-guide ol, .sd-guide ul { padding-left: 20px; }
.sd-guide table { border-collapse: collapse; width: 100%; font-size: 13px; }
.sd-guide th, .sd-guide td { border: 1px solid var(--line, #ccc); padding: 4px 8px; text-align: left; vertical-align: top; }
.space-type-frame { margin: 0 0 8px; color: var(--ink); opacity: .78; font-size: 13px; }
.type-card[hidden] { display: none; }

/* Fix 103 / 117: structural Design editor (side panel). The form is one column
   of major areas (Basics, Drawers, Cabinet, Finish) plus a compact status. */
#structural-editor-host .sd-form { grid-template-columns: minmax(0, 1fr); }
#structural-editor-host .sd-form-group,
#structural-editor-host .sd-summary-group { grid-column: 1; }
/* Fix 1111: narrow-layout rule for the qualified selector, placed after
   the desktop definitions so it wins on source order at equal specificity.
   The top-of-file mobile rule is defeated by its higher specificity. */
@media (max-width: 700px) {
  .sd-drawer-row.sd-drawer-row-with-label { grid-template-columns: 1fr; }
}
.sd-drawer-row.sd-drawer-row-active { outline: 2px solid var(--teal, #168a89); outline-offset: 2px; border-radius: 6px; background: color-mix(in srgb, var(--teal, #168a89) 8%, transparent); }
.sd-drawer-head { display: flex; gap: 6px; align-items: center; justify-content: space-between; grid-column: 1 / -1; }
.sd-drawer-delete { font-size: 12px; }
.sd-drawer-actions { margin-top: 6px; }
