/* 平面到立体 · 第七课作业零
   复用 product-form.css 的底座（顶栏、卡片、表单、折叠、提示条），
   这里只补三样：母形编辑器、六格预览的角标、左栏的轮廓与做法列表。 */

/* ── 舞台：左边母形编辑器，右边六格预览 ── */
.ps-stage-body{display:flex;align-items:stretch;height:min(70vh,680px)}
.ps-edpane{flex:0 0 380px;max-width:44%;height:100%;border-right:1px solid var(--pf-line2);
  background:#fbfaf7;padding:10px 11px 12px;display:flex;flex-direction:column;gap:6px;overflow:auto}
.ps-wrap:not([data-step="shape"]) .ps-edpane{display:none}
.ps-edpane-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.ps-edpane-head b{font-size:12.5px}
.ps-edpane-head small{font-size:10.5px;color:var(--pf-ink3);line-height:1.45;text-align:right}
.ps-stage-body .pf-canvas-hold{flex:1 1 auto;min-width:0;height:100%;min-height:0}
.ps-edpane-foot{font-size:10.5px;color:var(--pf-ink3);line-height:1.6;margin:0}

/* ── 母形编辑器 ── */
.ps-ed{display:block;width:100%;background:#fff;border-radius:8px;border:1px solid var(--pf-line2);
  touch-action:none;outline:none}
.ps-ed:focus{border-color:var(--pf-accent);box-shadow:0 0 0 2px rgba(47,107,82,.12)}
.ps-ed-grid line{stroke:#efece5;stroke-width:1}
.ps-ed-grid line.major{stroke:#e2ded4}
.ps-ed-frame{fill:none;stroke:#c7b9a0;stroke-width:1.4;stroke-dasharray:5 4}
.ps-ed-shape{fill:rgba(47,107,82,.13);stroke:var(--pf-accent);stroke-width:2.2;stroke-linejoin:round}
.ps-ed-pt{fill:#fff;stroke:var(--pf-accent);stroke-width:2;pointer-events:none}
.ps-ed-pt.first{fill:var(--pf-accent)}
.ps-ed-hit{fill:transparent;stroke:none;cursor:grab}
.ps-ed-hit:active{cursor:grabbing}
.ps-wrap.is-trace .ps-ed{cursor:crosshair}

/* ── 六格角标 ── */
.ps-cells{position:absolute;inset:0;pointer-events:none}
.ps-cell{position:absolute;box-sizing:border-box;border:1px solid rgba(139,143,136,.38)}
.ps-cell.on{border-color:var(--pf-accent);box-shadow:inset 0 0 0 1px rgba(47,107,82,.34)}
.ps-cell-tag{position:absolute;left:7px;top:6px;display:inline-flex;align-items:baseline;gap:5px;
  background:rgba(255,255,255,.86);border-radius:6px;padding:1px 7px;font-size:11.5px;color:var(--pf-ink2)}
.ps-cell-tag b{font-size:12px;color:var(--pf-ink);font-weight:600}
.ps-cell.on .ps-cell-tag b{color:var(--pf-accent)}
.ps-cell-tag i{font-style:normal;font-size:10.5px;color:var(--pf-accent)}
.ps-cell-dim{position:absolute;left:7px;bottom:6px;font-size:10.5px;color:var(--pf-ink3);
  background:rgba(255,255,255,.8);border-radius:5px;padding:0 5px}
.ps-cell-max{position:absolute;right:6px;top:5px;pointer-events:auto;border:1px solid var(--pf-line);
  background:rgba(255,255,255,.9);border-radius:5px;font-size:11px;line-height:1.5;padding:0 5px;
  cursor:pointer;color:var(--pf-ink2)}
.ps-cell-max:hover{border-color:var(--pf-accent);color:var(--pf-accent)}

/* ── 轮廓库 ── */
.ps-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.ps-shape{border:1px solid var(--pf-line);background:#fff;border-radius:9px;padding:4px 2px 3px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:1px;color:var(--pf-ink2)}
.ps-shape svg{width:34px;height:34px}
.ps-shape polygon{fill:rgba(47,107,82,.14);stroke:#6d7a72;stroke-width:2;stroke-linejoin:round}
.ps-shape span{font-size:10px;line-height:1.3}
.ps-shape:hover{border-color:var(--pf-accent);color:var(--pf-accent)}
.ps-shape.on{border-color:var(--pf-accent);background:var(--pf-soft);color:var(--pf-accent)}
.ps-shape.on polygon{stroke:var(--pf-accent)}

/* ── 母形小图 ── */
.ps-mother{display:flex;gap:10px;align-items:center}
.ps-mother>div:last-child{min-width:0}
.ps-mother b{display:block;font-size:12.5px}
.ps-mother small{display:block;font-size:10.5px;color:var(--pf-ink3);margin-bottom:4px}
.ps-mini-shape{flex:0 0 66px;width:66px;height:66px;border:1px solid var(--pf-line2);border-radius:9px;
  background:#fbfaf7;display:flex;align-items:center;justify-content:center;padding:3px}
.ps-mini-shape svg{width:100%;height:100%}
.ps-mini-shape polygon{fill:rgba(47,107,82,.14);stroke:var(--pf-accent);stroke-width:2;stroke-linejoin:round}

/* ── 六种做法 ── */
.ps-gen{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 7px;border-radius:9px;
  border:1px solid transparent;cursor:pointer;margin-bottom:3px}
.ps-gen:hover{background:#faf9f6}
.ps-gen.on{border-color:var(--pf-accent);background:var(--pf-soft)}
.ps-gen>b{flex:1 1 96px;min-width:0;font-size:12.5px;line-height:1.35}
.ps-gen>b i{font-style:normal;display:block;font-size:10.5px;color:var(--pf-ink3);font-weight:400}
.ps-gen>em{flex:0 0 100%;font-style:normal;font-size:10px;color:var(--pf-ink3)}
.ps-gen-read{display:inline-flex;gap:3px;flex:0 0 auto}
.ps-read{border:1px solid var(--pf-line);background:#fff;border-radius:6px;width:24px;height:24px;
  font-size:11.5px;line-height:1;cursor:pointer;color:var(--pf-ink3);padding:0}
.ps-read:hover{border-color:var(--pf-accent);color:var(--pf-accent)}
.ps-read.on{border-color:var(--pf-accent);background:var(--pf-accent);color:#fff;font-weight:600}

/* ── 挑选 ── */
.ps-pick{display:flex;align-items:flex-start;gap:7px;padding:6px 8px;border:1px solid var(--pf-line);
  border-radius:9px;margin-bottom:5px;cursor:pointer;background:#fff}
.ps-pick.on{border-color:var(--pf-accent);background:var(--pf-soft)}
.ps-pick input{margin-top:3px;accent-color:var(--pf-accent)}
.ps-pick span{flex:1;min-width:0;font-size:12px;line-height:1.45}
.ps-pick b{font-size:12.5px}
.ps-pick em{font-style:normal;display:block;font-size:10.5px;color:var(--pf-ink3)}

.ps-list{margin:8px 0 0;padding-left:18px;font-size:11.5px;color:var(--pf-ink2);line-height:1.7}
.ps-list li{margin-bottom:3px}

/* ── 窄屏 ── */
@media (max-width:1180px){
  .ps-edpane{flex-basis:320px}
}
@media (max-width:980px){
  .ps-stage-body{flex-direction:column;height:auto}
  .ps-edpane{flex:0 0 auto;max-width:none;height:auto;border-right:0;border-bottom:1px solid var(--pf-line2)}
  .ps-stage-body .pf-canvas-hold{height:min(54vh,440px)}
  .ps-shapes{grid-template-columns:repeat(5,1fr)}
}
@media (max-width:560px){
  .ps-shapes{grid-template-columns:repeat(4,1fr)}
  .ps-cell-dim{display:none}
}
