.p3d-print__root{min-width:0}.p3d-print__fileInput{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.p3d-print__drop{text-align:center;border:1px dashed var(--color-border-500);border-radius:var(--radius-card);background:var(--color-gray-100);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;transition:background-color .25s,border-color .25s;display:flex;position:absolute;inset:0}.p3d-print__drop[data-over=true]{border-color:var(--color-title);background:var(--color-gray-200)}.p3d-print__dropIcon{background:var(--color-bg);width:56px;height:56px;color:var(--color-title);box-shadow:0 0 0 1px var(--color-border-200);border-radius:50%;place-items:center;display:grid}.p3d-print__dropTitle{font-family:var(--font-title);color:var(--color-title);margin:0;font-size:18px;font-weight:600}.p3d-print__dropText{color:var(--color-text);max-width:340px;margin:0 auto;font-size:14px;line-height:1.6}.p3d-print__busy{flex-direction:column;align-items:center;gap:16px;padding:24px;display:flex}.p3d-print__steps{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.p3d-print__step{border-radius:var(--radius-btn);min-height:32px;color:var(--color-text);background:var(--color-bg);align-items:center;gap:6px;padding:4px 12px;font-size:13px;display:inline-flex}.p3d-print__step[data-state=now]{color:var(--color-bg);background:var(--color-title)}.p3d-print__step[data-state=done]{color:var(--color-success)}.p3d-print__stage{position:absolute;inset:0}.p3d-print__canvas,.p3d-print__viewer{touch-action:pan-y;width:100%;height:100%;display:block}.p3d-print__viewer{touch-action:none}.p3d-print__pillTop,.p3d-print__pillSide,.p3d-print__pillBottom{pointer-events:none;border-radius:var(--radius-btn);max-width:60%;min-height:28px;box-shadow:0 0 0 1px var(--color-border-200);color:var(--color-entity);white-space:nowrap;text-overflow:ellipsis;background:#ffffffe6;align-items:center;padding:2px 10px;font-size:12px;display:inline-flex;position:absolute;overflow:hidden}.p3d-print__pillTop{inset-block-start:12px;inset-inline-start:12px}.p3d-print__pillSide{inset-block-start:12px;inset-inline-end:12px}.p3d-print__pillBottom{inset-block-end:12px;inset-inline-start:12px}.p3d-print__lead{color:var(--color-text);margin:0;font-size:14px}.p3d-print__fileBar{border:1px solid var(--color-border-300);border-radius:var(--radius-card);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;display:flex}.p3d-print__fileIcon{color:var(--color-title);flex:none}.p3d-print__fileName{color:var(--color-title);text-overflow:ellipsis;white-space:nowrap;flex:140px;min-width:0;max-width:100%;font-size:14px;font-weight:600;overflow:hidden}.p3d-print__muted{color:var(--color-text);font-size:13px}.p3d-print__linkBtn{cursor:pointer;min-height:44px;color:var(--color-title);text-underline-offset:3px;background:0 0;border:0;padding:0 4px;font-size:14px;text-decoration:underline}.p3d-print__linkBtn:hover{color:var(--color-entity-hover)}.p3d-print__badges{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.p3d-print__badge{border-radius:var(--radius-btn);background:var(--color-gray-100);min-height:30px;color:var(--color-entity);align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;display:inline-flex}.p3d-print__badge[data-tone=ok]{color:var(--color-success)}.p3d-print__badge[data-tone=warn]{color:var(--color-gray-800);background:#e0b25229}.p3d-print__hint{color:var(--color-text);margin:6px 0 0;font-size:13px;line-height:1.6}.p3d-print__quick{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.p3d-print__quickBtn{border:1px solid var(--color-border-400);border-radius:var(--radius-btn);background:var(--color-bg);min-height:44px;color:var(--color-entity);cursor:pointer;font-size:13px}.p3d-print__quickBtn[aria-pressed=true]{border-color:var(--color-title);box-shadow:inset 0 0 0 1px var(--color-title);color:var(--color-title);font-weight:600}.p3d-print__quickBtn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.p3d-print__qtyRow{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.p3d-print__stepper{border:1px solid var(--color-form-border);border-radius:var(--radius-btn);background:var(--color-bg);align-items:center;height:44px;display:inline-flex;overflow:hidden}.p3d-print__stepBtn{width:44px;height:44px;color:var(--color-entity);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.p3d-print__stepBtn:disabled{opacity:.4;cursor:not-allowed}.p3d-print__stepValue{text-align:center;min-width:36px;color:var(--color-title);font-weight:600}.p3d-print__select{width:100%;min-height:44px;color:var(--color-entity);border:1px solid var(--color-form-border);border-radius:var(--radius-btn);background:var(--color-bg);padding:0 12px;font-size:14px}.p3d-print__select:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.p3d-print__attest{color:var(--color-entity);cursor:pointer;align-items:flex-start;gap:10px;margin-top:10px;font-size:13.5px;line-height:1.6;display:flex}.p3d-print__attest input{width:20px;height:20px;accent-color:var(--color-title);flex:none;margin-top:2px}.p3d-print__priceBox{flex-direction:column;gap:2px;display:flex}.p3d-print__updating{color:var(--color-text);font-size:12px}.p3d-print__unit{color:var(--color-entity);font-size:13px}.p3d-print__bigJob{color:var(--color-gray-800);font-size:13px;font-weight:600}.p3d-print__alert{border-radius:var(--radius-card);color:var(--color-error);text-align:start;background:#e0102012;align-items:flex-start;gap:8px;margin:0;padding:10px 14px;font-size:13.5px;line-height:1.6;display:flex}.p3d-print__alert svg{flex:none;margin-top:3px}.p3d-print__foot{color:var(--color-text);margin:0;font-size:12.5px}.p3d-print__how{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.p3d-print__how li{color:var(--color-text);flex-direction:column;gap:2px;font-size:13.5px;line-height:1.7;display:flex}.p3d-print__how b{color:var(--color-title);font-weight:600}@media (max-width:768.98px){.p3d-print__dropText{font-size:13px}.p3d-print__drop{padding:16px}}
