/* Crane matrix inputs are intentionally wider than the ordinary StruSheets sidebar. */
.crane-matrix-workspace .app-shell { display: block; max-width: 1500px; margin: auto; }
.crane-matrix-workspace .app-shell .control-panel { position: static; height: auto; overflow: visible; border: 0; background: transparent; padding: 24px 28px 0; }
.crane-matrix-workspace .control-heading { max-width: 900px; }
.crane-matrix-workspace .control-heading h1 { font-size: 34px; }
.crane-matrix-workspace .control-heading .discipline-tag { margin-top: 14px; }
.crane-matrix-workspace .control-heading p { margin-bottom: 16px; }
.crane-matrix-workspace .report-font-settings { max-width: 360px; margin-bottom: 16px; }
.crane-matrix-workspace .project-card { display: block; }
.crane-matrix-workspace .project-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; }
.crane-matrix-workspace .project-card h2 { margin-bottom: 0; }
.crane-matrix-workspace .project-card label { margin: 0; }
.crane-matrix-workspace label, .crane-input-table { font-family: var(--data-font, "Google Sans", Arial, sans-serif); font-size: 13px; font-weight: 500; letter-spacing: normal; }
.crane-matrix-workspace input, .crane-matrix-workspace select { font-size: 14px; font-weight: 500; min-height: 36px; padding: 7px 10px; }
.crane-input-top { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(270px, 1fr); gap: 16px; }
.crane-input-card { margin-bottom: 16px; padding: 16px; background: var(--paper, #fff); border: 1px solid var(--line); border-radius: 12px; min-width: 0; }
.crane-input-card h2 { font-size: 20px; font-weight: 650; margin: 0 0 12px; color: var(--text, var(--navy)); }
.crane-input-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.crane-input-table th, .crane-input-table td { text-align: left; padding: 5px 6px; vertical-align: middle; border-bottom: 1px solid var(--line); }
.crane-input-table th { font-weight: 550; }
.crane-input-table thead th { font-size: 12px; color: var(--muted); background: var(--surface); }
.crane-input-top > .crane-input-card .crane-input-table th:first-child { width: 49%; }
.crane-count-bar { display: flex; justify-content: flex-end; padding-bottom: 12px; }
.crane-count-bar label { width: min(100%, 240px); margin: 0; }
.crane-row-unit { color: var(--muted); font-size: 12px; font-weight: 500; }
.crane-common-inputs { margin-top: 16px; }
.crane-reference-figure { margin: 0 auto 16px; max-width: 690px; }
.crane-reference-figure img { display: block; width: 100%; height: auto; background: transparent; }
.crane-inline-help { display: inline-block; position: relative; margin-left: 7px; vertical-align: middle; }
.crane-inline-help > summary { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; color: var(--accent); cursor: pointer; list-style: none; border-radius: 50%; }
.crane-inline-help > summary::-webkit-details-marker { display: none; }
.crane-inline-help > p { position: absolute; top: 25px; left: 0; z-index: 12; width: min(300px, 66vw); margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); color: var(--text); box-shadow: var(--shadow); font: 500 13px/1.55 var(--data-font, Arial, sans-serif); }
.crane-input-invalid input, .crane-input-invalid select { border-color: #b4233c !important; background: #fff2f4; box-shadow: 0 0 0 1px #b4233c; }
.crane-field-error { display: block; color: #a51d34; font: 500 11px/1.4 var(--data-font, Arial, sans-serif); margin-top: 3px; }
html[data-theme="dark"] .crane-input-invalid input, html[data-theme="dark"] .crane-input-invalid select { border-color: #ff9eac !important; background: #39202d; box-shadow: 0 0 0 1px #ff9eac; }
html[data-theme="dark"] .crane-field-error { color: #ffb6c1; }
.crane-method-name { font-weight: 600; margin: 0 0 12px; }
.crane-input-card [hidden], .crane-input-table [hidden] { display: none !important; }
.matrix-value-field { display: block; font-size: 0 !important; margin: 0 !important; }
.matrix-value-field input, .matrix-value-field select { color: var(--accent, #1561da); }
.matrix-value-field .field-unit span { display: none; }
.matrix-value-field .field-unit input { padding-right: 10px; }
.crane-unit-in-label .field-unit span { display: none; }
.crane-unit-in-label .field-unit input { padding-right: 10px; }
.inactive-field input, .inactive-field select { background: var(--surface); color: var(--muted) !important; opacity: .65; cursor: not-allowed; }
.crane-input-note { display: block; font-size: 12px; font-weight: 450; line-height: 1.5; color: var(--muted); margin: 10px 0 0; }
.crane-section-strip { display: grid; grid-template-columns: minmax(180px, 1.15fr) minmax(230px, 1.3fr) minmax(180px, .9fr) auto; align-items: end; gap: 12px 18px; padding: 12px; margin-bottom: 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); }
.crane-section-strip label { width: auto; margin: 0; }
.crane-selected-weight { display: grid; gap: 7px; padding: 0 8px 7px; font: 500 12px var(--data-font, Arial, sans-serif); color: var(--muted); }
.crane-section-strip output { color: var(--accent, #1561da); font: 600 16px var(--data-font, Arial, sans-serif); }
.crane-section-panels { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr) minmax(280px, 1fr); gap: 14px; align-items: start; }
.crane-section-panels .crane-input-card { margin: 0; padding: 12px; border-radius: 8px; }
.crane-section-panels .crane-input-card h2 { font-size: 19px; }
.crane-section-panels .crane-input-table th:first-child { width: 58%; }
.crane-section-panels .field-unit span { display: block; font-size: 10px; }
.crane-section-panels .field-unit input { padding-right: 55px; }
.crane-section-panels .matrix-value-field .field-unit span { display: none; }
.crane-section-panels .matrix-value-field .field-unit input { padding-right: 10px; }
.crane-library-properties { margin: 14px 0; font: 13px var(--data-font, Arial, sans-serif); }
.crane-library-properties > div { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.crane-library-properties dd { margin: 0; font-weight: 550; color: var(--accent, #1561da); }
.crane-member-status { margin: 0 0 14px; padding: 4px 0; font: 500 12px var(--data-font, Arial, sans-serif); }
.crane-member-status strong { display: block; font-size: 15px; margin-bottom: 6px; }
.crane-member-status.pending { color: var(--muted); flex: 0 1 auto; }
.crane-status-checks { display: flex; flex-wrap: wrap; gap: 5px 12px; }
.crane-status-checks .pass, .crane-member-status.pass > strong { color: #137547; }
.crane-status-checks .fail, .crane-member-status.fail > strong { color: #bc243c; }
[data-theme="dark"] .crane-status-checks .pass, [data-theme="dark"] .crane-member-status.pass > strong { color: #7ee5b0; }
[data-theme="dark"] .crane-status-checks .fail, [data-theme="dark"] .crane-member-status.fail > strong { color: #ff9eac; }
.crane-plate-grades { margin-top: 12px !important; }
.crane-optional-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.crane-matrix-workspace details.crane-input-card summary { font-size: 16px; font-weight: 600; cursor: pointer; }
.crane-matrix-workspace details.crane-input-card[open] summary { margin-bottom: 14px; }
.crane-matrix-workspace .action-dock { position: sticky; bottom: 0; left: auto; width: auto; padding: 12px 18px; border: 1px solid var(--line); border-radius: 10px; margin: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; }
.crane-matrix-workspace .action-dock p { flex: 1 1 300px; font-size: 13px; }
.crane-matrix-workspace .action-dock button { min-width: 110px; min-height: 40px; padding: 10px 18px; font-size: .88rem; font-weight: 650; }
.crane-matrix-workspace #calculateButton { background: var(--core-title-gradient); }
.crane-matrix-workspace .preview-stage { padding-top: 18px; }
.crane-matrix-workspace:not(.calculation-report-open) .preview-toolbar > span:first-child { display: none; }
.crane-section-preview { min-width: 0; }
.crane-section-preview .size-only-summary { width: 100%; max-width: none; padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent; text-align: left; box-shadow: none; }
.crane-section-viewer { overflow: hidden; border: 1px solid #39434c; border-radius: 10px; background: #20282f; color: #f3f5f7; }
.crane-section-view-heading { padding: 12px 14px 0; }
.crane-section-view-heading > span, .crane-section-view-heading p { color: #b6c0c8; font: 500 12px/1.5 var(--data-font, Arial, sans-serif); }
.crane-section-view-heading h3 { margin: 3px 0; color: #f3f5f7; font: 650 18px/1.35 var(--data-font, Arial, sans-serif); overflow-wrap: anywhere; }
.crane-section-view-heading p { margin: 4px 0 0; overflow-wrap: anywhere; }
.crane-section-preview .crane-section-visual { display: block; width: 100%; max-width: none; height: auto; margin: 0; }
.crane-section-preview-note { margin: 0; padding: 0 14px 14px; color: #c0cbd4; font: 500 12px/1.5 var(--data-font, Arial, sans-serif); }
.crane-preview-placeholder { margin: 0; padding: 24px; border: 1px dashed var(--line); border-radius: 10px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.crane-matrix-workspace.calculation-report-open .control-heading p { margin-bottom: 8px; }

/* Numbered A4 calculation and continuation pages retain the shared report identity. */
.report-page.crane05-reference-page { --paper: #fff; --navy: #172033; --ink: #172033; --text: #172033; --muted: #475569; --line: #dbe4f5; --teal: #1a73e8; display: block; width: 210mm; min-height: 297mm; height: auto; padding: 9mm 11mm; margin: 0 auto 18px; }
.crane05-reference-page .report-header { min-height: 19mm; padding-bottom: 2mm; }
.crane05-reference-page .report-header h2 { font-size: 18pt; }
.crane05-reference-page .report-header .report-logo img { max-width: 39mm; }
.crane05-reference-page .report-meta { grid-template-columns: repeat(var(--project-meta-columns, 6), minmax(0, 1fr)); grid-template-rows: minmax(10mm, auto); margin: 2mm 0; }
.crane05-reference-page .report-meta div { min-height: 9mm; padding: 1.2mm 1.6mm; }
.crane05-reference-page .report-meta strong { font-size: 8pt; line-height: 1.15; overflow-wrap: anywhere; }
.crane05-reference-page .report-meta span { font-size: 6pt; line-height: 1.15; letter-spacing: .04em; margin-bottom: .6mm; }
.crane05-reference-page .crane-page-title { display: block; margin: 2.5mm 0; font-size: 11pt; color: #172033; }
.crane-page-title > span { display: inline-block; margin-right: 2mm; color: #1a73e8; font-size: 9pt; }
.crane05-reference-page .crane-report-section { margin: 1.8mm 0; }
.crane05-reference-page .crane-report-section h3 { padding: 1mm 0; margin: 0; font-size: 9pt; border-bottom: .3mm solid #1a73e8; }
.crane05-reference-page .crane-report-section table { font-size: 8pt; line-height: 1.18; }
.crane05-reference-page .crane-report-section th,
.crane05-reference-page .crane-report-section td { padding: .8mm 1.2mm; }
.crane05-reference-page .crane-report-section th:first-child { width: 30%; }
.crane05-reference-page .crane-report-section th:not(:first-child) { text-align: left; }
.crane05-reference-page .crane-report-note { font-size: 7.5pt; line-height: 1.3; }
.crane05-reference-page .report-footer { font-size: 7pt; margin-top: 3mm; padding-top: 2mm; }
.crane05-reference-page .report-footer p { margin-bottom: 1mm; }
.crane-load-diagram { margin: 2mm 0; break-inside: avoid; }
.crane-static-diagram { margin: 3mm 0; break-inside: avoid; }
.crane-static-diagram figcaption { font-size: 10pt; font-weight: 650; color: #172033; }
.crane-static-diagram svg { display: block; width: 100%; height: auto; }
.crane-load-diagram figcaption { font-size: 9pt; font-weight: 650; color: #172033; }
.crane-load-diagram svg { display: block; width: 100%; height: auto; }
.crane-load-diagram text { font-family: var(--data-font, "Google Sans", Arial, sans-serif); fill: #172033; }
.crane-load-diagram .diagram-member { stroke: #172033; fill: none; stroke-width: 2; }
.crane-load-diagram .diagram-load { stroke: #1a73e8; fill: #1a73e8; stroke-width: 1.4; }
.crane-load-diagram .diagram-reaction { stroke: #14754d; fill: #14754d; stroke-width: 1.4; }
.crane-load-diagram .diagram-dimension { stroke: #718096; fill: none; stroke-width: .8; }
@media (max-width: 1100px) {
  .crane-section-panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crane-section-preview { grid-column: 1 / -1; width: min(100%, 480px); justify-self: center; }
}
@media (max-width: 1000px) {
  .crane-matrix-workspace .project-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crane-input-top { grid-template-columns: 1fr; }
  .crane-side-settings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .crane-section-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crane-optional-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .crane-common-inputs th { position: relative; }
  .crane-common-inputs .crane-inline-help { position: static; }
  .crane-inline-help > p { top: auto; bottom: 100%; left: 0; width: min(280px, calc(100vw - 90px)); }
  .crane-matrix-workspace .control-panel { padding: 18px 12px 0; }
  .crane-matrix-workspace .project-fields, .crane-side-settings { grid-template-columns: 1fr; }
  .crane-section-strip { grid-template-columns: 1fr; }
  .crane-section-panels { grid-template-columns: 1fr; }
  .crane-section-preview .crane-section-visual text { font-size: 16px; }
  .crane-input-top > .crane-input-card { overflow-x: auto; }
  .crane-input-top > .crane-input-card > table { min-width: 0; }
  .crane-input-top > .crane-input-card > #craneDataMatrix[data-crane-count="2"] { min-width: 540px; }
  .crane-input-top > .crane-input-card > #craneDataMatrix[data-crane-count="3"] { min-width: 660px; }
  .crane-matrix-workspace .action-dock p { flex-basis: 100%; }
  .crane-matrix-workspace .preview-stage { overflow-x: auto; padding: 16px 10px; }
  .crane-matrix-workspace .report-page.crane05-reference-page { width: 210mm; aspect-ratio: auto; }
}
@media print {
  .crane-matrix-workspace .app-shell, .crane-matrix-workspace .preview-stage { padding: 0; margin: 0; max-width: none; overflow: visible; }
  .crane-matrix-workspace .report-page.multi-page-report { width: auto; height: auto; min-height: 0; padding: 0; break-after: auto; }
  .report-page.crane05-reference-page { width: 210mm; min-height: 297mm; height: auto; margin: 0; padding: 9mm 11mm; break-after: page; box-shadow: none; }
  .report-page.crane05-reference-page:last-child { break-after: auto; }
}
