/* PC-only drafting: canvas and forms never collapse into a mobile stack. */
body.pc-workspace { min-width: 1180px; }
.pc-workspace .app-shell { grid-template-columns: 170px minmax(0, 1fr); }
.pc-workspace .sidebar { padding: 23px 10px; }
.pc-workspace .brand { padding: 0; gap: 8px; }
.pc-workspace .brand strong { font-size: 14px; }
.pc-workspace .brand small { font-size: 8px; }
.pc-workspace .navigation a { padding: 10px; }
.pc-workspace .topbar { min-height: 44px; height: 44px; padding: 7px 16px; }
.pc-workspace main { max-width: none; height: calc(100dvh - 44px); min-height: 690px; padding: 10px 14px; }
.pc-workspace .workspace-footer { display: none; }
.pc-workspace #page-viewer { display: flex; flex-direction: column; min-height: 0; }
.pc-workspace #page-viewer .page-heading { flex-wrap: nowrap; gap: 14px; margin: 0 0 8px; flex: 0 0 auto; }
.pc-workspace #page-viewer .page-heading .eyebrow, .pc-workspace #page-viewer .page-description { display: none; }
.pc-workspace #title-viewer { font-size: 21px; white-space: nowrap; }
.pc-workspace #page-viewer .page-heading > a { margin-left: auto; }
.pc-page-options, .pc-page-options label { display: flex; align-items: center; gap: 9px; white-space: nowrap; font-size: 12px; }
.pc-page-options select { width: 72px; }
.pc-workspace .viewer-filebar { flex-wrap: nowrap; align-items: center; gap: 10px; margin: 0 0 8px; }
.pc-workspace .viewer-filebar > .field { display: flex; align-items: center; gap: 10px; flex: 1; }
.pc-workspace .viewer-filebar > .field label { white-space: nowrap; }
.pc-workspace .viewer-filebar select { width: min(500px, 60vw); min-height: 32px; }
.pc-workspace #viewer-message { margin: 0 0 8px; padding: 5px 12px; font-size: 12px; max-height: 52px; overflow: auto; flex: 0 0 auto; }
.pc-workspace #viewer-content { flex: 1; min-height: 0; }
.pc-workspace #pc-workspace { display: grid; grid-template-columns: minmax(540px, 1fr) 390px; gap: 12px; height: 100%; min-height: 0; align-items: stretch; }
.pc-workspace #pc-workspace[data-panel-width="compact"] { grid-template-columns: minmax(540px, 1fr) 350px; }
.pc-workspace #pc-workspace[data-panel-width="wide"] { grid-template-columns: minmax(540px, 1fr) 440px; }
.pc-workspace.pc-focus .app-shell { grid-template-columns: minmax(0, 1fr); }
.pc-workspace.pc-focus .sidebar { display: none; }
.pc-workspace .viewer-drawing { display: flex; flex-direction: column; min-height: 0; }
.pc-workspace .viewer-canvas-wrap { flex: 1; height: auto; min-height: 260px; }
.pc-workspace .viewer-toolbar { padding: 7px 9px; gap: 7px; }
.pc-workspace .viewer-toolbar .button { padding: 4px 9px; min-height: 29px; }
.pc-workspace .viewer-toolbar .confirm-label { min-height: 24px; margin: 0 3px; font-size: 12px; }
.pc-workspace .viewer-pan-controls { padding: 3px 9px; gap: 6px; }
.pc-workspace .viewer-pan-controls .button { min-width: 28px; min-height: 28px; padding: 0 5px; }
.pc-workspace .piece-selection-bar { padding: 6px 10px; gap: 8px; }
.pc-workspace .piece-selection-bar > span:first-child { flex: 1 1 170px; }
.pc-workspace .piece-selection-bar > span:last-child { flex: 0 0 auto; font-size: 11px; }
.pc-workspace .piece-selection-bar .button { min-height: 30px; padding: 5px 9px; }
.pc-workspace #viewer-canvas-help { padding: 5px 10px; font-size: 10px; }
.pc-workspace .viewer-coordinates { padding: 4px 10px; }
.pc-page-options select { min-height: 29px; padding: 3px; border: 1px solid #cbd6cf; border-radius: 4px; background: #fffefa; }
.pc-tool-status { min-height: 28px; padding: 4px 10px; font-size: 12px; color: #3a595a; background: #f0f4ed; border-top: 1px solid var(--line); }
.pc-side { border: 1px solid #d7ded5; border-radius: 10px; background: var(--surface); display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: hidden; }
.pc-tabs { display: flex; padding: 7px; gap: 3px; border-bottom: 1px solid var(--line); background: #edf0e9; flex-shrink: 0; }
.pc-tabs button { flex: 1; border: 0; background: transparent; border-radius: 5px; font-size: 12px; padding: 8px 4px; white-space: nowrap; color: #64706b; }
.pc-tabs button[aria-selected="true"] { background: white; box-shadow: 0 1px 3px #2337491c; color: #183d50; font-weight: 650; }
.pc-workspace .pc-tab-panel { overflow: auto; min-height: 0; margin: 0; flex: 1; border: 0; border-radius: 0; overscroll-behavior: contain; }
.pc-workspace .pc-tab-panel .panel-heading { padding: 12px 14px; gap: 6px; }
.pc-workspace .pc-tab-panel .form-body, .pc-workspace .viewer-inspector-body { padding: 14px; }
.pc-workspace .pc-tab-panel .form-grid, .pc-workspace #viewer-annotation-fields { grid-template-columns: 1fr; }
.pc-workspace .pc-tab-panel .field-full { grid-column: auto; }
.pc-workspace .pc-tab-panel .piece-actions { gap: 7px; margin: 10px 0; }
.pc-workspace .pc-tab-panel .piece-actions .button { min-height: 30px; padding: 5px 8px; }
.pc-workspace .pc-tab-panel .notice { padding: 9px; font-size: 12px; }
.pc-workspace .pc-tab-panel .field input, .pc-workspace .pc-tab-panel .field select { min-height: 34px; padding: 7px 9px; }
.pc-workspace .pc-tab-panel .piece-binding-form { padding: 12px; }
.pc-workspace .pc-tab-panel .piece-member { grid-template-columns: minmax(0, 1fr) auto auto; gap: 6px; padding: 10px; }
.pc-workspace .pc-tab-panel .piece-member > span { grid-column: 1 / -1; }
.pc-workspace .pc-tab-panel .piece-member select { min-width: 0; padding: 5px; }
.pc-workspace .pc-tab-panel .piece-members, .pc-workspace .viewer-object-list { max-height: none; }
.pc-workspace .viewer-object-details { grid-template-columns: 105px minmax(0, 1fr); }
.pc-workspace .viewer-list-filters { grid-template-columns: 1fr; padding: 12px; gap: 8px; }
.pc-workspace .viewer-object-row { padding: 5px 8px; gap: 5px; }
.pc-workspace .viewer-pagination { gap: 6px; padding: 8px; flex-wrap: wrap; position: sticky; bottom: 0; background: var(--surface); }
.pc-workspace .pc-object-check { width: 16px; height: 16px; flex-shrink: 0; }
.pc-help { padding: 14px; }
.pc-help .viewer-case { display: block; margin-bottom: 14px; padding: 14px; }
.pc-help .viewer-case > p { margin-top: 8px; }
.pc-help .viewer-production { align-items: flex-start; }
.pc-help .info-banner { margin-bottom: 14px; }
.pc-shortcuts { padding: 14px 0; }
.pc-shortcuts dl { display: grid; grid-template-columns: 135px 1fr; gap: 10px; font-size: 12px; }
.pc-shortcuts dd { margin: 0; }
.pc-shortcuts p { font-size: 12px; color: var(--muted); }
.pc-batch { padding: 10px; margin-top: 12px; border-radius: 7px; border: 1px solid var(--line); background: #f3f6ee; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pc-batch label { display: flex; flex: 1 1 100%; align-items: center; gap: 8px; font-size: 12px; }
.pc-batch select { flex: 1; min-width: 0; }
.pc-pick-menu { position: absolute; top: 12px; right: 12px; z-index: 4; width: 290px; max-height: calc(100% - 24px); overflow: auto; padding: 12px; border: 1px solid #aebfaf; border-radius: 8px; box-shadow: 0 5px 22px #142d4433; background: #fffefa; font-size: 12px; }
.pc-pick-menu button { display: block; width: 100%; text-align: left; margin-top: 7px; border: 1px solid #cfd9cf; border-radius: 5px; padding: 8px; background: #f4f6f0; color: #1c394b; }
.pc-pick-menu button:hover, .pc-pick-menu button:focus { background: #e3efeb; }
.piece-history-panel { padding: 14px; }
.piece-history-panel h3 { margin: 20px 0 8px; }
.piece-history-panel .field { margin-top: 12px; }
.pc-workspace .workflow-list { display: block; list-style: none; padding: 0; margin: 10px 0; }
.pc-workspace .workflow-list li, .pc-workspace .workflow-list li:first-child, .pc-workspace .workflow-list li:last-child { display: block; padding: 10px 0; border-right: 0; border-bottom: 1px solid var(--line); font-size: 12px; overflow-wrap: anywhere; }
.pc-workspace .workflow-list li p { white-space: pre-wrap; margin: 5px 0; font-size: 12px; }
.piece-review-box { border: 1px solid var(--line); padding: 12px; margin: 14px 0; border-radius: 8px; }
.piece-review-box .field { margin: 12px 0; }
.piece-review-box button { margin: 5px 0; }
.pc-workspace .piece-member .member-landmark { grid-column: 1 / -1; width: 100%; }
.pc-workspace .piece-metadata { margin-top: 14px; }
.pc-workspace .pc-tabs { gap: 0; padding: 5px; }
.pc-workspace .pc-tabs button { font-size: 13px; padding: 8px 6px; }

/* One toolbar above the canvas: what the mouse does, how to look around, 「更多」 for the rest. */
.pc-workspace .viewer-toolbar, .pc-workspace .viewer-pan-controls, .pc-workspace #viewer-canvas-help, .pc-workspace #piece-open-editor { display: none; }
.pc-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 10px; background: var(--surface); border-bottom: 1px solid var(--line); }
.pc-segment { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.pc-workspace .pc-segment button { min-height: 34px; padding: 4px 14px; border: 0; border-radius: 0; box-shadow: none; font-size: 14px; background: var(--surface); color: var(--ink); }
.pc-workspace .pc-segment button + button { border-left: 1px solid var(--line); }
.pc-workspace .pc-segment button[aria-pressed="true"] { background: var(--primary); color: #fff; }
.pc-group { display: inline-flex; align-items: center; gap: 6px; }
.pc-workspace .pc-group .button { min-height: 32px; padding: 4px 10px; font-size: 13px; }
.pc-workspace .pc-group #viewer-zoom-out, .pc-workspace .pc-group #viewer-zoom-in { min-width: 34px; padding: 4px 0; font-size: 16px; }
.pc-workspace #viewer-zoom-label { min-width: 44px; text-align: center; font-size: 12px; color: var(--muted); }
.pc-workspace .pc-group .confirm-label { margin: 0 0 0 4px; min-height: 0; font-size: 13px; }
.pc-more { position: relative; margin-left: auto; }
.pc-more summary { list-style: none; cursor: pointer; padding: 5px 12px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 13px; }
.pc-more summary::-webkit-details-marker { display: none; }
.pc-more summary::after { content: " ▾"; color: var(--muted); }
.pc-more-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 6; width: 260px; display: grid; gap: 10px; padding: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 6px 20px rgb(23 32 51 / 12%); }
.pc-more-menu label { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 13px; }
.pc-more-menu .confirm-label { justify-content: flex-start; margin: 0; }
.pc-more-menu select { min-height: 30px; }
.pc-workspace .pc-more-menu button { width: 100%; font-size: 13px; }
.pc-workspace .pc-more-menu button[aria-pressed="true"] { color: #fff; background: var(--primary); border-color: var(--primary); }
.pc-workspace .pc-help-button { min-height: 32px; padding: 4px 10px; font-size: 13px; color: var(--primary); background: var(--primary-soft); border-color: #d6e4ff; }
/* Plain-language hint right above the canvas; changes with what the user is doing. */
.pc-workspace .pc-tool-status { margin: 0; min-height: 34px; padding: 7px 12px; font-size: 13px; line-height: 1.5; color: #1f3b73; background: var(--primary-soft); border: 0; border-bottom: 1px solid #d6e4ff; }
/* The cursor says what a drag will do. */
.pc-workspace #viewer-canvas { cursor: grab; }
.pc-workspace #viewer-canvas.is-hovering { cursor: pointer; }
.pc-workspace #viewer-canvas[data-mode="box"], .pc-workspace #viewer-canvas[data-mode="endpoint"] { cursor: crosshair; }
.pc-workspace #viewer-canvas.is-panning { cursor: grabbing; }
.pc-workspace #page-viewer .page-heading { align-items: center; }
.pc-workspace #page-viewer .page-heading .viewer-filebar { flex: 1 1 auto; min-width: 0; margin: 0; }
.pc-workspace #page-viewer .page-heading .viewer-filebar select { width: min(420px, 40vw); }
.pc-workspace .piece-selection-bar > #piece-selected { font-size: 13px; color: var(--ink); }
.pc-lines > .panel { border: 0; border-radius: 0; box-shadow: none; margin: 0; }
.pc-lines > .panel + .panel { border-top: 1px solid var(--line); }
.pc-back { margin-bottom: 8px; }
.pc-workspace .piece-selection-bar #viewer-locate { min-height: 30px; padding: 5px 9px; }
/* 裁片与尺寸: one guided step at a time; current piece, status and 保存 stay in view. */
.pc-step-off { display: none !important; }
.pc-stepper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 0 0 8px; padding: 0; list-style: none; }
.pc-workspace .pc-stepper button { width: 100%; min-height: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 7px 2px; font-size: 12px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 8px; box-shadow: none; }
.pc-stepper button span { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; font-size: 12px; color: var(--ink); background: var(--line); }
.pc-workspace .pc-stepper button[aria-current="step"] { color: var(--primary); background: var(--primary-soft); border-color: var(--primary); font-weight: 600; }
.pc-stepper button[aria-current="step"] span { color: #fff; background: var(--primary); }
.pc-step-hint { margin: 0 0 10px; padding: 8px 10px; font-size: 13px; line-height: 1.55; color: #1f3b73; background: var(--primary-soft); border-radius: 6px; }
.pc-step-guide { display: grid; gap: 6px; margin: 4px 0 12px; padding: 10px; border: 1px dashed #b7c9f0; border-radius: 8px; }
.pc-step-guide p { margin: 0; font-size: 13px; }
.pc-step-guide .pc-step-picked { font-weight: 600; color: var(--ink); }
.pc-workspace .pc-step-guide .button { justify-self: start; }
.pc-optional { margin: 10px 0; }
.pc-optional summary { cursor: pointer; font-size: 13px; color: var(--primary); }
.pc-need-piece { margin-top: 10px; }
.pc-workspace #piece-remove { margin-top: 12px; color: var(--danger); }
.pc-step-footer { position: sticky; bottom: 0; z-index: 2; display: flex; align-items: center; gap: 8px; margin: 14px -14px -14px; padding: 10px 14px; background: var(--surface); border-top: 1px solid var(--line); }
.pc-workspace .pc-step-footer #piece-save { margin-left: auto; }
.pc-workspace .pc-step-footer .button { min-height: 34px; padding: 5px 12px; }
/* Canvas background follows the 黑底 switch; the drawing keeps the file's own colours. */
.viewer-canvas-wrap.is-dark { background: #111418; }
.pc-layers { margin: 14px 0; }
.viewer-layer-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.viewer-layer { display: flex; align-items: center; gap: 8px; }
.viewer-swatch { flex: 0 0 22px; height: 12px; border-radius: 3px; border: 1px solid #0003; }
/* 款号说明: canvas rules kept per style number, readable by everyone. */
.pc-style-note { margin: 0 0 14px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.pc-style-note h2 { margin: 0 0 4px; }
.style-note-key { margin: 8px 0 4px; font-weight: 600; }
.style-note-text { margin: 8px 0; padding: 10px 12px; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.6; background: var(--primary-soft); border-radius: 6px; }
.style-note-lookup, .style-note-form { display: grid; gap: 8px; margin: 8px 0; }
.style-note-form textarea { width: 100%; resize: vertical; }
.style-note-history ul { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 4px; }
.style-note-history button { text-align: left; }
.pc-tabs button.has-note::after { content: ' •'; color: var(--primary); }

/* 放码 tab: sizes from the RUL over the drawing, and the comparison with ET's exports. */
.pc-grading { padding: 14px; }
.pc-grading h2 { margin: 0 0 4px; }
.grading-sources { margin: 10px 0; }
.grading-rejected { margin: 4px 0; padding-left: 18px; }
.grading-sizes { list-style: none; margin: 10px 0 4px; padding: 0; display: grid; gap: 4px; }
.grading-size { display: grid; grid-template-columns: auto auto 1fr auto auto; align-items: center; gap: 8px; padding: 4px 6px; border-radius: 6px; font-size: 12px; line-height: 1.45; }
.grading-size:has(.grading-sample) { grid-template-columns: auto 1fr; padding-left: 28px; }
.grading-size.is-focus { background: var(--primary-soft); }
.grading-size .button { min-height: 26px; padding: 2px 8px; font-size: 12px; }
.grading-sample { background: var(--muted); }
.grading-problems, .grading-checks { margin: 12px 0; }
.grading-problems summary, .grading-checks > summary { cursor: pointer; font-weight: 600; }
.grading-problem-list, .grading-check ul { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 6px; font-size: 12px; }
.grading-problem-list li, .grading-check li { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.grading-problem-list .button, .grading-check .button { flex: 0 0 auto; min-height: 24px; padding: 1px 8px; font-size: 12px; }
.grading-check { margin: 6px 0; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; }
.grading-check summary { cursor: pointer; font-size: 12px; }
.grading-check.grading-match summary { color: #2e6b3a; }
.grading-check.grading-close summary { color: #8a5a00; }
.grading-check.grading-differ summary { color: #b3261e; }
.pc-handover { margin: 0 0 14px; padding: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 8px; }
.pc-handover h2 { margin: 0 0 4px; }
